CentOS 6.5秒杀

时间:2014-08-25 18:12:45

标签: c++ c centos6

我在C中开发了一个应用程序。我正在“红帽企业Linux服务器版本5.8(Tikanga)”上运行此应用程序,一切看起来不错,但是当我们在“CentOS版本6.5(最终版)”上部署此应用程序时,它开始做问题。它占据了更多的chache内存,并在30-45分钟之后飙升,所有cpu显示100%的cpu利用率,持续1-2秒。

我谷歌这个问题,发现CPU high usage of the usleep on Cent OS 6.3

由于我的应用程序中的一个进程正在使用10 usleep。 RedHat的CPU占用率不到3%,但CentOS占据了相当高的90%左右。当我将睡眠从10 usleep更改为1000 usleep或1 us时读取链接后,需要40%的CPU。

我需要知道CentOS 6.5的内核是否使用高速定时器,或者我需要在编译内核时设置任何配置。

1 个答案:

答案 0 :(得分:0)

首先,您要比较苹果和橙子:CentOS 6对应RHEL 6.很可能您的代码在RHEL 6.5上的行为与在CentOS 6.5上的行为相同,在CentOS 5.8上与在RHEL 5.8上相同。将这个问题描述为RHEL和CentOS之间的区别是错误的。

第二,如果您的CPU利用率受到几次usleep()调用的强烈影响(显然已经执行了很多次),那么您的代码存在缺陷,您应该修复它。构建一个自定义内核来掩盖问题将是非常落后的。不过,如果目标更多是转移到CentOS而不是升级到(稍微)更新的环境,那么请切换到CentOS 5而不是CentOS 6。