1
找出RHEL 6与RHEL 5上CPU使用率较高的原因
我目前正在寻求将我们的系统从RHEL 5迁移到RHEL 6,但在RHEL 6机器上却遇到了意外的CPU使用率过高的问题。看来,这可能至少部分是由于使用select进行了可中断的睡眠。这是一个显示行为的简单示例: #include <sys/select.h> int main() { timeval ts; for (unsigned int ii=0; ii<10000; ++ii) { ts.tv_sec = 0; ts.tv_usec = 1000; select(0, 0, 0, 0, &ts); } return 0; } 在RHEL 5机器上,它将保持0%的CPU使用率,但是在安装了RHEL 6的相同硬件上,它将使用大约0.5%的CPU,因此,当运行30到50个程序select执行睡眠时,它会吃掉不必要地占用大量CPU。 我打开了一个Bugzilla,尝试运行OProfile,它在查看内核时仅显示应用程序的100%主内容,而poll_idle的内容仅显示99%以上(我在grub选项中设置了idle = poll以便可以捕获所有内容)。 关于我可以做些什么来尝试找出导致CPU使用率较高的原因的任何其他想法? 更新:我找到了性能工具,并得到以下输出: # Events: 23K cycles # # Overhead Command Shared …