CentOS 6.5秒杀

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

我谷歌这个问题,发现CPU在Cent OS 6.3上的高使用率

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

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

首先,您要比较苹果和橙子: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。