FreeBSD 9.2. Процессы в статусе D

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Andrey
рядовой
Сообщения: 19
Зарегистрирован: 2007-08-31 8:56:24

FreeBSD 9.2. Процессы в статусе D

Непрочитанное сообщение Andrey » 2014-05-05 23:34:56

Ребята, прошу помочь разобраться!

В общем, проблема в следующем. Есть боевой сервер, месяца полтора отработал без нареканий. Через 4 дня после перезагрузки без всяких видимых причин (графики Zabbix) резко возросло количество процессов (httpd), многие httpd, все воркеры nginx, некоторые другие процессы висят в D state. На деле все жутко тормозит, сайты работают через одно место, в основном 499 ошибка nginx. Немного инфо:

Код: Выделить всё

# mount
/dev/mfid0p2 on / (ufs, local, journaled soft-updates)
devfs on /dev (devfs, local, multilabel)
/dev/mfid0p4 on /var (ufs, local, journaled soft-updates)
/dev/mfid0p5 on /tmp (ufs, local, journaled soft-updates)
/dev/mfid0p6 on /usr (ufs, local, journaled soft-updates)
/dev/mfid0p7 on /home (ufs, local, with quotas, journaled soft-updates)

Код: Выделить всё

# uname -rsm
FreeBSD 9.2-RELEASE-p5 amd64

Код: Выделить всё

# df -i
Filesystem    1K-blocks      Used     Avail Capacity iused     ifree %iused  Mounted on
/dev/mfid0p2   16233660   1128356  13806612     8%    5084   2161826    0%   /
devfs                 1         1         0   100%       0         0  100%   /dev
/dev/mfid0p4  260001720  28296360 210905224    12%  134154  33493108    0%   /var
/dev/mfid0p5   16233660   7295780   7639188    49%     406   2166504    0%   /tmp
/dev/mfid0p6   64995324   8283908  51511792    14%  359291   8067587    4%   /usr
/dev/mfid0p7 1525505972 555076272 848389224    40% 3989720 193199270    2%   /home
Ввиду критичности аптайма решает проблему перезагрузка, при которой замечено такое (записано уже при повторении проблемы):

Код: Выделить всё

softdep_waitidle: Failed to flush worklist for 0xfffffe0009e019a8
unmount of /home failed (BUSY)
После перезагрузки получаем такое:

Код: Выделить всё

** SU+J Recovering /dev/mfid0p7
** Reading 33554432 byte journal from inode 4.
** Building recovery table.
** Resolving unreferenced inode list.
** Processing journal entries.
/dev/mfid0p7: ino 6181683 nlink manipulation error, new link 65530, old link 0
/dev/mfid0p7: UNEXPECTED SU+J INCONSISTENCY
/dev/mfid0p7: INTERNAL ERROR: GOT TO reply()
/dev/mfid0p7: UNEXPECTED SOFT UPDATE INCONSISTENCY; RUN fsck MANUALLY.
pid 118 (fsck_ufs), uid 0:  exited on signal 11
ufs: /dev/mfid0p7 (/home): EXITED WITH SIGNAL 11
THE FOLLOWING FILE SYSTEM HAD AN UNEXPECTED INCONSISTENCY:
          ufs: /dev/mfid0p7 (/home)
Automatic file system check failed; help!
ERROR: ABORTING BOOT (sending SIGTERM to parent)!
....
После fsck перезагружаем и все хорошо... было. Через сутки проблема повторилась в том же виде.

Уже нет идей, кроме как отключить SU+J, а поможет ли? В чем может быть дело? Кто что посоветует? Аптайм критичен, сильно экспериментировать нежелательно.


P.S. Был сервер с FreeBSD 9.1, с RAID1 (сейчас другой контроллер и RAID10) и на нем была такая же проблема, бывало через три месяца, а бывало и через неделю повторялось. Тогда так и не нашлась причина, сервер с полгода назад был отдан под другие задачи.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

guest
проходил мимо

Re: FreeBSD 9.2. Процессы в статусе D

Непрочитанное сообщение guest » 2014-05-06 11:46:39

Andrey писал(а):Ребята, прошу помочь разобраться!

В общем, проблема в следующем. Есть боевой сервер, месяца полтора отработал без нареканий. Через 4 дня после перезагрузки без всяких видимых причин (графики Zabbix) резко возросло количество процессов (httpd), многие httpd, все воркеры nginx, некоторые другие процессы висят в D state. На деле все жутко тормозит, сайты работают через одно место, в основном 499 ошибка nginx. Немного инфо:

Код: Выделить всё

# mount
/dev/mfid0p2 on / (ufs, local, journaled soft-updates)
devfs on /dev (devfs, local, multilabel)
/dev/mfid0p4 on /var (ufs, local, journaled soft-updates)
/dev/mfid0p5 on /tmp (ufs, local, journaled soft-updates)
/dev/mfid0p6 on /usr (ufs, local, journaled soft-updates)
/dev/mfid0p7 on /home (ufs, local, with quotas, journaled soft-updates)

Код: Выделить всё

# uname -rsm
FreeBSD 9.2-RELEASE-p5 amd64

Код: Выделить всё

