Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тормозит сервер 
:(
    Опции темы
mcTep
Дата 1.9.2011, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 25.2.2009

Репутация: нет
Всего: 6



Добрый день. Начал временами тормозить сервер. 
CentOS, Apache 2.2.3, PHP 5.2.9, mySQL 5.0.45, не рейд.

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

Сейчас же временами начинает тормозить, как при выдаче статики, так и при выполнении скриптов. 
Запросов к БД больше секунды не наблюдается (судя по включенному log-slow-queries), хотя бывает в "show processlist;" висят процессы с описанием NULL, но я так думаю, что это незакрытые соединения на время выполнения скриптов. Иногда даже phpinfo() выполняется по несколько минут, медленно выдавая контент. 
Т.е. задержки в получении, ожидании и соединении у любого запроса.

"top" временами показывает практически полную загрузку процессора на "mysqld". Причем, иногда, когда страница "висит", никаких процессов не наблюдается. Связи между какими-либо запросами и тормозами обнаружить не удалось. DDOS исключен.

При частых запросах hdparm выдает:
Timing cached reads: 1812 MB in 2.00 seconds = 906.29 MB/sec
Timing buffered disk reads: 86 MB in 3.57 seconds = 24.07 MB/sec

При отсутствии запросов:
Timing cached reads: 1948 MB in 2.00 seconds = 974.33 MB/sec
Timing buffered disk reads: 196 MB in 3.02 seconds = 65.00 MB/sec (иногда > 90 МВ)

Появилось это случайно, само по себе.

Подозрений много и на все. Даже не знаю как локализовать проблему. Спасибо.

PM MAIL   Вверх
1000000dollars
Дата 1.9.2011, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 6.10.2007

Репутация: 2
Всего: 8



А если таблички в базе пожать?
PM MAIL   Вверх
mcTep
Дата 1.9.2011, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 25.2.2009

Репутация: нет
Всего: 6



делал myisamchk -evi 
не помогло.
Кстати иногда при оооочень долгой загрузке страницы выдает mysql has gone away
PM MAIL   Вверх
Wolf1994
Дата 2.9.2011, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 3
Всего: 29



Если Apache отдаёт статичные файлы и ограничено количество одновременно работающих процессов, то при небольшой посещаемости сайта к нему могут быть сделаны множество запросов (картинки, js, css) и большая их часть повиснет в ожидании свободного процесса. Лимит очереди определяется этой директивой. Если очередь большая - сайт висит, хотя процессы загружены минимально, так как статика не даёт большой нагрузки. Если лимит уменьшить - зависания исчезнут и в таких случаях будет сразу выдаваться сообщение о временной недоступности.

Если описанное предположение верное, то поможет установка дополнительного сервера для статического контента.
PM MAIL WWW   Вверх
1000000dollars
Дата 2.9.2011, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 6.10.2007

Репутация: 2
Всего: 8



mcTep,  myisamchk -evi  делает  расширенную проверку, и не более того. Как насчёт попробовать сделать OPTIMIZE TABLE?


Wolf1994, а почему при этом мускуль напрягается как электричество?
PM MAIL   Вверх
Wolf1994
Дата 2.9.2011, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 3
Всего: 29



1000000dollars, возможно, из-за большого значения ServerLimit - процессы httpd "съедают" всю память, включается swap и это отражается на обычно самом ресурсоёмком процессе - mysqld.
PM MAIL WWW   Вверх
mcTep
Дата 2.9.2011, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 25.2.2009

Репутация: нет
Всего: 6



1000000dollars, сделал оптимизацию, не особо помогло. Нагрузки иногда достигают 90%.


Wolf1994, ну я думал nginx поднять, но это наверное на новом сервере сделаю. Текущему серверу уже года 4 наверное и тариф у хостера устарел. Хотелось бы узнать почему сайт неожиданно тормозить стал.

Добавлено через 5 минут и 41 секунду
Мне кажется, что все таки дело в БД. Код написан безжалостно по отношению к БД (очень-очень-очень много повторяющихся запросов в циклах и прочего ужаса). Мне кажется, что все скрипты тормозят и ждут пока выполнятся все запросы к БД. Потому тормозит phpinfo и статика. Я уже и кеш в два раза увеличил.
Можно ли еще както увеличить скорость работы мускуля без переустановки чего-либо?

Добавлено через 6 минут и 46 секунд
Wolf1994, свап пустой

Добавлено через 7 минут и 21 секунду
Wolf1994, вообще оперативы много свбодной

Добавлено через 12 минут и 52 секунды
Может попробовать увеличить? При открытии главной страницы выполняется примерно 100 запросов smile

Код

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

PM MAIL   Вверх
Wolf1994
Дата 2.9.2011, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 3
Всего: 29



httpd занимает 10-13 Мб (могу ошибаться), лимит в 256 позволяет занять: 256*10=2,5 Гб памяти. Если памяти больше, то проблема не в этом.

Цитата(mcTep @  2.9.2011,  12:22 Найти цитируемый пост)
MaxSpareServers   20


Не очень хороший параметр для 100 процессов на одну страницу - означает, что одновременно могут ожидать обращения не более 20 процессов, если требуется больше - они запускаются заново. Запуск каждого нового процесса потребляет ресурсы и делает лишним:

Цитата(mcTep @  2.9.2011,  12:22 Найти цитируемый пост)
MaxRequestsPerChild  4000


- при таком количестве часто завершаемых и запускаемых процессов время жизни httpd в 4000 обращений почти не имеет значения.
PM MAIL WWW   Вверх
Wolf1994
Дата 2.9.2011, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 3
Всего: 29



Цитата(mcTep @  2.9.2011,  12:22 Найти цитируемый пост)
При открытии главной страницы выполняется примерно 100 запросов 


Проверьте директивы KeepAlive и KeepAliveTimeout, с их помощью можно снизить количество запросов для одной страницы до минимума.
PM MAIL WWW   Вверх
mcTep
Дата 2.9.2011, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 25.2.2009

Репутация: нет
Всего: 6



Включил KeepAlive. Вроде как по-шустрее. Но все равно скрипты долго выполняются. И мускуль, бывает, жрет процессор.
Подождем пика активности. 

Это сообщение отредактировал(а) mcTep - 2.9.2011, 13:59
PM MAIL   Вверх
Сумасшедший
Дата 3.9.2011, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чилавек-Каропка
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 15.8.2004
Где: Москва

Репутация: 13
Всего: 107



Нагрузка на диски высокая?


--------------------
Однажды ты спросишь, а я отвечу: "Время ожидания специалиста - 10 минут". Ты бросишь трубку, так и не узнав, что Ваш звонок очень важен для нас!
PM MAIL WWW Jabber   Вверх
mcTep
Дата 3.9.2011, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 25.2.2009

Репутация: нет
Всего: 6



Сумасшедший, как проверить нагрузку?
PM MAIL   Вверх
Сумасшедший
Дата 3.9.2011, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чилавек-Каропка
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 15.8.2004
Где: Москва

Репутация: 13
Всего: 107



vmstat 1


--------------------
Однажды ты спросишь, а я отвечу: "Время ожидания специалиста - 10 минут". Ты бросишь трубку, так и не узнав, что Ваш звонок очень важен для нас!
PM MAIL WWW Jabber   Вверх
mcTep
Дата 5.9.2011, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 25.2.2009

Репутация: нет
Всего: 6



Нет, не высокая.

bo максимум 1500, если это показатель нагрузки.

Это сообщение отредактировал(а) mcTep - 5.9.2011, 11:31
PM MAIL   Вверх
Berger
Дата 25.9.2011, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 25.9.2011

Репутация: нет
Всего: нет



Интересно, а целостность самой БД этого интернет-магазина на предмет её целостности (отсутствия ошибок) кто-нибудь проверял?

П.С. Прикрутить Nginx к Apache (в качестве фронтенда) - не так уж и сложно, даже на уже работающем веб-сервере, а нагрузку такая связка снимает довольно прилично.

Это сообщение отредактировал(а) Berger - 25.9.2011, 13:20
PM MAIL WWW   Вверх
MuToGeN
Дата 4.10.2011, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 5
Всего: 32



Цитата(mcTep @  1.9.2011,  14:38 Найти цитируемый пост)
как локализовать проблему

Профайлером (xdebug, к примеру).

А вообще пророчу, что поможет грамотная расстановка индексов в базе.


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.