Highload - с чего начать?

workOnFood

Новичок
Всем доброго дня.

Работаю над проектом который метит стать хайлоадом. Заказчик купил дешевый трафик в больших количествах и сервер лег при нагрузке 38 одновременных коннектов.

Конфиг-

OS - windows
Сам сервер - wamp

Два ядра по 1.2 Ггц
2 гига Ram

Канал - 25 мбит.

Передо мной стоит задача выяснить слабое место и определить что дальше делать, чтобы избежать фейлов.
Собственно что интересно по существу. -

1) Как измерить реальное количество ресурсов потреблямых скриптом? И каким вообще софтом следует пользоваться для выявления слабых мест, тестирования и т.п.
2) Какие меры следует предпринять для оптимизации? Я знаю про eAccelerator и memcached.
 

Redjik

Джедай-мастер
у апача есть ab для простеньких тестиков
на чем и как писан сайт, что он при 38 коннектах валится 0_о
 

workOnFood

Новичок
Иван Redjik Матвеев

Сайт написан на yii. На главную выводятся картинки - штук 20, инфа для них берется из базы. Запросы через DAO.
Как вариант - канала не хватает. Главная весит 1.4 мб, куча всякой хрени - плагины jquery, всякие лайки и т.п.

ab - да точно, спасибо, что-то я забыл про него.
 

Redjik

Джедай-мастер
nginx поставь как reverse proxy, тогда долгие запросы не будут грузить апач

UPD
ну или вообще выкинь апач нафиг =))
ab под nginx так же работает
 

alekciy

Новичок
Передо мной стоит задача выяснить слабое место
Винда? ) (больше на правах стёба). Хотя юзать php под виндой изращение. Переехали бы на нормальный linux сервер. Ладно еще, что каких-то модулей под windows нет. Главное, что отладка под линями как-то более конфортна.

Для тестрирования httperf все же предпочтительнее будет.

Апач конечно и статику раздает, так? Кстати, откуда уверенность, что 38 одновременных коннектов? Может просто 38 коннектов/сек? Как бэ сильно разные вещи.

38 коннектов - HL? О_О
 

Ragazzo

TDD interested
Кто-то наверное код написал криво и не учел lazy load в AR или запросы в циклах фигачил, лучше код проверить думаю, т.к. 38 коннектов при данных параметрах это совсем ничего.
 

Redjik

Джедай-мастер
ну у меня ab в среднем выдает 130-150 rps debian 386mb nginx/php-fpm + APC
причем на страницах куча всяких каталогов, лайков, свистелок-перделок...
я даже не знаю как yii можно было так упороть...
 

Redjik

Джедай-мастер
Кстати сколько времени генерация страницы firebug пишет?
Понимаю, что это на глазок, но тем не менее.
 

workOnFood

Новичок
Иван Redjik Матвеев

Спасибо за мнение. Почитаю про nginx.

alekciy

httperf - Спасибо.
По поводу одновременности уверенности никакой, мерялось google analytics.

Ragazzo

AR - не используется, написал же в начале DAO. Запрос один, без циклов.
 

workOnFood

Новичок
По поводу кода... Харе плиз. Я понимаю что это очень большой соблазн тут пнуть за код. Но там всего буквально три строчки в контроллере, остальное делает фреймворк.

PHP:
$db = Yii::app()->db;
$straps = $db->createCommand('select * from `straps` where state=1 order by ordering')->query();
$this->render('index', array('straps'=>$straps));
Во вьюхе только вывод. Модель как модель, сформирована gii, практически без изменений.
 

Redjik

Джедай-мастер
а при чем тут модель? у тебя же DAO :D

так все же что показывает firebug, и как ты понял что сайт ложится таки?
 

alekciy

Новичок
alekciy

httperf - Спасибо.
По поводу одновременности уверенности никакой, мерялось google analytics.
Кошмар. Если 38 запросов - результат измерений из google analytics, то значит нагрузки ни какой по сути вообще нет.

Иван Redjik Матвеев прав, смотри, сколько генерится страница и какой MaxClients стоит в apache, кроме того неплохо бы сказать, столько при этом порождается процессов apache.
 

workOnFood

Новичок
Иван Redjik Матвеев

Модель непричем.
Firebug - 40 с

По поводу фейла я наверное не совсем корректно выразился, извиняюсь. Не загружается страница в браузере. Как при обрыве связи с инетом.
Сервак при этом глючит но работает, заходил по teamviewr.

alekciy

В файле httpd.conf нет такой настройки, нашел ее в extra/httpd-mpm.conf MaxClients 150 но в главном конфиге инклюд этого файла закомментирован.

По поводу процессов в данный момент не могу прeдоставить информацию.
 

fixxxer

К.О.
Партнер клуба
какой nginx на винде, вы что ;) он там через select работает. юзается тока 1 воркер, 64 соединения - и все досвидос, для продакшена непригодно ваще

на винде нормально работает под нагрузкой только IIS, но вообще лучше поставить линукс
 

workOnFood

Новичок
fixxxer

Ага вот тоже погуглил по этому поводу... nginx не айс на винде.
Обсуждаю с заказчиком переезд на линукс.
 
Сверху