# df -i
Filesystem    1K-blocks      Used     Avail Capacity iused     ifree %iused  Mounted on
/dev/mfid0p2   16233660   1128356  13806612     8%    5084   2161826    0%   /
devfs                 1         1         0   100%       0         0  100%   /dev
/dev/mfid0p4  260001720  28296360 210905224    12%  134154  33493108    0%   /var
/dev/mfid0p5   16233660   7295780   7639188    49%     406   2166504    0%   /tmp
/dev/mfid0p6   64995324   8283908  51511792    14%  359291   8067587    4%   /usr
/dev/mfid0p7 1525505972 555076272 848389224    40% 3989720 193199270    2%   /home
Ввиду критичности аптайма решает проблему перезагрузка, при которой замечено такое (записано уже при повторении проблемы):

Код: Выделить всё

softdep_waitidle: Failed to flush worklist for 0xfffffe0009e019a8
unmount of /home failed (BUSY)
После перезагрузки получаем такое:

Код: Выделить всё

** SU+J Recovering /dev/mfid0p7
** Reading 33554432 byte journal from inode 4.
** Building recovery table.
** Resolving unreferenced inode list.
** Processing journal entries.
/dev/mfid0p7: ino 6181683 nlink manipulation error, new link 65530, old link 0
/dev/mfid0p7: UNEXPECTED SU+J INCONSISTENCY
/dev/mfid0p7: INTERNAL ERROR: GOT TO reply()
/dev/mfid0p7: UNEXPECTED SOFT UPDATE INCONSISTENCY; RUN fsck MANUALLY.
pid 118 (fsck_ufs), uid 0:  exited on signal 11
ufs: /dev/mfid0p7 (/home): EXITED WITH SIGNAL 11
THE FOLLOWING FILE SYSTEM HAD AN UNEXPECTED INCONSISTENCY:
          ufs: /dev/mfid0p7 (/home)
Automatic file system check failed; help!
ERROR: ABORTING BOOT (sending SIGTERM to parent)!
....
После fsck перезагружаем и все хорошо... было. Через сутки проблема повторилась в том же виде.

Уже нет идей, кроме как отключить SU+J, а поможет ли? В чем может быть дело? Кто что посоветует? Аптайм критичен, сильно экспериментировать нежелательно.


P.S. Был сервер с FreeBSD 9.1, с RAID1 (сейчас другой контроллер и RAID10) и на нем была такая же проблема, бывало через три месяца, а бывало и через неделю повторялось. Тогда так и не нашлась причина, сервер с полгода назад был отдан под другие задачи.
варианты:
- проблема в дисках, или в моделях дисков, smartctl
- проблема в SU-J, отключите журналирование и проверьте
- проблема в батарейке и/или write-cache

Аватара пользователя
weec
лейтенант
Сообщения: 948
Зарегистрирован: 2007-07-24 11:17:35
Откуда: Afghanistan
Контактная информация:

Re: FreeBSD 9.2. Процессы в статусе D

Непрочитанное сообщение weec » 2014-05-08 12:52:25

про журнал контроллера не забудь

Andrey
рядовой
Сообщения: 19
Зарегистрирован: 2007-08-31 8:56:24

Re: FreeBSD 9.2. Процессы в статусе D

Непрочитанное сообщение Andrey » 2014-05-08 23:05:39

weec писал(а):про журнал контроллера не забудь
В смысле почитать? Там ничего необычного.

Пока ограничился tunefs -j disable для всех разделов, чтобы исключить наверняка. Хотя проблема повторялась только для /home, и соответственно в ступор впадали все процессы, которые ходят на /home.

guest
проходил мимо

Re: FreeBSD 9.2. Процессы в статусе D

Непрочитанное сообщение guest » 2014-05-09 11:16:59

Andrey писал(а):
weec писал(а):про журнал контроллера не забудь
В смысле почитать? Там ничего необычного.

Пока ограничился tunefs -j disable для всех разделов, чтобы исключить наверняка. Хотя проблема повторялась только для /home, и соответственно в ступор впадали все процессы, которые ходят на /home.
диски то какие, модели?

Andrey
рядовой
Сообщения: 19
Зарегистрирован: 2007-08-31 8:56:24

Re: FreeBSD 9.2. Процессы в статусе D

Непрочитанное сообщение Andrey » 2014-05-09 11:46:06

Hitachi A7K2000 1TB 7200rpm 32MB HUA722010CLA330 (JP4OA3EA)

guest
проходил мимо

Re: FreeBSD 9.2. Процессы в статусе D

Непрочитанное сообщение guest » 2014-05-12 9:21:16

Andrey писал(а):Hitachi A7K2000 1TB 7200rpm 32MB HUA722010CLA330 (JP4OA3EA)
диски правильные

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: FreeBSD 9.2. Процессы в статусе D

Непрочитанное сообщение admin_sv » 2014-05-26 12:49:54

По теме года 2 назад сталкивался с такой проблемой на ufs. Помогло полный слив данных и форматирование винта, ну и конечно новый слайс. Причина отсутствие журнала в ufs и при некорректном отключении сервера иногда так радует. Потому и внедрена в 9 версию zfs.
fsck -y помогает слить данные, 1т перезагрузки за 3 получилось.