LINUX.ORG.RU

Как сервер «подыхает» под нагрузкой?

 , , ,


0

1

Здравствуйте!

Имеется сервер c mysql/apache. И я бы отправил этот вопрос в web-development, если бы пользователи сидели за браузером, но они - за телеприставкой. Да и не в вебе суть.

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

Ключевое слово - «некоторые». Вопрос в том - как такое возможно? Я всегда считал, что если сервер начинает проблемы с загрузкой, то их имеют все пользователи по чу-чуть, а тут некоторые имеют много проблем, а другие не имеют их вовсе. При этом в логах никаких ошибок. Хотя при тестовой стресс-загрузке сервера «Too many connections» к mysql сыпятся только в путь.

Mysql недавно был обновлён до 5.5 и переведён на InnoDB чтобы использовать все ядра, но это никак не помогло. Так как на самом деле должны выглядеть симптомы перегрузки сервера? И если они должны выглядеть как я себе представляю, то почему могут быть проблемы вроде тех что я имею?

★★★★★

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

Хз что у тебя за железо, но если ты умудрился поставить раком мускуль то скорее всего нужно чинить sql запросы.

ya-betmen ★★★★★
()

купи хост подороже, исправь быдлокод в сайте, найми нормального DBA.

darkenshvein ★★★★★
()

нагрузка на ядра процессора превышает 100%

начинают иметь проблемы

логично.

Ключевое слово - «некоторые». Вопрос в том - как такое возможно?

представь очередь у пивного ларька. ВНЕЗАПНО пиво кончается.

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

т.е. ты считал, что ядро ОС выдаёт каждому процессу по 100 команд, а потом его насильно вырубает? Это так, но только в самом примитивном приближении. К тому же, ядро ОС при этом не запускает новые процессы.

Хотя при тестовой стресс-загрузке сервера «Too many connections» к mysql сыпятся только в путь.

ресурсы разные бывают. Загрузка CPU это один ресурс, коннекты к СУБД совсем другой. Есть ещё память, дисковый IO, коннекты из сети. Даже число процессов и портов ограничено(клиент всегда долбится на 80й порт, но сам принимает соединение с рандомного порта, а их всего 65536, из них часть уже занята).

Синтетика (стресс тест) тем и плоха, что жрёт не те ресурсы, что IRL.

emulek
()
Ответ на: комментарий от ya-betmen

но если ты умудрился поставить раком мускуль

[ванга мод]не. Он поставил раком планировщик процессов, который заталкивает в два ядра CPU Over9000 потоков говнокода на пхп[/ванга мод]

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

Ну мне показалось что человек способный слепить сайт на пхп+мускуль должен знать как определить какой процесс грузит цпу.

Mysql недавно был обновлён до 5.5 и переведён на InnoDB чтобы использовать все ядра, но это никак не помогло

ya-betmen ★★★★★
()

nginx + тюнинг мускула/приложения.

xtraeft ★★☆☆
()

Поясню две вещи. Процессор имеет восемь ядер. Поэтому нагрузка <200% это даже не четверть.

Второе, клиенты, они не как обычные люди за пивом стоят - один раз им налили и они ушли домой довольные. А глушит они пиво как ненасытные. Им налили так они через 30 секунд ещё пришли. А процесс после того как пиво налили таки да умирает. Так почему одному пиво постоянно не доливают, а другим всегда достается сполна?

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

Так почему одному пиво постоянно не доливают, а другим всегда достается сполна?

А цифры где? Мешки не ворочать мы все умеем.

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

У меня нет статистики, потому что с сервера я не вижу тех кому не долили. С сервера я вижу что всем доливают полностью. Также вижу что ни одно ядро не используется даже на половину и памяти ещё предостаточно.

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

Поэтому нагрузка <200% это даже не четверть.

Дай-ка угадаю. Слишком долгие транзакции к БД?

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

Давай переведу на формальный язык, ты утверждаешь что перцентиль задержек (достаточно большой > 50), остается постоянным, в не зависимости от нагрузок.

Я же говорю, что это полная чушь и покажи цифры. Нет мониторинга? Нет проблем!

bj
()

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

Поэтому нагрузка <200% это даже не четверть.

Смотри так же на дисковую нагрузку, сетевой траффик. Сервер не процом един.

vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 1)

некоторые пользователи сервиса начинают иметь проблемы

Всегда одни и те-же?

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