Назад | Перейти на главную страницу

Может ли высокая нагрузка привести к зависанию сервера и ошибке «блокировка более 120 секунд»?

В настоящее время запущено несколько виртуальных машин и серверов без операционной системы. Java работает на высоком уровне - временами более 400% +. Случайно зависает сервер с ошибкой в ​​консоли «java - заблокирован более 120 секунд» - kjournald и т. Д.

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

Я изменил среду, в которой это находится - даже физический сервер, и это все еще происходит.

Я изменил hung_task_timeout_secs на 0, если это ложное срабатывание согласно http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Technical_Notes/deployment.html .

Также не устанавливается irqbalance, может, поможет?

это Ubuntu 10.04 64bit - такая же проблема с последними версиями 2.6.38-15-server и 2.6.36.

Могут ли проблемы с процессором или памятью / отсутствие подкачки вызвать эту проблему?

вот сообщение консоли:

[58Z?Z1.5?Z840] INFUI task java:21547 blocked for more than 120 seconds.
[58Z?Z1.5?Z986] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z841.5?Z06Z] INFUI task kjournald:190 blocked for more than 120 seconds.
[58Z841.5?Z336] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z841.5?Z600] INFUI task flush-202:0:709 blocked for more than 120 seconds.
[58Z841.5?Z90?] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z841.5?3413] INFUI task java:21547 blocked for more than 120 seconds.
[58Z841.5?368Z] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z961.5?ZZ36] INFUI task kjournald:60 blocked for more than 120 seconds.
[58Z961.5?Z6Z5] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z961.5?31ZZ] INFUI task flush-202:0:709 blocked for more than 120 seconds.
[58Z961.5?3393] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.

Да, может.

Это означает довольно ясно: ядро ​​не могло запланировать задачу на 120 секунд. Это указывает на нехватку ресурсов, часто из-за доступа к диску.

irqbalance может помочь, но это не кажется очевидным. Можете ли вы предоставить нам окружение этого сообщения в dmesg, в частности, трассировку стека, которая следует за ним?

Более того, это не ложное срабатывание. Это не говорит о том, что задача зависла навсегда, и утверждение совершенно правильно. Это не значит, что это проблема для вас, и вы можете проигнорировать ее, если не заметите никакого воздействия на пользователя.

Это не может быть вызвано:

  • проблема с процессором (или, скорее, безумно маловероятный аппаратный сбой),
  • проблема с памятью (очень маловероятно, что аппаратный сбой, но не произойдет несколько раз; не недостаток оперативной памяти, поскольку процесс может быть oom-killed),
  • отсутствие свопа (oom-killer очередной раз).

В некоторой степени вы могли бы винить это в нехватке памяти в том смысле, что лишение вашей системы кэширования данных в ОЗУ приведет к увеличению количества операций ввода-вывода. Но это не так просто, как «нехватка памяти».

sudo sysctl -w vm.dirty_ratio=10
sudo sysctl -w vm.dirty_background_ratio=5

Затем зафиксируйте изменение с помощью:

sudo sysctl -p

решил это для меня ....

Недавно я столкнулся с этой ошибкой в ​​одном из наших производственных кластеров:

11 ноября, 14:56:41 xxx kernel: INFO: задача xfsalloc / 3: 2393 заблокирована более 120 секунд.

11 ноября, 14:56:41 Ядро Xxxx: не испорчено 2.6.32-504.8.1.el6.x86_64 # 1

11 ноября, 14:56:41 xxx: "echo 0> / proc / sys / kernel / hung_task_timeout_secs" отключает это сообщение.

..

При дальнейшей проверке найденных журналов sar время ожидания ввода-вывода было увеличено в то же время.

И после проверки оборудования (физических дисков) обнаружил, что ошибки среды и другие ошибки SCSI были зарегистрированы на одном физическом диске, который, в свою очередь, блокировал операции ввода-вывода из-за нехватки ресурсов для распределения.

11/11/15 19:52:40: завершено pRdm 607b8000 flags = 0 TimeOutC = 0 RetryC = 0 Запрос c1173100 Ответ 60e06040 iocStatus 0048 retryC 0 devId: 3 devFlags = f1482005 iocLogInfo: 31140000

11/11/15 19:52:40: DM_ProcessDevWaitQueue: управление задачей в процессе devId = x 11/11/15 19:52:40: DM_ProcessDevWaitQueue: управление задачей в процессе devId = x

Значит, это произошло из-за аппаратной ошибки в нашем кластере.

Так что было бы хорошо, если бы вы могли проверить наличие основного файла, а также наличие утилиты ipmi, проверьте команду ipmiutil / ipmitool sel elist, чтобы проверить наличие проблемы.

С уважением, VT

Вы можете перейти к интерфейсу мониторинга вашего облачного провайдера и проверить, не превысили ли вы максимальное количество операций ввода-вывода, указанное для вашего хранилища, что объяснило бы, почему на очистку данных кеша ушло много времени.
Максимальное количество операций ввода-вывода доступно на странице атрибутов хранилища.