Меньшее количество прерываний таймера при выполнении какого-либо пользовательского процесса - PullRequest
3 голосов
/ 17 марта 2012

В узле мы видели, что время всегда дрейфует и джиттер ntp очень высок. Когда мы проверили количество прерываний через vmstat в хосте, оно составило около 40-50 прерываний, что обычно должно быть около 1000+ на этих машинах. Когда мы остановили Java-процессы и проверили прерывания, они вернулись к норме около 1K. Также

cat /proc/interrupts ;  sleep 2 ; cat /proc/interrupts 

показывал около 200 прерываний, когда были запущены процессы Java, и около 2k, когда процессы были остановлены.

Я думаю, что задержка прерываний по таймеру может объяснить

  1. Высокая нагрузка на машины: поскольку процессоры не запускаются процессором после кванта, большее число процессов находится в очереди выполнения и, следовательно, высокая нагрузка
  2. Очень медленный ответ: Ну, команды, которые мы выполняем, могут не планироваться снова из-за отсутствия прерываний по таймеру после кванта

Но не в состоянии объяснить

  1. Низкое использование процессора%

Здесь так мало вопросов:

  1. Что происходит с прерываниями?
  2. Прерывания от таймера имеют наибольшее предпочтение (irq0) и не могут быть проигнорированы. Так почему же (если это вообще возможно) процессы рычага пользователя могут вызвать это?

1 Ответ

0 голосов
/ 19 марта 2012

Похоже, это аппаратная проблема.Убийство пользовательской программы исправления системы было случайным.Также http://support.ntp.org/bin/view/Support/KnownOsIssues#Section_9.2.1.1. говорит о подобных проблемах.

...