CentOS: спин-блокировка, потребляющая высокую нагрузку на процессор при запуске многопоточного приложения

Я запускаю многопоточное приложение, написанное на C ++, на компьютере с ОС Cent-OS. Вывод команды «top» показывает, что приложение потребляет большую часть ЦП и работает как системный ЦП (не пользовательский ЦП). Затем я подумал о запуске команды «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

Я не уверен, почему он ест этот высокий системный процессор. Приложение отлично работает на других машинах Linux с ОС Ubuntu, мне кажется, что оно связано с CentOS.

Приложение написано на C ++, во времена высокой загрузки системного процессора было около 250 активных потоков.
Приложения делают много вызовов malloc / free.

Операционная система: Linux-2.6.32-358.18.1.el6.x86_64-x86_64-with-centos-6.4-Final
версия libc: 2.12
Нет ядер в машине: 16

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]