Почему мой ЦП никогда не загружается более чем на 60–70%? В чем же узкое место?

Лучше всего использовать возможность "Digest_Spec" в файл sudoers для проверки контрольной суммы вашего исполняемого файла

Извлечение страницы руководства:

Если имя команды имеет префикс Digest_Spec, команда будет успешно соответствовать только в том случае, если ее можно проверить с помощью указанный дайджест SHA-2.

Используя openssl, чтобы сгенерировать контрольную сумму:

 $ openssl dgst -sha224 / usr / local / sbin / mycommand 
SHA224 (/ usr / local / sbin / mycommand) = 
52246fd78f692554c9f6be9c8ecd34bbc9 
 

Затем в вашем файле sudoers (в той же строке):

 www-data ALL=(ALL) NOPASSWD: 
    ssha224:52246fd78f692554c9f6be9c8ea001c9131c3426c27c88dbbad08365
    /usr/local/sbin/mycommand
3
01.05.2016, 22:12
2 ответа

Для отладки проблем с планированием или производительностью приложений в Linux, хорошим началом будет запуск задачи под perf stat. Она сообщает статистику о конвейере процессора, его застопорившихся циклах или поведении памяти.

Возможные проблемы:

  • Ошибка Linux/Scheduler
  • Intel HT не успевает за вашими потоками
  • Память не в состоянии предоставить достаточно данных для программы

Для усложнения, разрешение было неправильным/старым ядром (4.2.0) вместо ожидаемого 4.4.0 для Ubuntu 16.04. Обновление решило проблему.

4
27.01.2020, 21:18

Я не думаю, что это проблема, скорее это поведение программы, которую вы запускаете.

Ваше приложение (, компилирующее ), не загружает ЦП на 100%, возможно, оно выполняет довольно много операций ввода-вывода. Когда приложение выполняет ввод-вывод, оно переходит в режим iowait. Он не может использовать ЦП, пока не завершит операцию ввода-вывода.

Обратите внимание на «время ожидания» в top.

1
27.01.2020, 21:18

Теги

Похожие вопросы