Возросла нагрузка на сервер

ran

Новичок
Возросла нагрузка на сервер

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

После все повторилось, но уже оказалось, что есть медленные запросы: запросы нашли и устранили.
Все повторилось снова, в логе медленных запросов появились запросы, explain которых следующий:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE service_controller ALL NULL NULL NULL NULL 26 Using where


Немного сложнее вариант, однако выполняется он 0.02-0.04 сек
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE c ref cid,ctid,lang_f,cc_id 10 const,const 4956 Using where; Using filesort
1 SIMPLE lang const PRIMARY PRIMARY 4 const 1
1 SIMPLE d eq_ref PRIMARY PRIMARY 4 c.image_id 1


Еще хостер дал список висящих запросов.
Проанализировал кол-во выполняемых запросов на этих странице - от 5 до 25. Посещаемость сайта небольшая - 200-500 человек. По access.log ботов и то больше.

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

fixxxer

К.О.
Партнер клуба
>лог медленных запросов - это все, чего я добился от хостера.

а что тебе еще нужно? чтобы хостер за тебя переписал эти запросы чтоли?

> выполняется он 0.02-0.04 сек

ага конечно... slow log (если конечно хостер не установил перконовские патчи) настраивается только посекундно.

> кол-во выполняемых запросов на этих странице - ... до 25

жесть

> ботов и то больше

а что, для ботов sql запросы не делаются?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
ran
Топик следует оформлять так, чтоб его было удобно читать.
 

ran

Новичок
>а что тебе еще нужно? чтобы хостер за тебя переписал эти запросы чтоли?
нет, не хочу
>ага конечно... slow log (если конечно хостер не установил перконовские патчи) настраивается только посекундно.

я знаю, но не понимаю, почему простые запросы без джойнов и 20-40 записями в таблице попадают в этот лог

>а что, для ботов sql запросы не делаются?
делаются конечно :) просто по логу доступа запросы к серверу идут с интервалом 5-10 секунд, а то и в несколько минут.

и 20 запросов идут легких, если кеш почистить.

пару средних по таблице в 30 000 записей, 2я джойнами - если запускаю через phpMyAdmin - время вроде нормальное.

И хотел еще узнать, почему висят процессы апача и он их не убивает?

Mr_Max
учту
 

fixxxer

К.О.
Партнер клуба
>Using filesort

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

ran

Новичок
fixxxer
скорее всего так и есть, записей более 20 000 и запросы по логике требуют обязательной сортировки по дате... это очень мало, но на шаред хостинге видимо достаточно... на vps-тестировал с использование apc в качестве кеша - все бегало... тут же в роли кеша sqlite...
попробую максимально закешировать уже готовые страницы и блоки
 

korchasa

LIMB infected
Автор оригинала: ran
fixxxer
скорее всего так и есть, записей более 20 000 и запросы по логике требуют обязательной сортировки по дате...
Если в таблице есть большие по размерам поля, то есть смысл делать сначала сортировку, а извлекать потом, по where id in(...). А почему сортировка идет по дате, а не по id. Дату можно редактировать?
 

Фанат

oncle terrible
Команда форума
fixxxer, я думаю, здесь надо не частности исправлять, а либо искать причину, либо ловить хостера.
Я предполагаю первое.
Дело не в филесорте как таковом ведь.

ran
хостер тебе вообще не нужен. у тебя есть руки?
поставь ими в начале и в конце скриптов замер времени и пиши в лог.
потом смотри лог на предмет долгих скриптов.
 

ran

Новичок
korchasa, "большие поля" каждый может трактовать по разному: размер таблицы ~100M. информация - обычные новости, т.е. самое большое поле - это то, которое содержит текст. максимальная - 26Кб, в среднем 5-10Кб

сортировка не по id, потому что дату можно редактировать


*****
есть руки, последовал совету - пишу урл, time-start - time-end скриптов и запросы к базе в свой лог.

поднакопится информации - буду анализировать
 
Сверху