Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тормозит сервер 
:(
    Опции темы
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   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




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


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

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