Искать  
 
   
 
Повышенная нагрузка сервера на ровном месте
Отправлено: 05 Ноябрь 2011 03:36 A.M.   [ Игнорировать ]
Новичок
Rank
Всего сообщений:  9
Зарегистрирован  2011-11-05

Приветствую,

Столкнулся со следующей проблемой.

На сервере (SpaceWeb) развёрнута 2.2.2 с темой Headlines от WooThemes. В базе порядка восьми сотен страниц блога, импортированных из XML (от предыдущего движка) и ещё сколько-то комментариев. Из дополнительных модулей, дёргающихся при загрузке страниц, — только Tagger. Все остальные — только то, что требует сама тема (т.е. teemthumb, SEO Lite и прочая мелкая дребедень). Модулями в целом инсталляция не перегружена (wygwam, AJW DataGrab), но это и неважно, поскольку основные проблемы начинаются при загрузке именно страниц блога.

Что происходит: при каждом хите главной страницы или страницы блога, судя по выводу top, процесс httpd создаёт пиковую нагрузку от 11% до 17% CPU. Соответственно, несколько хитов одновременно делают процессору нехорошо, вплоть до 503-й ошибки. Посещаемость этого сайта пока что сравнительно низкая, от 2000 просмотров в день до (когда популярная новость) 6000 просмотров. На аккаунте также есть несколько работающих копий PHP Fusion, но у них пиковая нагрузка никогда не бывает выше 2% CPU на хит, да и то — большая редкость.

Что делал, отдавая себе полный отчёт:

— деинсталлировал неиспользуемые модули
— прогнал страницы через вебкитовский отладчик, поисправлял мелкие недочёты в теме
— в .htaccess включил Header set Cache-Control и добавил раздел ifmodule mod_expires.c, чтобы посетители поменьше долбили в диск сервера
— включил Cache Dynamic Channel Queries, одновременно включив gzip (через движок)
— включил кэширование части шаблонов
— проверил на локально развёрнутой (десктоп) копии и увидел в top примерно те же циферки

Что делал, неполностью отдавая себе отчёт в присходящем:

— мучил глазки выводом запросов (Display Output Profiler) и отладки шаблонов (Display Template Debugging)
— благодаря этому исправил лёгкое отъедание памяти процессом модуля bitly (не был введён уникальный ключ)
­— увидел, что в паре мест происходят скачки в потреблении памяти по мегабайту-полутора

Техподдержка EllisLab, до того реагировавшая на вопросы адекватно, резко стухла и отказалась иметь с этим дело, заявив, что проблема в хостинге (проигнорировав инфу, что на десктопе то же самое). Больше того, на предельно вежливый вопрос, что они могут посоветовать ещё проверить, и на что вообще стоит обратить внимание, читая отладочные/профилировочные выводы (поскольку я, прямо скажем, не слишком опытный администратор), раздалось невнятное мычание, что, бесспорно, огорчает (повторюсь, до сих пор такой проблемы с ними не было).

Перенос аккаунта с shared hosting на VIP (всё тот же SpaceWeb, т.е. не более 10-20 аккаунтов на сервере) пока что ничего не дал: за умеренно спокойную пятницу (2052 просмотра) нагрузка составила 68,84 (в их особых, спейсвебовских единицах), количество некритичных превышений нагрузки — 188. Общее количество хитов на аккаунте за пятницу, если кому интересно, порядка 6000.

