1

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

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/free 调用。

操作系统:Linux-2.6.32-358.18.1.el6.x86_64-x86_64-with-centos-6.4-最终
libc版本:2.12
机器内核数:16

4

0 回答 0