URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 53967
[ Назад ]

Исходное сообщение
"Сервер под FreeBSD виснет"

Отправлено Junky , 28-Фев-05 23:02 
Примерно один - два раза в сутки виснет сервак под FreeBSD 5.3. Зависоны происходят как правило днем, когда нагрузка возрастает. Проявляется это так - сервак продолжает пинговаться, при сканировании открыты нужные порты, сервиса на этих портах не отвечают, судя по всему на самом серваке в это время тоже все процессы замирают. В логах никакой полезной информации о причине зависания нет.
На нем запущены apache 1.3 (штук 10, на разных IP), pure-ftpd, mysql 4.1, exim, sshd. Сервак достаточно загружен, почти у всех сайтов (по сайту на каждом апаче) по несколько тысяч посещений в день.
Конфигурация сервера примерно такая: P4-2.8 HT, 1GB памяти, сетевуха Intel 82551 Pro/100 Ethernet.
Установлены следующие параметры:
kern.maxusers: 384
net.inet.tcp.recvspace: 131032 (до этого пробовал ставить 65535)
net.inet.tcp.sendspace: 131032 (до этого пробовал ставить 65535)
net.inet.udp.blackhole: 1
net.inet.tcp.blackhole: 2
kern.ipc.somaxconn: 2048
kern.ipc.maxsockets: 35000
kern.maxproc: 16000
kern.maxprocperuid: 16000
kern.maxfiles: 25000
kern.maxfilesperproc: 22000
---------
вот что говорит top:
load averages:  0.51,  0.60,  0.75                                                              
471 processes: 1 running, 470 sleeping
CPU states: 25.6% user,  0.0% nice,  4.3% system,  2.7% interrupt, 67.4% idle
Mem: 692M Active, 63M Inact, 206M Wired, 35M Cache, 111M Buf, 1656K Free
Swap: 1024M Total, 107M Used, 917M Free, 10% Inuse

перед зависоном почти такая же ситуация, чуть побольше процессов только...

ipfw закрыл все лишние порты, на коннекты к апачу стоит некое ограничение:
allow tcp from any to any dst-port 80 limit src-addr 15

ядро не пересобирал.

Что тут еще можно сделать? В чем возможная причина? Очень прошу помочь любым советом. Заранее благодарен.


Содержание

Сообщения в этом обсуждении
"Сервер под FreeBSD виснет"
Отправлено 8888 , 01-Мрт-05 06:25 
как можно на таком серваке оставить дефолтовое ядро???
в принципе конечно работать будет, но как???
я в принципе даже забыл, что существует ядро "по-умолчанию" - ВСЕГДА только своё.

ipfw? оно там есть? тогда ipfw show -de... (или как там в 5.3 - под рукой нет)


"Сервер под FreeBSD виснет"
Отправлено aliv , 01-Мрт-05 11:09 
>как можно на таком серваке оставить дефолтовое ядро???
>в принципе конечно работать будет, но как???
>я в принципе даже забыл, что существует ядро "по-умолчанию" - ВСЕГДА только
>своё.
>
>ipfw? оно там есть? тогда ipfw show -de... (или как там в
>5.3 - под рукой нет)


Согласен. Ядро Generic имеет все возможные драйвера и всякого хлама. Собрать под себя ядро думаю надо.
Потом я не спец в апаче, но по моему не надо держать 10 шт. Существует методика виртуального хостинга, позволяющая иметь 10 сайтов на одном апаче и одном ip адресе.


"Сервер под FreeBSD виснет"
Отправлено Junky , 01-Мрт-05 12:55 
>>как можно на таком серваке оставить дефолтовое ядро???
>>в принципе конечно работать будет, но как???
>>я в принципе даже забыл, что существует ядро "по-умолчанию" - ВСЕГДА только
>>своё.
>>
>>ipfw? оно там есть? тогда ipfw show -de... (или как там в
>>5.3 - под рукой нет)
>
>
>Согласен. Ядро Generic имеет все возможные драйвера и всякого хлама. Собрать под
>себя ядро думаю надо.
>Потом я не спец в апаче, но по моему не надо держать
>10 шт. Существует методика виртуального хостинга, позволяющая иметь 10 сайтов на
>одном апаче и одном ip адресе.


Собрал, все равно завис...

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


"Сервер под FreeBSD виснет"
Отправлено Junky , 01-Мрт-05 12:53 
>как можно на таком серваке оставить дефолтовое ядро???
>в принципе конечно работать будет, но как???
>я в принципе даже забыл, что существует ядро "по-умолчанию" - ВСЕГДА только
>своё.
>
>ipfw? оно там есть? тогда ipfw show -de... (или как там в
>5.3 - под рукой нет)


