Виснет сервер HP, помогите поставить диагноз
stailer 19 октября, 2010 - 10:00
Переодически (1-2 в сутки), при непонятных обстоятельствах, виснет сервер.
Виснет не намертво, консоль доступна, но не всё выполняется. Например rc-status виснет (при запуске подвешивает терминал), с bash-скрипами такая же история. Демоны не реагируют ни на что (даже на kill). htop показывает полную загрузку памяти, но при этом своп полностью свободен.
На сервере крутятся mysql, nginx, php(fcgi), zabbix.
/var/log/message
»
- Для комментирования войдите или зарегистрируйтесь
Осторожно, по пруфу мегабайты
Осторожно, по пруфу мегабайты логов ( а конкретно 102205 строк О_О)- - ТС решил что много не мало ?
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
проблемы с файловой системой
проблемы с файловой системой и\или наличием свободного места в разделе(ах) ?
что-то добрый я сегодня ....
Filesystem Size
Filesystem Size Used Avail Use% Mounted on
/dev/cciss/c0d0p1 2.0G 164M 1.9G 9% /
udev 10M 200K 9.9M 2% /dev
/dev/cciss/c0d0p5 1012M 1.3M 960M 1% /tmp
/dev/cciss/c0d0p6 20G 3.3G 17G 17% /usr
/dev/cciss/c0d0p7 110G 44M 110G 1% /home
/dev/cciss/c0d1p1 137G 35G 102G 26% /var
/tmp - ext2
остальные xfs
Проблемма возникает только когда запущены все нужные демоны.
Когда mysql, php, nginx и zabbix не запущены сервак работает как часы.
Смею предположить, что
Смею предположить, что проблема не в работе оборудования/системы, как таковой. Проблема, скорей всего, в связке nginx+mysql. Можно увидеть ФРАГМЕНТЫ логов error.log для mysql и nginx ?
а заодно уж и их конфиги....
/etc/nginx/nginx.conf/var/lo
В этот раз не такие большие =)
/etc/nginx/nginx.conf
/var/log/nginx/error_log
/etc/mysql/my.cnf
/var/log/mysql/mysqld.err
так это и понятно ,
так это и понятно , что
но, на мой взгляд, /tmp мало место выделено, если сервер работает под нагрузкой
ключевая фраза
это случается когда
- нет места на диске
- нет места в памяти
- открыто слишком много дескрипторов
- зависание файловой системы
- (и\или) корень /, /tmp, /var, /dev, /proc в результате сбоя перемонтированы в режиме "только чтение"
ключевая фраза
наводит на мысль, что своп
не размечен \ не подключен \ не работает
возможно, что память забита на 101% и не удается запустить новый процесс (в том числе и kill)
свободное место на диске надо смотреть в момент "зависания"
например и у меня в связке havp+clamav в /tmp такая туева куча файловых дескрипторов, что mc впадает в ступор минут на 10-15 при попытке войти в директорию
после перезагрузки - естественно всё ддевственно чисто ;)
ps
попробуйте сделать симлинк /tmp в /var/tmp - будет ли наблюдаться "зависание" ?
что-то добрый я сегодня ....
В момент зависания: radom ~ #
В момент зависания:
Свежие (короткие) логи:
/var/log/messages
/var/log/nginx/error_log
/var/log/mysql/mysqld.err
Я проводил тест с помощью app-benchmarks/stress-1.0.1
В течении часа загрузка на все процы была 100%, на память 100%, свап %98~%99 (при 100% stress вырубался).
Во время теста сервак вёл себя пристойно. Никаких признаков зависания небыло.
Так же проверил память memtest'ом, там всё в порядке.
Это забыл посмотреть. Буду ждать следующего зависания.
зависания происходят под
зависания происходят под реальной нагрузкой или только на stress'е ?
может 4G свопа маловато будет? сколько оперативной?
я как-то проверял -2гб свопа хватило на ~1100 открытых вкладок оперы
сколько у вас макс. коннектов в пик нагрузки?
что-то добрый я сегодня ....
leryc написал(а): зависания
Зависания происходят только под реальной нагрузкой.
Памяти 4Gb.
Примерно 20000 проверок в минуту по ICMP и SNMP.
Пиков как таковых нет, так как забикс распределяет все проверки.
По HTTP 2-3 клиета, у которых страница с состоянием тригеров обновляется раз в минуту.
Наблюдаю сегодня за серваком весь день:
1 - мускул отжирает примерно 60% памяти, и больше не растёт.
2 - свап практически не используется (150~180 Mb).
htop показывает полную
Что с софтирками и памятью ядра? в часности сколько сжирает сетевая, какие сетевеые карты ?
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
slepnoga написал(а): Что с
Как это можно посмотреть?
4 штуки Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
Работает только одна.
из вашего messages из первого
из вашего messages из первого поста, пояснили бы что за нагрузка-то такая в 20000 обращений в минуту
а зачем nginx было ставить
а зачем nginx было ставить если
?
это ~300-400 в сек
информация об этом вносится мускул?
и вообще - кто грузит\напрягает мускул и какими запросами?
судя по двум предыдущим постам - мускул "зашивался"....
почему?
ну и как вариант - сетевуха не справляется с нагрузкой?
и еще - похоже у вас bind запущен - может выделить ему побольше памяти под кэш? это в свою очередь немного разгрузит сетевуху.
с забиксом не работал - его слабых мест не знаю...
а так - нужно ждать (не провоцируя) очередного зависания...
что-то добрый я сегодня ....
leryc написал(а): а зачем
Ставить ради 2х - 3х клиентов апач было както не разумно, поэтому выбирал из nginx и lighttpd.
Не помню по какой причине, но выбор остановился на nginx.
Информация о каждой проверке вносится в мускул. Забикс какраз и грузит его.
Запросы должны быть не сложные, простая выборка/вставка, без регулярных вырожений.
Какими именно запросами сказать не могу, так как не сам забикс писал =)
Как это посмотреть можно?
bind не стоит. DNS'ка отдельно крутится на другой машине.
Долго ждать не пришлось
ps ax -o pid,ppid,cputime,pcpu,pmem,vsz,rss,args
пока далеко не улетело - еще
пока далеко не улетело - еще раз mysql.err покажите
что-то добрый я сегодня ....
/var/log/mysql/mysqld.err
/var/log/mysql/mysqld.err
не в тему , но если там
не в тему , но если там только lamp и заббикс - то в ядре много лишнего
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
я согласен со slepnoga, что
я согласен со slepnoga, что много лишнего для такого сервака.....
посмотреть ifconfig (для начала) на предмет err\bad пакетов .....
разбираться почему падает мускул....
путей тут много...
- уменьшение времени на lock на файлы
- увеличение буферов
- оптимизировать кол-во забикс-процессов и таймауты обработки
спросить у гугла нечто "оптимизация скорости обработки тюнинг мускул mysql тонкая настройка" .....
с год назад попадалась хорошая статья - но там всё так заумно про настройку внутренностей, что я отложил на "потом" ибо до таких нагрузок пока не дорос...
попадалось замечание, что INNODB не дружит со скорострельностью.....
гугление по теме заббикс позволило подсмотреть один из "типовых" запросов в базу - а там оператор JOIN, что естественно создает нагрузку на внутренности мускула....
может имеет смысл перейти на postgresql ?
зы.
- пройтись фильтром по файлам\директории заббикса и посмотреть хоть пару строк с INSERT
- у мускула, кажется, есть дебуг-левел, когда пишутся все запросы в лог
поймать бы ту строку, что крэшит таблицу...
что-то добрый я сегодня ....
Если включить binarylog то
Если включить binarylog то это только ускорит очередной сбой сервера т.к. заббикс довольно сильно напрягает mysql - а тут еще и на диск начнем писать все запросы в файл.
с чего вы взяли что какая то табличка крашится?
я вижу в ps 8 worker от nginx. зачем?
Добавлю.
Только сейчас увидел что пишется у вас уже binarylog. а зачем?
Еще добавлю вопрос,
почему так много процессов phpfpm? ведь много подъедают у вас ресурсов то они.
Мне кажется имеет смысл отказаться от использования php-fpm, а использовать apache.
Мне кажется имеет смысл
+ много. запуск пхп через php-fpm не оправдан ничем, кроме желания увеличить нагрузку на сервак в данном случае
INNODB и скорость - это понятия из разных галактик
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
:)
Попробовать так в /etc/sysctl.conf