CentOS:旋转锁在运行多线程应用程序时消耗高CPU

时间:2014-10-26 05:50:33

标签: c++ linux centos spinlock futex

我在Cent-OS机器上运行用C ++编写的多线程应用程序。 "顶部"命令输出显示应用程序占用了大部分CPU并且它正在吃系统CPU(而不是用户CPU)。然后我想到跑步"穿上顶部"命令,它显示:

76.02% [kernal]     [k] _spin_lock
1.87%  libc-2.12.so [.] _init_free
1.55%  [kernal]     [k] futex_wake
1.48%  libc-2.12.so [.] _init_malloc
1.37%  libc-2.12.so [.] malloc
0.77%  [kernal]     [k] __audit_syscall_exit
0.76%  libc-2.12.so [.] __lll_lock_wait_private
0.59%  libc-2.12.so [.] free

我不确定它为什么要吃那么高的系统CPU。该应用程序在使用Ubuntu OS的其他Linux机器上运行良好,我认为它与CentOS有关。

应用程序是用C ++编写的,高系统CPU时有大约250个活动线程 应用程序会进行大量的malloc /免费调用。

操作系统:Linux-2.6.32-358.18.1.el6.x86_64-x86_64-with-centos-6.4-Final

libc版本:2.12
机器中没有核心:16

0 个答案:

没有答案