Что действительно “определяет задачу для mysqld:xxx, заблокированного больше 120 секунд”, средних?

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

(Я добавил бы, что это - путь по умолчанию, которым много задач некрона отправляют Вам свою почту, но у меня нет доказательства для резервного копирования этого.)

Постараться не видеть Вашу почту как спам: Удостоверьтесь, что Ваша почта не похожа на спам. Например, не только единственная ссылка HTML, не только изображение. Написание № l33t. Допустимые источники. И т.д. и т.д. Не их характерны для почтовой команды.

3
28.01.2015, 09:58
2 ответа

echo 0 > /proc/sys/kernel/hung_task_timeout_secs только заглушает предупреждение. Кроме того, оно не имеет никакого эффекта. Любое значение выше нуля вызовет выдачу данного сообщения всякий раз, когда задача будет заблокирована на это время.

Предупреждение выдается, чтобы указать на проблему с системой. По моему опыту это означает, что процесс блокируется в пространстве ядра как минимум на 120 секунд, обычно потому, что процесс голодает от дискового ввода/вывода. Это может быть вызвано интенсивной заменой из-за слишком большого объема используемой памяти, например, если у вас большая нагрузка на веб-сервер и вы настроили слишком много дочерних процессов apache для вашей системы. В вашем случае может быть просто слишком много mysql-процессов, конкурирующих за память и данные ввода-вывода.

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

3
27.01.2020, 21:12

эхо 0 >/ proc/sys/kernel/hung_task_timeout_secs только замалчивает предупреждение. Кроме того, это не имеет никакого эффекта. Любое значение выше нуля приведет к тому, что это сообщение будет выдаваться всякий раз, когда задача блокируется в течение этого периода времени.

Предупреждение выдается для индикации проблемы с системой. По моему опыту это означает, что процесс блокируется в пространстве ядра по крайней мере на 120 секунд, как правило, потому, что в процессе не хватает дискового ввода-вывода. Это может быть связано с большой заменой из-за слишком большого объема используемой памяти, например, если вы загружены веб-сервером и настроили слишком много дочерних процессов apache для вашей системы. В вашем случае может быть просто слишком много процессов mysql конкурируют за память и данные IO.

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

-121--99159-

Массивы определяются по-разному:

components=(Persistence Instrument "Accessory Engine")

или

components=(Persistence Instrument Accessory\ Engine)

И доступ к ним осуществляется по-разному:

for i in "${components[@]}"
-121--202637-

«зависшие задачи» являются ошибками, которые приводят к тому, что ядро оставляет задачу в состоянии «D» без прерывания. Задача/процесс в этом состоянии не могут быть уничтожены ни с kill -9 .

Ваше сообщение в /var/log/messages означает, что задача 4123 , очевидно, mysql демон находится в этом состоянии с 120 секунд. Это означает, что демон mysql ждет ресурсов. В основном состояние «D» вызвано I/O.

Когда процесс запрашивает системный вызов чтения для открытой файловой системы, он переходит в состояние «D», пока необходимо прочитать файл. Процесс «заблокирован».

Это значение в /proc/sys/kernel/hung _ task _ timeout _ secs является только определением того, когда это сообщение должно появиться в журналах. Как указано в сообщении, это сообщение можно отключить при установке значения 0 . Но это не решает вашу проблему.

Вы можете решить проблему неразрушаемого состояния только 2 способами:

  1. Перезагрузите систему или...
  2. Определите, какой ресурс необходим процессу, и убедитесь, что ресурс доступен.
4
27.01.2020, 21:12

Теги

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