LINUX.ORG.RU
ФорумAdmin

Может ли перегрвер сервера/битое железо вызывать такие проблемы?


0

0

Есть сервер, и он постоянно (два раза в день) начинает жутко тупить, помогает только reboot.

Хронолоиня событий: Есть сервер (P4HT-2400MHz,512 RAM), который выполняет функции роуетра+биллинга: у него есть ряд внутренний внешних интерфейсов, с внешним миром связан по BGP (прием только default) с внутренней сетью по OSPF (около 50 сеток с двух других роуетров), сервер делает NAT, shaping (CBQ на внутреннем интерфейсе для индивидуального шейпинга, и TBF на IMQ интерфейсах для массового), фильтрует доступ в интернет (iptables, всего около 5000 правил, то они расписаны по кучи разных цепочкек, так что в среднем пакет проходит черер 100-200 правил), считает трафик (ipfm и ipaudit работают полность параллельно (для подстаходвки)), обробатывает трафик в базе mysql (база в данным момент около гига) и дает доступ к этим данным через web. вообщем задач много но последнии пару лет, он с этим спокойно справлялся. трафик через него 10-20 мегабит (в зависимости от времени суток и дня недели). ядро 2.4.22 c патчем IMQ. load average был 0.5-1.5 основные CPUжрущие процессы - считалка трафика.

Заходтелось немножко новых фишечек, и для этого было собрано ядро 2.4.32 (с kernel.org) + IMQ + pom (захотелось ipp2p, ipset, CLASSIFY, CONNMARK). Ядро было успешно собрано и запущено пару недель назад, и все нормально работало. (новые фишки пока не применялись)

В понедельник днем был заменен TBF на одном из IMQ интерфейсе (трафик до 9 мегабит), на HTB+SFQ (трафик разлелен на 3 очереди, и у кажой свой rate и ceil), все продолжило успешно работать до вечера (когда пощел оснавной трафик), и тут севрер начал торомзить: load average начал расти (до 5-10-15-20-25), считалки трафика жрали все достпное CPU, другие задачи начали тупить (mysql еле отвечал на примитивные запросы, страницы которые раньше генерились за секунду стали генерится минутами), сервер стал тупить к консоле, и на ping стал отвечать с задержками, трафик пропускать стал меньше обычного, пошли жалобы на дропанье сессий). Попытки реанимировать сервер без перезагруки не дали резульатата. (было перезружены все серверис какие только можно (mysql, httpd, считалки трафика, шейперы). В резульате сервер перегрузили, и все стало работать нормально.

Во вторник утром ситуация повторилась, сервер перегрузили, но уже без шейпера на IMQ устройство.

Во вторник вечером ситуация повторилась.

В среду утром ситуация опять повторилась, откатились на старое ядро. Тоесть систему полностью вернули в исходное состояние.

В среду вечером ситуация повторилась.

И сегодня утром ситация опять повторилась.

Обычно считалки трафика (они работают через libpcap) начинали жрать пространство, если в сети бродят вирусы которые массово сканять порты, или генерять левый трафик (spam,DOS и т.п.) и если этот трафик заблокировать (не на этом роутере а раньше) то все нормализировалось Начали анализировать трафик, поствили считалки в iptables первым правилом:

iptables -A counter -i eth1 -p tcp --dport 25 -m state --state NEW (eth1 - внутренний интерфейс)

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

Все идеи что это может быть кончились, осталось только одно подозрение: в серверной щас проблемы с охлажнением, и там реально жарко.

Вопрос: Как себя ведут сервера в жестких климатических условиях: нормально работают а потом сразу виснут, или сначала тупят? Как себя ведут сервера с битой памятью?

ЗЫ дополнительную память в сервер уже заказали, а для разделения задач на две машины тоже вопрос уже поднят, но это связано с огранзационными проблемами, так что произойдет это не в этом месяце.

Вау! Все бы так задавали вопросы :-)

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

