我在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