怎么解释呢?并且我已将select的超时更改为1s,cpu sys load更改为85%,为什么?
已将select的nfds更改为最高fd加一,仍为高cpu sys加载
编辑 - 问题解决
该错误与选择无关,pthread_mutex_timedwait的第三个参数abstime是绝对时间,但我错误地使用了相对时间,这导致了高CPU系统负载。
为什么pthread_mutex_timedwait导致高cpu sys负载,而不是高cpu usr负载?
strace:只看到选择系统调用,没有其他
答案 0 :(得分:0)
您可能有一个糟糕的(断开连接的)描述符。通常,这是读取select
上此类负载的主要原因。
您可能有数据,但从未阅读过。同样的情况。
您可能会在select
次来电之间做一些非常沉重的事情。
如果您的select
始终返回0
,则问题不在select
电话中。其其他地方。