Примерно один - два раза в сутки виснет сервак под 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ядро не пересобирал.
Что тут еще можно сделать? В чем возможная причина? Очень прошу помочь любым советом. Заранее благодарен.
как можно на таком серваке оставить дефолтовое ядро???
в принципе конечно работать будет, но как???
я в принципе даже забыл, что существует ядро "по-умолчанию" - ВСЕГДА только своё.ipfw? оно там есть? тогда ipfw show -de... (или как там в 5.3 - под рукой нет)
>как можно на таком серваке оставить дефолтовое ядро???
>в принципе конечно работать будет, но как???
>я в принципе даже забыл, что существует ядро "по-умолчанию" - ВСЕГДА только
>своё.
>
>ipfw? оно там есть? тогда ipfw show -de... (или как там в
>5.3 - под рукой нет)
Согласен. Ядро Generic имеет все возможные драйвера и всякого хлама. Собрать под себя ядро думаю надо.
Потом я не спец в апаче, но по моему не надо держать 10 шт. Существует методика виртуального хостинга, позволяющая иметь 10 сайтов на одном апаче и одном ip адресе.
>>как можно на таком серваке оставить дефолтовое ядро???
>>в принципе конечно работать будет, но как???
>>я в принципе даже забыл, что существует ядро "по-умолчанию" - ВСЕГДА только
>>своё.
>>
>>ipfw? оно там есть? тогда ipfw show -de... (или как там в
>>5.3 - под рукой нет)
>
>
>Согласен. Ядро Generic имеет все возможные драйвера и всякого хлама. Собрать под
>себя ядро думаю надо.
>Потом я не спец в апаче, но по моему не надо держать
>10 шт. Существует методика виртуального хостинга, позволяющая иметь 10 сайтов на
>одном апаче и одном ip адресе.
Собрал, все равно завис...Апачей можно запустить хоть сколько, главное чтоб они на непересекающихся портах или айпишниках работали. К тому же опыт такой схемы под линуксом показал хорошие результаты...
Виртуальные сервера тут по определенным причинам не подходят...
>как можно на таком серваке оставить дефолтовое ядро???
>в принципе конечно работать будет, но как???
>я в принципе даже забыл, что существует ядро "по-умолчанию" - ВСЕГДА только
>своё.
>
>ipfw? оно там есть? тогда ipfw show -de... (или как там в
>5.3 - под рукой нет)
Честно говоря в FreeBSD я совсем новичок, поэтому предположил, что ядро пересобирать не обязательно, учитывая что оно имеет модульную конструкцию, и впринципе многие модули и так выключены, а все что наоборот нужно можно включит через /boot/loader.conf или sysctl...Сегодня ночью все-таки обновил и пересобрал ядро. Теперь стоит 5.4RC-2... И вот только что сервак снова повис...
ipfw есть, он закрывает все ненужные порты и ограничивает кол-во коннектов к апачу...
>Сегодня ночью все-таки обновил и пересобрал ядро. Теперь стоит 5.4RC-2... И вот
>только что сервак снова повис...прогнал... ядро щас стоит 5.4-PRERELEASE.
>не обязательно, учитывая что оно имеет модульную конструкцию, и впринципе многие
>модули и так выключены, а все что наоборот нужно можно включит
>через /boot/loader.conf или sysctl...Ядро нужно пересобирать, ИМХО, по следующим причинам:
1) устранение возможных конфликтов различных драйверов (ИМХО - главная);
2) определённый тюнинг существующих драйверов;
3) более быстрая загрузка системы;
4) уменьшение размера ядра;
...>Сегодня ночью все-таки обновил и пересобрал ядро. Теперь стоит 5.4RC-2... И вот
>только что сервак снова повис...Если в лог ничего не валится, то хотябы на консоли есть что-нибудь? Клавиатура жива (capsLock. NumLock реагируют)? Или возможности посмотреть нет?
Обычно если система вот так запросто виснет и не оставляет никаких следов говорит о проблемах с железом. Что конкретно, зависит от конфиги, попробуйте собрать больше информации о железе и по архивам списков рассылки FreeBSD поищите, возможно были какие-то проблемы с аналогичным железом.
Я бы в первую очередь посмотрел на память и дисковые/рэйд контроллеры, попробовал бы что-то поменять потестить.По системе: отключите все что вам точно не нужно - выкиньте из ядра лишние драйвера, отключите ненужные сервисы.
>Если в лог ничего не валится, то хотябы на консоли есть что-нибудь?
>Клавиатура жива (capsLock. NumLock реагируют)? Или возможности посмотреть нет?Сервак уделаенный... Вроде как на клаву реагирует, но не логинется при этом... так сказали те что его пререгружает...
>
>Обычно если система вот так запросто виснет и не оставляет никаких следов
>говорит о проблемах с железом. Что конкретно, зависит от конфиги, попробуйтеВиснет он по странному... Пинговаться же продолжает...
>собрать больше информации о железе и по архивам списков рассылки FreeBSD
>поищите, возможно были какие-то проблемы с аналогичным железом.
>Я бы в первую очередь посмотрел на память и дисковые/рэйд контроллеры, попробовал
>бы что-то поменять потестить.
>
>По системе: отключите все что вам точно не нужно - выкиньте из
>ядра лишние драйвера, отключите ненужные сервисы.Ненужные сервисы мало того что отключены, так еще и на нужные ограничения некоторые наложены...
Ядро пересобрал, пострарался отключить то, что явно проблем с загрузкой не вызовет - сервак удаленный, эксперементировать опасно, а в freebsd я новичок, многих тонкостей не знаю пока...По железу попробую инфу собрать и поискать... но чувствуя я, что придется 4.11 ставить туда... очень не хочется, но все к этому идет :(
>Сервак уделаенный... Вроде как на клаву реагирует, но не логинется при этом...
>так сказали те что его пререгружает...Понятно. Вероятно что-то с дисковой подсистемой ввода/вывода, происходит блокирока при операции ввода/вывода?..
Пусть те, кто его перегружают попробуют запустить top на одной из консолей, и потом когда зависнет скажут в каких состояних(столбец STATE) находятся процессы.
>>Сервак уделаенный... Вроде как на клаву реагирует, но не логинется при этом...
>>так сказали те что его пререгружает...
>
>Понятно. Вероятно что-то с дисковой подсистемой ввода/вывода, происходит блокирока при операции ввода/вывода?..
>
>Пусть те, кто его перегружают попробуют запустить 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 sleepingMem: 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и т.д....
наврал, последний вот этот был (надеюсь за флуд ругать не будут? :)) ):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 zombieMem: 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 не работает?
конфигурация такая:
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 5.3.
>Зависоны происходят как правило днем, когда нагрузка возрастает.
<--skip-->
>Что тут еще можно сделать? В чем возможная причина? Очень прошу помочь
>любым советом. Заранее благодарен.есть мнение - железо. подобные симптомы наблюдались на моем веб-сервере. замена винтов (WD -> IBM) и адаптера (Adaptek -> IBM) решила проблему.
правда, давно это было.
Согласен. Железо, скорее всего - винты.
>Согласен. Железо, скорее всего - винты.
А что может быть не так с винтами? Речь ведь идет не о поверхности винтов, это было бы видно...
Как это можно отследить, удаленно? Может какой-нибудь debug режим включить где-то?
net.inet.udp.blackhole: 1
net.inet.tcp.blackhole: 2
верни в 0 и посмотри что будет.
А что происходит с умолчальными значениями(все значения, а не только эти)?
У меня что-то подобное было и кажется при верхних параметрах...(давно это было...)
Новая информация... похоже что и впрямь что-то с дисковой подситемой...
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% InusePID 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
как бы теперь причину выяснить???
ps auxw
в студию, пжлста. а то здесь не видно, кто умер не до конца.
>ps auxw
>в студию, пжлста. а то здесь не видно, кто умер не до
>конца.
нет такой возможности - если топ висит в памяти и работает до последнего, то ps надо постоянно запускать, а сервак в определенный момент теряет такую возможность. у нас и так лог ps -auxw каждую минуту на диск сохраняется, так вот во время последнего сохранения перед зависанием там все ок по процессам...
>Новая информация... похоже что и впрямь что-то с дисковой подситемой...
>top непосредственно перед зависоном:
>Junky попробуй отключить поддержку UDMA переведи диски в PIO-режим, (atacontrol mode 0 PIO4 PIO4) может поможет.
>как бы теперь причину выяснить???Ещё один вопрос, как была установлена система? С какой версии было проведено обновление, и главное какой шедулер задан в ядре?
Вообще была похожая проблема - вспомнил.
Зависал абсолютно не предсказуемо.
Намучался - жуть. Потом купил другой диск и перенес все на него.
Все стало нормально.
>>как бы теперь причину выяснить???
>
>Ещё один вопрос, как была установлена система? С какой версии было проведено
>обновление, и главное какой шедулер задан в ядре?
была установлена 5.3... уже после этой проблемы попробовал обновить ядро до 5.4Realese или как там...А что за шедулер в ядре, что это такое??
>была установлена 5.3... уже после этой проблемы попробовал обновить ядро до 5.4Realese или как там...
>А что за шедулер в ядре, что это такое??Планировщик.
# grep SHED путь/к/конфигу/ядраПросто в списках рассылки видел - похожие проблемы были при использовании SHED_ULE. А так, вам в принципе можно слать PR, там уже посоветуют что вам сделать..