Профиль
 
 
Отправлено: 05 Ноябрь 2011 03:37 A.M.   [ Игнорировать ]   [ # 1 ]
Новичок
Rank
Всего сообщений:  9
Зарегистрирован  2011-11-05

Апгрейдить до 2.3.1 пока не пробовал, хочется подождать ещё хотя бы пару апдейтов.

Отсюда несколько вопросов к опытным администраторам сайтов на EE.

1. Насколько типична для EE такая пиковая нагрузка при каждом хите?
2. Приходилось ли пользователям бьёрновских тем как-то особо их допиливать, фиксить его модули или менять их на другие? Менять teemthumb на CE Image, как тут советовали, я пока не пробовал.
3. Может ли такая ерунда быть как-то связана с потенциально некорректным переносом данных датаграбом через XML?
4. Какие ещё соображения у вас возникают?

Несмотря на то, что рулю сайтами на разных движках уже не первый год, это фактически мой первый серьёзный опыт настройки движка для повышения производительности и вообще расковыривания шаблонов, поэтому можно не стесняясь называть меня идиотом, не забывая при этом говорить, где конкретно я неправ smile Заранее спасибо smile

P.S. Движок, в целом, нравится. Был выбран, главным образом, из-за каналов, вменямой встроенной вики и хорошего форума (по сравнению с фьюжновским — вообще сказка).

Профиль
 
 
Отправлено: 05 Ноябрь 2011 04:23 A.M.   [ Игнорировать ]   [ # 2 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07
alexlgw - 05 Ноябрь 2011 03:37 A.M.

2. Приходилось ли пользователям бьёрновских тем как-то особо их допиливать, фиксить его модули или менять их на другие? Менять teemthumb на CE Image, как тут советовали, я пока не пробовал.

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

Профиль
 
 
Отправлено: 05 Ноябрь 2011 01:09 P.M.   [ Игнорировать ]   [ # 3 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  644
Зарегистрирован  2009-04-11

Включи профилирование и погляди что кушает много оперативки и какие запросы выполняются.

 Подпись 

Няшка, программист, фотограф, подкастер, блоггер и CEO студии FDCore Studio

Профиль
 
 
Отправлено: 12 Ноябрь 2011 07:30 P.M.   [ Игнорировать ]   [ # 4 ]
Новичок
Rank
Всего сообщений:  9
Зарегистрирован  2011-11-05

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

teemthumb я сразу новый подставлял при инсталляции. Собственно, Бьёрн по моей жалобе его весной и исправлял на тему расхода памяти.

Что касается профилирования, все запросы к базе копеечные: от 0.0002 до 0.0035.

Есть пара скачков в общем расходе памяти, но, если я правильно понимаю, там просто собираются все данные:

(0.012525 / 4.40MB)    Including Files for Plugins and Modules
(0.032441 / 5.93MB)    Files for Plugins and Modules All Included

И дальше:

(0.033234 / 5.94MB)    Beginning Final Tag Data Processing
(0.033261 / 5.94MB)    Calling Class/Method: Channel/entries
(0.033601 / 5.95MB)    -> Class Called: Channel
(0.033685 / 5.95MB)    -> Method Called: entries
(0.068217 / 7.40MB)    -> Data Returned

В остальном, просто медленное нарастание занимаемой памяти.

Профиль
 
 
Отправлено: 13 Ноябрь 2011 02:51 A.M.   [ Игнорировать ]   [ # 5 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07

Из дополнительных модулей, дёргающихся при загрузке страниц, — только Tagger. Все остальные — только то, что требует сама тема (т.е. teemthumb, SEO Lite и прочая мелкая дребедень). Модулями в целом инсталляция не перегружена (wygwam, AJW DataGrab), но это и неважно, поскольку основные проблемы начинаются при загрузке именно страниц блога.

LibrarEE случайно не установлен? дает приличную нагрузку

Сколько вообще к примеру на главной запросов, за сколько времени выполняется и сколько кушает памяти? (до и после кеширования)

Можно еще отключить tracking, все кроме подсчета количества просмотров записи (он в этой теме используется)

— включил кэширование части шаблонов

немного не понял, “части шаблонов” это некоторых шаблонов или тегов используемых в шаблонах? первое не заметно для авторизированного админа) да и в темах от woothemes много вложенных шаблонов...

лучше пройтись по шаблонам и к тегам прописать кеширование (работает для всех тегов)

после этого у меня главная Headlines раза в два быстрее генерируется и кешированная страничка имеет около 20 запросов...

можно еще поэкспериментировать например с minimee...

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

Профиль
 
 
Отправлено: 13 Ноябрь 2011 07:10 P.M.   [ Игнорировать ]   [ # 6 ]
Новичок
Rank
Всего сообщений:  9
Зарегистрирован  2011-11-05
budulay - 13 Ноябрь 2011 02:51 A.M.

LibrarEE случайно не установлен? дает приличную нагрузку

Неа, нету smile

budulay - 13 Ноябрь 2011 02:51 A.M.

Сколько вообще к примеру на главной запросов, за сколько времени выполняется и сколько кушает памяти? (до и после кеширования)

В текущем состоянии (с кэшированием части шаблонов):

Loading Time: Base Classes: 0.0289
Controller Execution Time: 0.2742
Total Execution Time:    0.3033
QUERIES: 59
Memory Usage: 9,718,696 bytes

Если отключить кэширование channel queries

Loading Time: Base Classes     0.0135
Controller Execution Tim     0.2740
Total Execution Time     0.2877
QUERIES: 79
Memory Usage: 9,733,068 bytes

Если ещё отключить кэширование шаблонов, получается

Loading Time: Base Classes     0.0126
Controller Execution Time     0.3184
Total Execution Time     0.3312
QUERIES: 82
Memory Usage: 10,718,300 bytes

budulay - 13 Ноябрь 2011 02:51 A.M.

Можно еще отключить tracking, все кроме подсчета количества просмотров записи (он в этой теме используется)

Уже было сделано smile

budulay - 13 Ноябрь 2011 02:51 A.M.

немного не понял, “части шаблонов” это некоторых шаблонов или тегов используемых в шаблонах? первое не заметно для авторизированного админа) да и в темах от woothemes много вложенных шаблонов...

Именно шаблонов, в Template Manager. С публичной бетой CacheCracker возиться пока не стал, потому что она, судя по всему, просто автоматизирует то, что я и сам могу сделать smile

budulay - 13 Ноябрь 2011 02:51 A.M.

лучше пройтись по шаблонам и к тегам прописать кеширование (работает для всех тегов)
после этого у меня главная Headlines раза в два быстрее генерируется и кешированная страничка имеет около 20 запросов...

Большое спасибо, попробую smile

budulay - 13 Ноябрь 2011 02:51 A.M.

можно еще поэкспериментировать например с minimee...

Да, это тоже в ближайших планах.

budulay - 13 Ноябрь 2011 02:51 A.M.

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

А какие впечатления от EngineHosting, кстати?

Профиль
 
 
Отправлено: 13 Ноябрь 2011 07:28 P.M.   [ Игнорировать ]   [ # 7 ]
Новичок
Rank
Всего сообщений:  9
Зарегистрирован  2011-11-05

Небольшое дополнение. Пока возвращал обратно кэширование шаблонов, подправил некоторые значения. В результате повторная загрузка главной страницы (т.е. из кэша) стала давать:

Loading Time: Base Classes     0.0128
Controller Execution Time     0.1388
Total Execution Time     0.1519
QUERIES: 17
Memory Usage: 5,627,804 bytes

Но пиковая нагрузка процессора — всё равно 12-13%.

Профиль
 
 
Отправлено: 15 Ноябрь 2011 05:46 P.M.   [ Игнорировать ]   [ # 8 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07
alexlgw - 13 Ноябрь 2011 07:10 P.M.

А какие впечатления от EngineHosting, кстати?

я не использую, но на форуме есть тема - http://eeclub.ru/forum/viewthread/1153/

трафик то не большой, возможно просто свеб захотел загнать на вип-тариф) про них на серче большая тема есть... думаю за эти деньги лучше свой впс взять (например у linode есть ДЦ в Лондоне) настроить связку nginx+apache, установить еще акселератор php, например эта тема в облаке Селектела (они сейчас новых клиентов не принимают) с установленным eAccelerator:

Loading Time: Base Classes     0.0022
Controller Execution Time ( Ee / Index )    0.0817
Total Execution Time     0.0841
MEMORY USAGE 1,805,236 bytes

+ если нужно можно еще оптимизировать, для ЕЕ есть еще аддоны для кэширования с помощью memcached (установка простая) и varnish (не пробовал еще)

Но пиковая нагрузка процессора — всё равно 12-13%.

процессоры разные бывают, как и настройки на серверах) но можно попробовать увеличить в настройках макс. число кэшируемых URL (по умолчанию 150) и время кэша (ладно процессор нагружается созданием кэша, но уже повторное открытие странички с кэшем не должно так грузить... может кэшируется на слишком малое время и движок постоянно только создает  а не отдает кэшированые странички)

Профиль
 
 
Отправлено: 02 Декабрь 2011 02:08 P.M.   [ Игнорировать ]   [ # 9 ]
Новичок
Rank
Всего сообщений:  9
Зарегистрирован  2011-11-05

Небольшой апдейт smile

После небольшой дополнительной корректировки кэширования и включения minimee для объединения CSS и JS ситуация немного стабилизировалась. Пиковую загрузку процессора особенно “сбить” не удалось, но статическая нагрузка упала до приемлемой величины, хотя количество некритичных превышений нагрузки всё ещё напрягает. В начале года поковыряюсь с альтернативными площадками, сейчас как-то не до того smile

Настроек числа кэшируемых URL сходу не нахожу. Это одна из тех настроек, которые только через конфиг ручками правятся?

Профиль
 
 
Отправлено: 06 Декабрь 2011 06:54 P.M.   [ Игнорировать ]   [ # 10 ]
Member
Avatar
RankRankRank
Всего сообщений:  197
Зарегистрирован  2009-02-13

Привет!
Тоже встал вопрос с переездом. Сидел на таймвебе тариф оптима. (ExpressionEngine v 1.6.7) Год превышал их допустимую нагрузку (причём допустимая была только в выходные дни, и то не во все), но как-то не трогали. Последний месяц у них на серваках творится, что то непонятное: то сервак висит, то нагрузку показывал 1,5 (в их единицах) что никак не может быть при 1500 уник. ... В итоге вынудили перейти на более дорогой тариф. Сейчас решил развивать проект, и рассматриваю впс Colobridge. Посмотрел тарифы, показались очень даже адекватными! Дак вот, у кого-нибудь есть там проекты, или какое мнение о этом провайдере.

Профиль
 
 
Отправлено: 06 Январь 2012 03:55 P.M.   [ Игнорировать ]   [ # 11 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07
alexlgw - 02 Декабрь 2011 02:08 P.M.

Настроек числа кэшируемых URL сходу не нахожу. Это одна из тех настроек, которые только через конфиг ручками правятся?

Admin ‣ General Configuration ‣ Maximum Number of Cachable URIs

sibmet - 06 Декабрь 2011 06:54 P.M.

Привет!
Тоже встал вопрос с переездом. Сидел на таймвебе тариф оптима. (ExpressionEngine v 1.6.7) Год превышал их допустимую нагрузку (причём допустимая была только в выходные дни, и то не во все), но как-то не трогали. Последний месяц у них на серваках творится, что то непонятное: то сервак висит, то нагрузку показывал 1,5 (в их единицах) что никак не может быть при 1500 уник. ... В итоге вынудили перейти на более дорогой тариф. Сейчас решил развивать проект, и рассматриваю впс Colobridge. Посмотрел тарифы, показались очень даже адекватными! Дак вот, у кого-нибудь есть там проекты, или какое мнение о этом провайдере.

да хз, на openvz хостери оверселят... но выбор хостинга и настройка впс это наверное отдельная тема)

Профиль