Команда/сценарий Scheduling путем определения точной секунды

Ну, так как Вы конкретно спрашиваете, как знать, в котором IRQ ответственен за число mpstat, можно предположить, что это не локальный таймер прерывания (LOC), так как те количества довольно равны, и все же mpstat шоу некоторые из тех CPU в 0%irq.

Это оставляет IRQ 0, который является системным таймером, и который Вы ничего не можете сделать о, и IRQ 177, который связывается с Вашим b4xxp драйвером.

Мое предположение - то, что IRQ 177 был бы Вашим преступником.

Если бы это вызывает проблему, и требуется изменить поведение Ваш видеть, попробовать:

  1. отключение программного обеспечения, которое использует ту карту и видит, уменьшаются ли прерывания.

  2. удаление той карты от системы и разгрузка драйвера, и видят, существует ли улучшение.

  3. переместите ту карту в другой слот и посмотрите, помогает ли это.

  4. проверьте на обновленные драйверы или патчи для программного обеспечения.

Если это не проблема, и Вы были просто любопытны, то продолжаете.:)

5
24.08.2010, 23:46
3 ответа

Я не полагаю, что это возможно. cron только детализировано вниз к минуте и at служебные рычаги в него, чтобы сделать он - работа. Я думаю, что у Вас есть правильное решение - спящий в течение x секунд перед выполнением.

5
27.01.2020, 20:38

Вы могли превратить свою технику в функцию:

atplus () { local sec=${1##*.} time=${1%.*}; shift; echo "sleep $sec; $@" | at $time; }

Попробовать:

atplus 22.21.05 my_script.sh

Необходимо знать, однако, что точность не гарантируется.

2
27.01.2020, 20:38

На самом деле 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».

1
28.04.2021, 14:31

Теги

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