Честно говоря в FreeBSD я совсем новичок, поэтому предположил, что ядро пересобирать не обязательно, учитывая что оно имеет модульную конструкцию, и впринципе многие модули и так выключены, а все что наоборот нужно можно включит через /boot/loader.conf или sysctl...

Сегодня ночью все-таки обновил и пересобрал ядро. Теперь стоит 5.4RC-2... И вот только что сервак снова повис...

ipfw есть, он закрывает все ненужные порты и ограничивает кол-во коннектов к апачу...


"Сервер под FreeBSD виснет"
Отправлено Junky , 01-Мрт-05 13:23 

>Сегодня ночью все-таки обновил и пересобрал ядро. Теперь стоит 5.4RC-2... И вот
>только что сервак снова повис...

прогнал... ядро щас стоит 5.4-PRERELEASE.


"Сервер под FreeBSD виснет"
Отправлено butcher , 01-Мрт-05 13:27 
>не обязательно, учитывая что оно имеет модульную конструкцию, и впринципе многие
>модули и так выключены, а все что наоборот нужно можно включит
>через /boot/loader.conf или sysctl...

Ядро нужно пересобирать, ИМХО, по следующим причинам:
1) устранение возможных конфликтов различных драйверов (ИМХО - главная);
2) определённый тюнинг существующих драйверов;
3) более быстрая загрузка системы;
4) уменьшение размера ядра;
...

>Сегодня ночью все-таки обновил и пересобрал ядро. Теперь стоит 5.4RC-2... И вот
>только что сервак снова повис...

Если в лог ничего не валится, то хотябы на консоли есть что-нибудь? Клавиатура жива (capsLock. NumLock реагируют)? Или возможности посмотреть нет?

Обычно если система вот так запросто виснет и не оставляет никаких следов говорит о проблемах с железом. Что конкретно, зависит от конфиги, попробуйте собрать больше информации о железе и по архивам списков рассылки FreeBSD поищите, возможно были какие-то проблемы с аналогичным железом.
Я бы в первую очередь посмотрел на память и дисковые/рэйд контроллеры, попробовал бы что-то поменять потестить.

По системе: отключите все что вам точно не нужно - выкиньте из ядра лишние драйвера, отключите ненужные сервисы.


"Сервер под FreeBSD виснет"
Отправлено Junky , 01-Мрт-05 14:04 

>Если в лог ничего не валится, то хотябы на консоли есть что-нибудь?
>Клавиатура жива (capsLock. NumLock реагируют)? Или возможности посмотреть нет?

Сервак уделаенный... Вроде как на клаву реагирует, но не логинется при этом... так сказали те что его пререгружает...

>
>Обычно если система вот так запросто виснет и не оставляет никаких следов
>говорит о проблемах с железом. Что конкретно, зависит от конфиги, попробуйте

Виснет он по странному... Пинговаться же продолжает...

>собрать больше информации о железе и по архивам списков рассылки FreeBSD
>поищите, возможно были какие-то проблемы с аналогичным железом.
>Я бы в первую очередь посмотрел на память и дисковые/рэйд контроллеры, попробовал
>бы что-то поменять потестить.
>
>По системе: отключите все что вам точно не нужно - выкиньте из
>ядра лишние драйвера, отключите ненужные сервисы.

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

