Redhat 6 上的 CPU 利用率

标签 c linux

我在 redhat 6 上执行了以下代码片段:

#include <unistd.h>

int  main(int argc, char *argv[])
{
    while(true)
    {
#ifdef SLEEP
        sleep(1);
#endif
#ifdef USLEEP
        usleep(1000);
#endif
     }

    return 0;
}

它应该休眠完全相同的maount,因为1000 us = 1 ms 在 redhat 6 上,具有 sleep 功能的设备始终占用 0% 的利用率。 sleep 的人一直在 1.5% 到 2% 之间。我维护的服务器上有很多这样的东西。 有什么解释为什么 usleep 在 redhat 6 上对 cpu 更敏感吗? 在 redhat 5 上我看不出有什么区别。 顺便说一句,我发现在 redhat 6 上,CPU 更加敏感。有任何已知问题吗?

最佳答案

usleep 参数是百万秒,而不是千分之一。微与毫。

再加三个零,我想您会看到您所期望的。

http://linux.die.net/man/3/usleep

usleep() 函数将调用线程的执行挂起(至少)usec 微秒

关于Redhat 6 上的 CPU 利用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17185661/

相关文章:

Python 子进程向我的 shell 参数添加额外的引号

c - hiredis "undefined reference to"编译错误

C fork : child proc-meant printf messages appear only after the whole program finishes

c - 请解释以下 C 程序的输出。

linux -/运行目录: how to create it at first boot to store runtime data

linux - 从目录子树的各级按扩展名删除文件而不破坏目录结构

c - 为什么我的输出是无穷大?你能找出程序中的错误吗?

c - bluez 适配器 api StartDiscovery 超时

linux - 如何在Centos 6.6 VPS上安装Gitlab?

python - 在没有root权限的情况下在Python中创建原始套接字