Лучше всего использовать возможность "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
Для отладки проблем с планированием или производительностью приложений в Linux, хорошим началом будет запуск задачи под perf stat
. Она сообщает статистику о конвейере процессора, его застопорившихся циклах или поведении памяти.
Возможные проблемы:
Для усложнения, разрешение было неправильным/старым ядром (4.2.0) вместо ожидаемого 4.4.0 для Ubuntu 16.04. Обновление решило проблему.
Я не думаю, что это проблема, скорее это поведение программы, которую вы запускаете.
Ваше приложение (, компилирующее ), не загружает ЦП на 100%, возможно, оно выполняет довольно много операций ввода-вывода. Когда приложение выполняет ввод-вывод, оно переходит в режим iowait. Он не может использовать ЦП, пока не завершит операцию ввода-вывода.
Обратите внимание на «время ожидания» в top
.