Оптимизация Друпала

Главные вкладки

Аватар пользователя Chalk Chalk 9 июня 2010 в 16:39

Всем привет.
Имеется сайт, посещалка на котором составляет 1к\сутки и в основном это незарегистрированные юзеры. Сайт пока что размещается на виртуальном хостинге и начинает завышать лимиты использования процессора. Я думаю, что это можно исправить кешированием. Если честно, то устал искать какой то решение: много старых статей и не понятно работают ли предложенные методы. Поэтому прошу помочь советом или ссылкой на актуальные на данный момент модули, другие решения. Был бы очень признателен, если бы кто-нибудь помог по аське.

Комментарии

Аватар пользователя Vladimir_VVV Vladimir_VVV 9 июня 2010 в 20:25

Для анонимусов самое простое модуль boost, хостер сам офигеет что у вас нагрузки на php и mysql небудет совсем.
Он при первом запросе какого-либо урла создаст html файл отрендеренной страницы в папке кеша, а потом, пока кеш не просрочен(неизменен) через мод_реврайт будет его подсовывать вместо обращения к index.php. Таким образом последующие запросы этого урла будут напрямую отдаваться апачем или nginx`сом минуя php и mysql. Для хостера это будет как обычний сайт на html-файлах. Я с бустом с помощью муьтисайтинга держу пачку из 25 штук говносайтов на хостинге за 60рублей в месяц.

Далее нужно выяснить есть ли на хостинге какие нибудь акселераторы типа eaccelerator, apc, xcache и воспользоваться модулем cacherouter для вывода системного кеша drupal из базы данных на кеш акселератора. Если нет, то тотже cacherouter работает с кешем на файлах, все равно быстрее чем с базой. И еще можно authcache поставить для кеширования страниц залогининым юзерам, отлично работает с cacherouter. Все это без допила напильником.

Аватар пользователя Sinkora Sinkora 9 июня 2010 в 20:49

"Vladimir_VVV" wrote:
Я с бустом с помощью муьтисайтинга держу пачку из 25 штук говносайтов на хостинге за 60рублей в месяц.

А можно ссылку на сайт хостера? Smile

Аватар пользователя Vladimir_VVV Vladimir_VVV 9 июня 2010 в 22:17

https://best-hoster.ru/info/tarifs.html
без буста при первом же заходе на один стостраничный сайт гугла загрузка приближается к половине лимита по cpu а с бустом все сайты даже и не логируются по лимитам.
А там у меня вьюс сск имеджфилд имиджкеш как у нормальных сайтов.

Аватар пользователя Sinkora Sinkora 9 июня 2010 в 22:26

"Vladimir_VVV" wrote:

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

Аватар пользователя Vladimir_VVV Vladimir_VVV 9 июня 2010 в 22:56

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

Аватар пользователя Vladimir_VVV Vladimir_VVV 9 июня 2010 в 23:12

"Sinkora" wrote:
xcache глючит (или как там его)?..

точно не ясно, то ли акселератор-кешер то ли модуль которые с ним общается, я помню в старых версиях cacherouter иногда тупил и с отдельным кешером(пробовал eac и apc) и с простым кешем на файлах, а сейчас подобного на своих сайтах не замечаю(использую с APC) даже совместно с authcache не замечал глюков.
А все это вместе производительности дает ОГОГО скока.
Ах да еще один немаловажный пункт производительности - неработать под рутом то есть не под uid=1.
Всем кроме uid=1 все(блоки нипример) кешируется и тем самым экономятся ресурсы.

Аватар пользователя Sinkora Sinkora 9 июня 2010 в 23:15

"Vladimir_VVV" wrote:
использую с APC

Советуете? Я сейчас в поисках подходящего...

"Vladimir_VVV" wrote:
Ах да еще один немаловажный пункт производительности - неработать под рутом то есть не под uid=1.
Всем кроме uid=1 все(блоки нипример) кешируется и тем самым экономятся ресурсы.

Но ведь админ всего лишь один:)

Аватар пользователя Vladimir_VVV Vladimir_VVV 9 июня 2010 в 23:28

"Sinkora" wrote:
Советуете? Я сейчас в поисках подходящего...

А использую apc потому что из коробки дебиана, нужно было быстро и надежно а времени выбирать небыло, eac отпал из-за необходимости компиляции и очень частым умераниям на предыдущем сервере.
Я сейчас присматриваюсь к xcache, вроде как говорят очень мегастабильный, немного превосходит apc, админка удобная и в "коробке" дебиана есть.

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

Аватар пользователя Sinkora Sinkora 9 июня 2010 в 23:28

"Vladimir_VVV" wrote:
А для администрирования создаете юзера, назначаете ему новую роль, и этой роди все права. Неудобно только когда новый модуль ставите нужно заходить в контроль доступа и указывать права для этого модуля, но зато визуально админка работает быстрее.

Это понятно, но разве один юзер с uid=1 нагружает сайт?:) Он же только один:)

Аватар пользователя Sinkora Sinkora 10 июня 2010 в 1:21

"Vladimir_VVV" wrote:
он не столько нагружает сколько Вас будут беспокоить тормоза при администрировании.

ну да, как вариант...

Аватар пользователя Chalk Chalk 10 июня 2010 в 2:27

Vladimir_VVV, спасибо за ответы. Т.е если есть какие-то акселераторы на хостинге, то ставить cacherouter+authcache. Если нет - то модуль boost. Так или все вместе может прекрасно работать?

Аватар пользователя Vladimir_VVV Vladimir_VVV 10 июня 2010 в 3:15

Можно все вместе. Если даже на хостинге нет акселератора все равно ставите кешрутер и настраиваете на кеш в файлах, это будет как бы замена системного drupal-кеша и чаще всего быстрее чем mysql.
authcache обычно полезен когда много залогининых, а буст полезен когда контент не сильно часто меняется(здесь нужно понимать то что выиграш будет если на 1 обновленный материал зайдут 2 и более анонима, то есть если даже сайт сильно обновляемый то при большом потоке анонимов[в т.ч. и роботов] буст улучшит производительность).

Аватар пользователя Shift-Web Shift-Web 10 июня 2010 в 17:30

"Vladimir_VVV" wrote:
Можно все вместе. Если даже на хостинге нет акселератора все равно ставите кешрутер и настраиваете на кеш в файлах, это будет как бы замена системного drupal-кеша и чаще всего быстрее чем mysql.
authcache обычно полезен когда много залогининых, а буст полезен когда контент не сильно часто меняется(здесь нужно понимать то что выиграш будет если на 1 обновленный материал зайдут 2 и более анонима, то есть если даже сайт сильно обновляемый то при большом потоке анонимов[в т.ч. и роботов] буст улучшит производительность).

Мне больше понравилась связка X-Cache + cacherouter

Аватар пользователя Chalk Chalk 11 июня 2010 в 4:41

У меня вот еще созрел вопрос по boost. Он как я понял, кеширует всю страницу. А если меняется какой то блок на странице, то он заново создает .html? Просто у меня идет рандомный вывод тегов.. Не будет ли оно каждый раз создавать новый кеш?

Аватар пользователя Sinkora Sinkora 11 июня 2010 в 13:33

"Chalk" wrote:
У меня вот еще созрел вопрос по boost. Он как я понял, кеширует всю страницу. А если меняется какой то блок на странице, то он заново создает .html? Просто у меня идет рандомный вывод тегов.. Не будет ли оно каждый раз создавать новый кеш?

Вообще-то время жизни кеша настраивается вами. Но если вы будете менять кеш страницы лишь один раз в день, то блок со случайной информацией будет тоже меняться раз в день.

Аватар пользователя Vladimir_VVV Vladimir_VVV 14 июня 2010 в 11:39

Кароч поставил Xcache и пожалел.
Xcache иногда категорически не дает обновлять кеш. Не знаю с чем это связано, может быть cacherouter как то не правильно общается с xcache, а может и гдето настройки в xcache вкручивать нужно, но скажу что таких проблем с APC я не знал. Временно верну все на APC а то как начинается гон так ни одну форму нельзя отправить, все пишет что нет ее в кеше, и в это же время кешированые страницы необновляются, хоть унажимайся на "очистить кеш данных" только зайдя в админку xcache можно тыкнуть кнопку очистки кеша переменных - тогда все ок на время.

Аватар пользователя Chalk Chalk 14 июня 2010 в 16:31

Поставил буст, настройки не трогал, кроме времени жизни кеша (1 сутки) и места его хранения. Поставил вроде бы все как надо, в админке пишется по-крайней мере что правильно.
Файлы html в папке с кешем создаются. Но только почему то не подсовываются когда запрашивают страницу. Я значит оставляю комент как пользователь через оперу, захожу незалогиненым через ИЕ и открываю любую уже кешированную недавно страницу: блок прямой эфир обновлен, я вижу свой комент. Захожу через ФТП и смотрю кеш данной страницы - старый кеш, без нового комента в блоке.
Т.е кешированные страницы не подсовываются. Где ошибка? Обычное кеширование с кешированием блоков тоже включено.

Аватар пользователя Sinkora Sinkora 14 июня 2010 в 16:32

"Chalk" wrote:
Поставил буст, настройки не трогал, кроме времени жизни кеша (1 сутки) и места его хранения.

А как часто меняется содержимое страниц? Если страницы не меняются месяцами, то правильнее кеш очищать только тогда, когда в этом есть необходимость.

И сколько раз в сутки в среднем одну и ту же страницу загружают? Если в среднем в сутки страница загружается не более одного раза, то кеширование наоборот нагрузит сайт...

Аватар пользователя Chalk Chalk 14 июня 2010 в 17:05

Ну страницы по всякому грузят. Есть что по 5-10, есть которые и по 50-100+.
На сайте в основном комментарии добавляются и 1-2 статьи в день.
Могу в личку скинуть сайт и пароль от статы ЛИ

Аватар пользователя Chalk Chalk 14 июня 2010 в 17:09

"Vladimir_VVV" wrote:
А вы правила сгенерированые бустом засовывали в .htaccess? Без них он не работает.

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

Аватар пользователя DenisVS DenisVS 5 ноября 2011 в 16:26

Какой хороший совет не работать под рутом! Почему же его нигде не пишут? Я тут совсем измучился с тормозами, а сейчас разлогинился, и сайт залетал!
Сравнил в top загрузку процессора процессом httpd при постоянном рефреше F5.
root: до 75%
гость: менее 4%
При том, что на сервере ещё 15 сайтов.