memtest86 и/или memtester (http://pyropus.ca/software/memtester/)

и cpu при помощи cpuburn (http://freshmeat.net/projects/cpuburn/).

Valmont ★★★
()
Ответ на: комментарий от Rain

> В чем заключается тупление?

1. Очень долго отдает httpd страницы - жалуются те кто этим пользуется 2. поток трафика, который пропускает сервер через себя, процентов на 20 меньше нормы, и суда по графику медленно падает. 3. работать через ssh очень медленно, текст набираешь, через пару секунд он появляется. 4. сервер начинает плохо пинговаться. 5. трафико критичные сервисы (игры, радио, видео) перестают нормально работать.

Железо сейчас протестирую.

zhiltsov
() автор топика
Ответ на: комментарий от Rain

Тутит - в данном контексте рост загрузки CPU(с 0.5-1.5 аж до 24х) не обусловленый внешними причинами (ростом трафика или чем либо еще)

медленно но верно... вплоть до полных тормозов

anonymous
()
Ответ на: комментарий от zhiltsov

memtest86 долго проверяет, лучше бы ближе к вечеру...

Valmont ★★★
()

две маленькие машинки с мсбластом способны ПОЛОЖИТЬ не только какой-то там П4, но даже цыску 40хх

так что память не при чем, хотя конечно проверить стоит

anonymous
()
Ответ на: комментарий от Rain

memtester сказал что все OK (он захавал 255 метров, больше не смог, было занято полезными процессами) cpuburn тоже вроде нормально работает (видит в топе в самом верху, load average высокий, но система ведет себя абсолютно адекватно)

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

у нас же сервер не виснет (во всяком случае до этого мы не доходили, а специально перегружали его раньше :) )

В свое время (на других машинах) неоптимально настроенный iptables приводил к аналогичному туплению, и последующему зависанию, но там трафика было на порядок больше, и если успеть дать iptables -F, то система быстро приходила в нормальное состояние. И тогда это четко коррелировало с сетевой активностью. А сейчас мы специально гоняли трафик, 70 мегабит через него проходит (через firewall и NAT). - все нормально.

ЗЫ Будем ждать пока жара спадет, надеюсь это нас спасет.

zhiltsov
() автор топика
Ответ на: комментарий от anonymous

мсбласт режется до этого сервера, на свитчах. мы tcpdump -n -c 25 выхватывали трафик, ничего необычного пока не выявили, кроме того почтового флуда. Но суть в том, что когда флуд идет, сервер тупит, но не ложится, и самое главное, что он сам не возвращается в нормальное состояние, когда паразитный трафик ликвидируется.

zhiltsov
() автор топика
Ответ на: комментарий от sdio

У меня при перегреве проца(из-за сброшенных оборотов кулера), сервак(Celeron 1.7) кидало на перезагрузку. Перегрев можно выловить если запустить компиляцию программы (я запускал компиляцию xercess-c и через несколько минут сервак вылетал!). При аппаратных проблемах (мамка,БП) сервак тоже перезагружался (сам:). Но, никогда не тормозил!!!

SlavikSS ★★
()

>просто думал, что железо или работает или нет
Хоть и не самый богатый опыт по разному железу, но с каждым разом убеждаюсь, что _возможно_всё_!
(Один раз на реально пробитой памяти с NN-цатого раза удалось запустит-таки оффтопик. Но при этом он не все буквы и цифры выговаривал! Прикольно смотрелось.)

Про П4 слышал, что он от перегрева начинает специально такты пропускать. Может оно?

Помимо загрузки проца, посмотреть можно на память+своп. Если активно в последний лезет, то тоже подтормаживает.

anonymous
()
Ответ на: комментарий от sdio

procs memory swap io system cpu r b swpd free buff cache si so bi bo in cs us sy wa id 21 0 1008 12232 65312 305508 0 0 5 36 302 223 6 74 0 19 19 0 1008 12696 65312 305508 0 0 0 0 4800 508 2 97 0 0 22 0 1008 12164 65332 305524 0 0 0 144 6020 436 1 99 0 0 22 0 1008 11812 65332 305528 0 0 0 0 4578 424 3 97 0 0 23 0 1008 11444 65332 305528 0 0 0 0 4642 348 3 98 0 0 19 0 1008 10628 65356 305532 0 0 0 200 7294 1212 3 97 0 0 22 0 1008 8180 65356 305536 0 0 0 0 4601 868 3 97 0 0 22 0 1008 7664 65356 305604 0 0 0 0 5289 1322 3 97 0 0 23 0 1008 7880 65360 305608 0 0 0 60 6664 1432 2 98 0 0 21 0 1008 7824 65380 305612 0 0 0 340 5079 476 1 99 0 0 [root@xxx root]# uptime 22:58:34 up 11:05, 2 users, load average: 26.48, 23.10, 22.00

anonymous
()
Ответ на: комментарий от sdio

procs memory swap io system cpu<br> r b swpd free buff cache si so bi bo in cs us sy wa id<br> 21 0 1008 12232 65312 305508 0 0 5 36 302 223 6 74 0 19<br> 19 0 1008 12696 65312 305508 0 0 0 0 4800 508 2 97 0 0<br> 22 0 1008 12164 65332 305524 0 0 0 144 6020 436 1 99 0 0<br> 22 0 1008 11812 65332 305528 0 0 0 0 4578 424 3 97 0 0<br> 23 0 1008 11444 65332 305528 0 0 0 0 4642 348 3 98 0 0<br> 19 0 1008 10628 65356 305532 0 0 0 200 7294 1212 3 97 0 0<br> 22 0 1008 8180 65356 305536 0 0 0 0 4601 868 3 97 0 0<br> 22 0 1008 7664 65356 305604 0 0 0 0 5289 1322 3 97 0 0<br> 23 0 1008 7880 65360 305608 0 0 0 60 6664 1432 2 98 0 0<br> 21 0 1008 7824 65380 305612 0 0 0 340 5079 476 1 99 0 0<br> [root@xxx root]# uptime<br> 22:58:34 up 11:05, 2 users, load average: 26.48, 23.10, 22.00<br>

anonymous
()
Ответ на: комментарий от sdio

<pre>
procs                      memory      swap          io     system         cpu
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy wa id
21  0   1008  12232  65312 305508    0    0     5    36  302   223  6 74  0 19
19  0   1008  12696  65312 305508    0    0     0     0 4800   508  2 97  0  0
22  0   1008  12164  65332 305524    0    0     0   144 6020   436  1 99  0  0
22  0   1008  11812  65332 305528    0    0     0     0 4578   424  3 97  0  0
23  0   1008  11444  65332 305528    0    0     0     0 4642   348  3 98  0  0
19  0   1008  10628  65356 305532    0    0     0   200 7294  1212  3 97  0  0
22  0   1008   8180  65356 305536    0    0     0     0 4601   868  3 97  0  0
22  0   1008   7664  65356 305604    0    0     0     0 5289  1322  3 97  0  0
23  0   1008   7880  65360 305608    0    0     0    60 6664  1432  2 98  0  0
21  0   1008   7824  65380 305612    0    0     0   340 5079   476  1 99  0  0
[root@stremitelniy root]# uptime
 22:58:34  up 11:05,  2 users,  load average: 26.48, 23.10, 22.00
</pre>

altnik
()

В dmesg ничего нету? По моему опыту с переразгоном, битой памятью и херовым питанием, в dmesg появляется куча мусора типа такого:

Unable to handle kernel paging request at virtual address 00800014 printing eip: c0166ac2 *pde = 00000000 Oops: 0000 [#1] PREEMPT Modules linked in: CPU: 0 EIP: 0060:[<c0166ac2>] Not tainted VLI EFLAGS: 00210206 (2.6.15-gentoo-r5-server5) EIP is at prune_dcache+0x182/0x210 eax: 00800000 ebx: c3434bb8 ecx: c343450c edx: c3435b80 esi: c3435b68 edi: cfe9c000 ebp: 00000019 esp: cfe9debc ds: 007b es: 007b ss: 0068 Process kswapd0 (pid: 65, threadinfo=cfe9c000 task=cff10070) Stack: 00004e84 000000d0 00000087 cffeeb60 c0167019 00000080 00004e84 c013dea9 00000080 000000d0 00000000 000000d0 0000da13 0013a100 00000000 00004e84 00000017 00000000 00000000 c02ddce0 00000001 c02dda80 0000000b c013f36b Call Trace: [<c0167019>] shrink_dcache_memory+0x19/0x40 [<c013dea9>] shrink_slab+0x179/0x1d0 [<c013f36b>] balance_pgdat+0x29b/0x390 [<c013f546>] kswapd+0xe6/0x100 [<c0129c80>] autoremove_wake_function+0x0/0x40 [<c01029d6>] ret_from_fork+0x6/0x20 [<c0129c80>] autoremove_wake_function+0x0/0x40 [<c013f460>] kswapd+0x0/0x100 [<c0100ee5>] kernel_thread_helper+0x5/0x10 Code: 3c 8b 47 14 48 89 47 14 8b 47 08 a8 08 75 75 8b 47 14 48 89 47 14 8b 47 08 a8 08 75 60 8b 46 2c 85 c0 74 3e 8b 43 48 85 c0 74 07 <8b> 40 14 85 c0 75 28 56 e8 d1 2d 00 00 58 8b 73 14 53 e8 77 f8

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

Пример реальный, взят с реального сервера, который последние дни глючит. То ли из-за жары, то ли еще из-за чего...

AngryElf ★★★★★
()

Блин, форматирование...


Unable to handle kernel paging request at virtual address 00800014
 printing eip:
c0166ac2
*pde = 00000000
Oops: 0000 [#1]
PREEMPT 
Modules linked in:
CPU:    0
EIP:    0060:[<c0166ac2>]    Not tainted VLI
EFLAGS: 00210206   (2.6.15-gentoo-r5-server5) 
EIP is at prune_dcache+0x182/0x210
eax: 00800000   ebx: c3434bb8   ecx: c343450c   edx: c3435b80
esi: c3435b68   edi: cfe9c000   ebp: 00000019   esp: cfe9debc
ds: 007b   es: 007b   ss: 0068
Process kswapd0 (pid: 65, threadinfo=cfe9c000 task=cff10070)
Stack: 00004e84 000000d0 00000087 cffeeb60 c0167019 00000080 00004e84 c013dea9 
       00000080 000000d0 00000000 000000d0 0000da13 0013a100 00000000 00004e84 
       00000017 00000000 00000000 c02ddce0 00000001 c02dda80 0000000b c013f36b 
Call Trace:
 [<c0167019>] shrink_dcache_memory+0x19/0x40
 [<c013dea9>] shrink_slab+0x179/0x1d0
 [<c013f36b>] balance_pgdat+0x29b/0x390
 [<c013f546>] kswapd+0xe6/0x100
 [<c0129c80>] autoremove_wake_function+0x0/0x40
 [<c01029d6>] ret_from_fork+0x6/0x20
 [<c0129c80>] autoremove_wake_function+0x0/0x40
 [<c013f460>] kswapd+0x0/0x100
 [<c0100ee5>] kernel_thread_helper+0x5/0x10
Code: 3c 8b 47 14 48 89 47 14 8b 47 08 a8 08 75 75 8b 47 14 48 89 47 14 8b 47 08 a8 08 75 60 8b 46 2c 85 c0 74 3e 8b 43 48 85 c0 74 07 <8b> 40 14 85 c0 75 28 56 e8 d1 2d 00 00 58 8b 73 14 53 e8 77 f8 



AngryElf ★★★★★
()

да, кстати! иногда mysql может забодать машину в минуса, причем во время тупого простоя, ничего не делая. такое наблюдается после того как база разбухнет до определенного уровня (довольно небольшого, примерно 400-500 мег)

попробуй отключить эту холеру и поглядеть за сервером

anonymous
()
Ответ на: комментарий от AngryElf

У меня такой мусор был именно из-за битой памяти. Упсы всякие, редко, но иногда и паники...

Valmont ★★★
()
Ответ на: комментарий от AngryElf

В dmesg ничего криминального нету.

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

zhiltsov
() автор топика
Ответ на: комментарий от zhiltsov

Недавно столкнулся с неприятностью одной. На мелкой базе (мегов до 50), с приличным трафиком мегов 10-20 в секунду (select'ы) mysql ушел в своп, отожрав с гигабайт памяти (при 256 оперативки). Сайты, юзающие mysql дико тормозили. Перезагрузил mysql - всё пришло в норму на некоторое время.

AngryElf ★★★★★
()
Ответ на: комментарий от altnik

Судя по столбцу sy проблема в kernel+железо и никак не в жрущих память программах, т.к. wa на нуле.

sdio ★★★★★
()

На Intel была "картина маслом" комп через 30-45 мин начинает работать на уровне P2-233, хотя железо P4-2.6, туда сюда , открыли корпус, а вентёллер стоит, на проце за 70 C, но падло работает. Хотя лучше бы встал. Так что вполне реально, надо отследить термо режим в корпусе и на проце.

RigoN
()
Ответ на: комментарий от RigoN

Спцы млин. Гадаете на кофейной гуще.
Intel Termal Throttling - снижение частоты процессора при превышении температуры. Intel'овский проц может работать без кулера на уровне первого примерно. При росте нагрузки проц греется сильнее и включается троттлинг, раньше снижения хватало для возвращения на нормальную частоту, но теперь т.к. стало жарко проц не может вернуться в нормальный режим работы.
Сделайте должное охлаждение. И хватит гадать, линукс не покажет настоящую частоту процессора.
И есчё: есдинственная прога, которая показывает троттлица ли процессор есть под виндовс и есть у thg.

Gordon01 ★★
()
Ответ на: комментарий от Gordon01

Мысли кончались окончательно, проблема осталась:

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

На старой оставили mysql+http+логику биллинга.
На новую железку (AMD64 3200+, гиг оперативки) оставили только роутинговые задачи (NAT,BGP,OSPF,shaper).

В вечеру вчерашнего дня закончали перенос, и запустили все в боемом режиме на двух серверах. В резульатате на старом свободно 99% CPU, что логично, ибо база простая, веб-мордой пользуется очень мало народу, все скритпы простые. На новом тоже тишина и покой: считалки судя по top жрут около 5 процентов (все вместе).
Сегодня к вечеру новый сервер начал вести себя абсолютно так-же как старый. На новом сервер софт весь поставлен заного, железо новое, ядро 2.6.16.18+IMQ

Вывод: проблема не в железе старого сервера,а в том что сервер не справляется с трафиком проходящим через него, при этом характер трафика не должен был измениться.
Новый сервер был "вырван" из сети, где он роутил до 200Mb трафика, правда без шейперов, NAT и т.п, но c CONNTRACK + первым правилом iptables был -m state --state ESTABLISHED,RELATED -j ACCEPT. И работал абсолютно без нареканий.

Чтобы продожить изучения проблемы хотелбы спросить:

1. Что в top означает:
Cpu0 : 5.4% us, 3.6% sy, 0.0% ni, 55.4% id, 0.0% wa, 1.8% hi, 33.9% si
А именно "si"

2. Можно ли как-нибудь собрать статистику как проходят правила через FIREWALL, хотелось бы в получить гистограмму распределения трафика по кол-ву правил которые оно проходет перед тем как сделать ACCEPT или REJECT













zhiltsov
() автор топика

ЧУДЕС НЕ БЫВАЕТ!!!!!!!!!

Все проблема ликвидирована: проблема была в кривых моих руках.

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

В них и оказалась проблема: из-за ошибки в скрипте, раз в 15 минут, кол-во правил в одной из цепочек увеличивалось на 200 правил (-j MARK). Соответсвенно через пол дня из там становилось 20000, и каждый пакет (при потоке 5000 пакетов в секунду) проходил через эти правила. В результате получалось то что получалось.

zhiltsov
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.