По железу попробую инфу собрать и поискать... но чувствуя я, что придется 4.11 ставить туда... очень не хочется, но все к этому идет :(


"Сервер под FreeBSD виснет"
Отправлено butcher , 01-Мрт-05 15:09 
>Сервак уделаенный... Вроде как на клаву реагирует, но не логинется при этом...
>так сказали те что его пререгружает...

Понятно. Вероятно что-то с дисковой подсистемой ввода/вывода, происходит блокирока при операции ввода/вывода?..
Пусть те, кто его перегружают попробуют запустить top на одной из консолей, и потом когда зависнет скажут в каких состояних(столбец STATE) находятся процессы.


"Сервер под FreeBSD виснет"
Отправлено Junky , 01-Мрт-05 15:33 
>>Сервак уделаенный... Вроде как на клаву реагирует, но не логинется при этом...
>>так сказали те что его пререгружает...
>
>Понятно. Вероятно что-то с дисковой подсистемой ввода/вывода, происходит блокирока при операции ввода/вывода?..
>
>Пусть те, кто его перегружают попробуют запустить top на одной из консолей,
>и потом когда зависнет скажут в каких состояних(столбец STATE) находятся процессы.
>

попробую озадачить их этим...
вобще у нас щас ведется лог ps, top, кол-ва процессов, коннектов к mysql и т.п., раз в минуту... вот такое состояние во время последнего лога до зависона:

last pid: 25434;  load averages:  0.22,  0.35,  0.38  up 0+04:15:05    12:42:04
462 processes: 1 running, 461 sleeping

Mem: 627M Active, 124M Inact, 202M Wired, 35M Cache, 111M Buf, 9752K Free
Swap: 1024M Total, 31M Used, 992M Free, 3% Inuse


  PID USERNAME PRI NICE   SIZE    RES STATE    TIME   WCPU    CPU COMMAND
  637 mysql     20    0 63132K  9568K kserel  12:16  1.81%  1.81% mysqld
  667 u00180     4    0 18816K 16844K accept   2:09  0.63%  0.63% perl
  655 u00022     4    0 17140K 10420K sbwait   0:27  0.34%  0.34% httpd
24892 u00022     4    0 12580K  6320K sbwait   0:00  0.05%  0.05% httpd
  651 u00008     4    0 10728K  8264K accept   1:55  0.00%  0.00% perl
  648 u00007     4    0 10992K  8872K accept   0:32  0.00%  0.00% perl
  706 u00008     4    0  8128K  6400K accept   0:28  0.00%  0.00% perl
  677 u00022     4    0 16764K 10256K sbwait   0:28  0.00%  0.00% httpd
  681 u00018     4    0 11160K  6948K accept   0:27  0.00%  0.00% perl
  639 u00181     4    0 10220K  7280K accept   0:26  0.00%  0.00% perl
  492 u00022     4    0 16356K 10120K sbwait   0:26  0.00%  0.00% httpd
  654 u00022     4    0 16376K  9944K sbwait   0:25  0.00%  0.00% httpd
  466 u00022     4    0 16432K 10196K sbwait   0:25  0.00%  0.00% httpd
  674 u00022     4    0 16064K  9776K accept   0:25  0.00%  0.00% httpd
  541 u00022     4    0 16404K 10112K sbwait   0:25  0.00%  0.00% httpd
  675 u00022     4    0 16028K  9676K sbwait   0:24  0.00%  0.00% httpd
  676 u00022     4    0 16132K  9852K sbwait   0:23  0.00%  0.00% httpd
  638 u00022     4    0 16512K 10260K sbwait   0:23  0.00%  0.00% httpd
  723 u00115     4    0  6692K  4044K accept   0:14  0.00%  0.00% perl
  809 u00008     4    0  7044K  5380K accept   0:14  0.00%  0.00% perl

и т.д....



"Сервер под FreeBSD виснет"
Отправлено Junky , 01-Мрт-05 15:38 
наврал, последний вот этот был (надеюсь за флуд ругать не будут? :)) ):

last pid: 25465;  load averages:  0.34,  0.37,  0.39  up 0+04:15:36    12:42:35
468 processes: 1 running, 466 sleeping, 1 zombie

Mem: 666M Active, 100M Inact, 201M Wired, 29M Cache, 111M Buf, 1660K Free
Swap: 1024M Total, 34M Used, 990M Free, 3% Inuse


  PID USERNAME PRI NICE   SIZE    RES STATE    TIME   WCPU    CPU COMMAND
24254 u00022     4    0 17776K 11072K sbwait   0:02  1.76%  1.76% httpd
  637 mysql     20    0 64436K 10460K kserel  12:17  1.42%  1.42% mysqld
  667 u00180     4    0 18816K 16860K sbwait   2:10  1.37%  1.37% perl
25454 u00022     4    0 16172K 10028K accept   0:00  2.22%  0.73% httpd
  677 u00022     4    0 16764K 10256K sbwait   0:28  0.59%  0.59% httpd
25455 u00022     4    0 16148K 10004K sbwait   0:00  1.78%  0.59% httpd
25277 u00022     4    0 15956K  9800K sbwait   0:00  0.54%  0.54% httpd
25463 u00180    97    0  9280K  8372K select   0:00  9.00%  0.44% perl
  675 u00022     4    0 16028K  9676K sbwait   0:24  0.29%  0.29% httpd
25027 u00022     4    0 16260K 10188K sbwait   0:01  0.20%  0.20% httpd
25453 u00022     4    0 16076K  9924K sbwait   0:00  0.40%  0.15% httpd
25218 u00008     4    0  7752K  6816K accept   0:01  0.10%  0.10% perl
  651 u00008     4    0 10728K  8256K accept   1:55  0.05%  0.05% perl
