Ну, так как Вы конкретно спрашиваете, как знать, в котором IRQ ответственен за число mpstat
, можно предположить, что это не локальный таймер прерывания (LOC), так как те количества довольно равны, и все же mpstat
шоу некоторые из тех CPU в 0%irq.
Это оставляет IRQ 0, который является системным таймером, и который Вы ничего не можете сделать о, и IRQ 177, который связывается с Вашим b4xxp драйвером.
Мое предположение - то, что IRQ 177 был бы Вашим преступником.
Если бы это вызывает проблему, и требуется изменить поведение Ваш видеть, попробовать:
отключение программного обеспечения, которое использует ту карту и видит, уменьшаются ли прерывания.
удаление той карты от системы и разгрузка драйвера, и видят, существует ли улучшение.
переместите ту карту в другой слот и посмотрите, помогает ли это.
проверьте на обновленные драйверы или патчи для программного обеспечения.
Если это не проблема, и Вы были просто любопытны, то продолжаете.:)
Я не полагаю, что это возможно. cron
только детализировано вниз к минуте и at
служебные рычаги в него, чтобы сделать он - работа. Я думаю, что у Вас есть правильное решение - спящий в течение x секунд перед выполнением.
Вы могли превратить свою технику в функцию:
atplus () { local sec=${1##*.} time=${1%.*}; shift; echo "sleep $sec; $@" | at $time; }
Попробовать:
atplus 22.21.05 my_script.sh
Необходимо знать, однако, что точность не гарантируется.
at
может поддерживать секунды Я думаю, что это не всегда хорошо поддерживается (в зависимости от конкретной реализации ), но в принципеat
может поддерживать секунды.
Из справочной страницы:
-t time run the job at time, given in the format [[CC]YY]MMDDhhmm[.ss]
Посмотрите на [.ss]
в конце.
Это означает, что с помощью опции -t
вы можете ввести что-то вроде
echo "yourscript.sh" | sudo at -t 04281549.45
т.е. команда должна быть выполнена в15:49:45
(45 секунд ).
(28 апреля)
Когда я попробовал, как и ожидалось, результат at
был:
job 38 at Wed Apr 28 15:49:45 2021
Обратите внимание,:когда я попробовал это сделать, оно все же опоздало на несколько секунд, но все равно было выполнено не раньше 15:49:45
, что означает, что указанные секунды не игнорируются at
внутренне они фактически считаются. Таким образом, указание секунд все еще может быть полезно, когда вы хотите сказать что-то вроде «отложить эту команду, чтобы запустить ее не ранее, чем 15:49:45
».