4860 u00008     4    0  5560K  3196K sbwait   0:02  0.05%  0.05% httpd
  648 u00007     4    0 10992K  8476K accept   0:33  0.00%  0.00% perl
  706 u00008     4    0  8128K  6400K accept   0:28  0.00%  0.00% perl
  655 u00022     4    0 17140K 10420K accept   0:27  0.00%  0.00% httpd
  681 u00018    -8    0 11160K  6948K biord    0:27  0.00%  0.00% perl
  639 u00181     4    0 10220K  7220K accept   0:26  0.00%  0.00% perl
  492 u00022     4    0 16356K 10120K sbwait   0:26  0.00%  0.00% httpd


"Сервер под FreeBSD виснет"
Отправлено А.Петров , 01-Мрт-05 16:27 
>наврал, последний вот этот был (надеюсь за флуд ругать не будут? :))

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



"Сервер под FreeBSD виснет"
Отправлено Junky , 01-Мрт-05 21:27 
>>наврал, последний вот этот был (надеюсь за флуд ругать не будут? :))
>
>вот ведь неймется человеку - весь день страдает херней, вместо того что

хамить не надо я думаю, повода для этого не было!

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

а что с аташными хардами freebsd не работает?


конфигурация такая:
CPU Intel P IV 2800Mhz
Mainboard Intel SE7201TP1-E
RAM Samsung M381L6423FTM-CCC 512Mb - 2 шт
Maxtor DiamondMax Plus 9 - 2шт
Intel Raid Controller SRCS14L



"Сервер под FreeBSD виснет"
Отправлено А.Петров , 01-Мрт-05 06:40 
>Примерно один - два раза в сутки виснет сервак под FreeBSD 5.3.
>Зависоны происходят как правило днем, когда нагрузка возрастает.
<--skip-->
>Что тут еще можно сделать? В чем возможная причина? Очень прошу помочь
>любым советом. Заранее благодарен.

есть мнение - железо. подобные симптомы наблюдались на моем веб-сервере. замена винтов (WD -> IBM) и адаптера (Adaptek -> IBM) решила проблему.
правда, давно это было.


"Сервер под FreeBSD виснет"
Отправлено asser , 01-Мрт-05 09:02 
Согласен. Железо, скорее всего - винты.



"Сервер под FreeBSD виснет"
Отправлено Junky , 01-Мрт-05 12:57 
>Согласен. Железо, скорее всего - винты.


А что может быть не так с винтами? Речь ведь идет не о поверхности винтов, это было бы видно...
Как это можно отследить, удаленно? Может какой-нибудь debug режим включить где-то?


"Сервер под FreeBSD виснет"
Отправлено co6aka , 01-Мрт-05 16:40 
net.inet.udp.blackhole: 1
net.inet.tcp.blackhole: 2
верни в 0 и посмотри что будет.
А что происходит с умолчальными значениями(все значения, а не только эти)?
У меня что-то подобное было и кажется при верхних параметрах...(давно это было...)

"Сервер под FreeBSD виснет"
Отправлено Junky , 01-Мрт-05 22:25 
Новая информация... похоже что и впрямь что-то с дисковой подситемой...
top непосредственно перед зависоном:

last pid: 21714;  load averages:  0.00,  0.00,  0.01                      up 0+03:46:48  21:11:35
556 processes: 2 running, 553 sleeping, 1 zombie
CPU states:  0.0% user,  0.0% nice,  0.8% system,  0.0% interrupt, 99.2% idle
Mem: 579M Active, 144M Inact, 221M Wired, 51M Cache, 111M Buf, 1656K Free
Swap: 1024M Total, 197M Used, 827M Free, 19% Inuse

  PID USERNAME PRI NICE   SIZE    RES STATE    TIME   WCPU    CPU COMMAND
  716 mysql     20    0 79716K 19032K kserel  12:45  0.00%  0.00% mysqld
  820 u00180     4    0 16992K 13920K accept   1:23  0.00%  0.00% perl
  803 u00008     4    0 10692K  6504K accept   1:11  0.00%  0.00% perl
3808 root      96    0  3308K  2060K RUN      0:32  0.00%  0.00% top
  749 u00018     4    0 11132K  5532K accept   0:26  0.00%  0.00% perl
  790 u00007     4    0 10656K  7012K accept   0:20  0.00%  0.00% perl
  832 u00008     4    0  8292K  5588K accept   0:20  0.00%  0.00% perl
  919 u00022    -4    0 16228K  6980K ufs      0:18  0.00%  0.00% httpd
  887 u00022    -4    0 16096K  6876K ufs      0:18  0.00%  0.00% httpd
  958 u00022    -4    0 16560K  7520K ufs      0:18  0.00%  0.00% httpd
  881 u00022    -4    0 16576K  7080K ufs      0:17  0.00%  0.00% httpd
  911 u00022    -4    0 16532K  7476K ufs      0:17  0.00%  0.00% httpd
  964 u00022    -4    0 16468K  7268K ufs      0:16  0.00%  0.00% httpd
  920 u00022    -4    0 16392K  6568K ufs      0:16  0.00%  0.00% httpd
  883 u00022    -4    0 16340K  7268K ufs      0:16  0.00%  0.00% httpd
  888 u00022    -4    0 16324K  5600K ufs      0:16  0.00%  0.00% httpd
  516 u00022    -4    0 16808K  7728K ufs      0:16  0.00%  0.00% httpd
  498 u00022    -4    0 16320K  7144K ufs      0:15  0.00%  0.00% httpd
  476 u00022    -4    0 16500K  7276K ufs      0:15  0.00%  0.00% httpd
  515 u00022    -4    0 16216K  6424K ufs      0:14  0.00%  0.00% httpd
  798 u00181     4    0 10092K  5552K accept   0:14  0.00%  0.00% perl
1032 u00183    -4    0 12696K  6076K ufs      0:09  0.00%  0.00% httpd
1411 u00183    -4    0 12836K  6088K ufs      0:09  0.00%  0.00% httpd
1204 u00183    -4    0 14296K  7604K ufs      0:09  0.00%  0.00% httpd
  492 u00183    -4    0 13020K  6344K ufs      0:09  0.00%  0.00% httpd
1001 u00008     4    0  7360K  4944K accept   0:09  0.00%  0.00% perl


как бы теперь причину выяснить???


"Сервер под FreeBSD виснет"
Отправлено лфтефку , 02-Мрт-05 06:17 
ps auxw
в студию, пжлста. а то здесь не видно, кто умер не до конца.

"Сервер под FreeBSD виснет"
Отправлено Junky , 02-Мрт-05 14:09 
>ps auxw
>в студию, пжлста. а то здесь не видно, кто умер не до
>конца.


нет такой возможности - если топ висит в памяти и работает до последнего, то ps надо постоянно запускать, а сервак в определенный момент теряет такую возможность. у нас и так лог ps -auxw каждую минуту на диск сохраняется, так вот во время последнего сохранения перед зависанием там все ок по процессам...


"Сервер под FreeBSD виснет"
Отправлено bardak , 02-Мрт-05 07:12 
>Новая информация... похоже что и впрямь что-то с дисковой подситемой...
>top непосредственно перед зависоном:
>

Junky попробуй отключить поддержку UDMA переведи диски в PIO-режим, (atacontrol mode 0 PIO4 PIO4) может поможет.


"Сервер под FreeBSD виснет"
Отправлено butcher , 02-Мрт-05 08:31 
>как бы теперь причину выяснить???

Ещё один вопрос, как была установлена система? С какой версии было проведено обновление, и главное какой шедулер задан в ядре?


"Сервер под FreeBSD виснет"
Отправлено aliv , 02-Мрт-05 11:45 
Вообще была похожая проблема - вспомнил.
Зависал абсолютно не предсказуемо.
Намучался - жуть. Потом купил другой диск и перенес все на него.
Все стало нормально.

"Сервер под FreeBSD виснет"
Отправлено Junky , 02-Мрт-05 14:12 
>>как бы теперь причину выяснить???
>
>Ещё один вопрос, как была установлена система? С какой версии было проведено
>обновление, и главное какой шедулер задан в ядре?


была установлена 5.3... уже после этой проблемы попробовал обновить ядро до 5.4Realese или как там...

А что за шедулер в ядре, что это такое??


"Сервер под FreeBSD виснет"
Отправлено butcher , 02-Мрт-05 14:20 
>была установлена 5.3... уже после этой проблемы попробовал обновить ядро до 5.4Realese или как там...
>А что за шедулер в ядре, что это такое??

Планировщик.
# grep SHED путь/к/конфигу/ядра

Просто в списках рассылки видел - похожие проблемы были при использовании SHED_ULE. А так, вам в принципе можно слать PR, там уже посоветуют что вам сделать..