Кто как оптимизирует нагрузку в LS?

Приветствую всех пользователей LS.
Если вы здесь, значит, вы каким-то образом связаны с LS, либо у вас уже есть сайт на этом движке, быть может вы планируете его создать, либо хотите перенести свой старый сайт на этот двигатель, не важно, все вы пробовали его в работе. Не секрет, что ЛС, после N-ого размера базы данных начинает немного задумываться при загрузке. И тут возникает вопрос нагрузки и её оптимизации.

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

С другой стороны, есть проекты, построенные, конечно же, на LS, с загрузкой страницы меньше 0.1 секунды. Как? Я вот тоже не понимаю. Конечно же можно тонко настроить сервер, все дела, но блин, я все-равно не понимаю, как с разбухшей базой с тысячами топиков, десятками тысяч пользователей и сотнями тысяч комментариев, можно так шустро работать?

Все дело в том, что недавно я переехал на VPS с шаред хостинга. На шареде сайты работали вполне себе нормально, но места физически под файлы не хватало и поэтому я переехал. Начитался объемного числа литературы о том как настраивать правильно сервер: MySQL, Apache, nginx, PHP, Memcache, APC и пр. Характеристики VPS сервера не ахти, но для начала я был уверен, что мне будет хватать: 2.4 Гц проц, 2ГБ озу и 50ГБ винт. Я перенес сайты, счастливый, захожу на сайт и радостно ожидаю увидеть хотя бы fulltime: 0.3, вместо чего вижу совсем другие цифры. Что же не так? Поговорив с знакомыми веб-мастерами, у которых уже был неплохой опыт, сказали, что на 90% дело в самих сайтах, а не настройке сервера. Конечно же, что тут грешить, у меня стоит почти 30 плагинов на сайте, но практически все из них это плагины которые по сути не должны создавать никакой нагрузки и все плагины я старался выбирать только у тех авторов, к которым у меня появилось доверие в ходе моего прибывания в сообществе.

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

иногда такие:

а иногда, блин, и такие:


Вот скажите, кто может, ну откуда такие цифры? Просто жесть, знаю. Мне советовали заняться профилированием, я, честно говоря, даже не понял что это значит, но догадался, что в LS есть встроенные для этого службы (плагин Profiler). Только я даже не понимаю что с ним делать. Где бы почитать о нем?

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

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

  1. kosmetista.ru/ (примерная посещаемость — 43548)
  2. mysku.ru/ (примерная посещаемость — 36902)
  3. livestreet.ru/ (примерная посещаемость — 18548)
  4. wotmod.net/ (примерная посещаемость — 14219)
  5. mobileimho.ru/ (примерная посещаемость — 12378)
  6. wotangar.ru/ (примерная посещаемость — 7421)
  7. secondstreet.ru/ (примерная посещаемость — 3670)
  8. nepropadu.ru/ (примерная посещаемость — 4304)
  9. vkusnodoma.com/ (примерная посещаемость — 3182)
  10. zabort.ru/ (примерная посещаемость — 2124)
  11. zaokeanom.com/ (примерная посещаемость — 2151)
  12. blogeblog.ru/ (примерная посещаемость — 1975)

* Адреса сайтов и их посещаемость взяты из открытого доступа, если вы владелец и хотите, чтобы вашего сайта тут не было — дайте знать в личку.

35 комментариев

avatar
Кеш включен?
avatar
Да, memcache+apc.
avatar
Можно конфиг на посмотреть?
avatar
Конфиг чего?
avatar
А что Вас не устраивает в этих показателях? Вполне, надо сказать, неплохие. Плюс, не забывайте, что вход под админом увеличивает время загрузки, т.к. aceadminpanel и др. админские примочки кушают весьма не мало.

Проверьте свой сайт этим тестером: loadimpact.com и добавьте к топику результат этого тестирования, вот там уже будет видно, что и как
avatar
ах да, чуть не забыл — почти все приведенные Вами быстрые сайты стоят на выделенных серверах с оперативкой в 16 и более гб., которая позволяет почти все в memcache загружать, а для Вашего сервера приведенные данные вполне нормальны, но не в них дело — протестируйте
avatar
Ну, показатель с 0.6-0.8 в общем-то нормальный, но я просто не понимаю, откуда такие просадки в 5 и более секунд. База+кеш+пхп дают ну 1с, а еще 4 на что идет не понимаю.
Сейчас сделаю тест нагрузки, посмотрю что там да как.
avatar
ну и логичный вопрос:
что стоит на Вашем сервере? полный список установленных модулей, включая isp, phpmyadmin и т.д., если есть.
avatar
debian6 + apache + nginx + mod_php + memcache + apc + ioncube
панель — isplite, phpmyadmin, webmail (не пользуюсь)
рабочих сайта 2 — посещаемость в сумме ~1500, размер одной базы ~500M и второй ~200M
список плагинов:
Admvote
AutoAlt
Blogs Autoconnect Plugin
Categorize
DAO
EC
Fast start
Greeting new user
HelpPage
Livestreet Userhacks Plugin
Main preview topic
Must Have Blogs
NiceURL
Only Upvote
QIP Smiles
Robostat
SEO
Similar topics in popup
Simple Rating
Simple Search and Auto Completer
Sitemap
Static page
Tags like full
Talk not read
Template Social
Topic info
Tricky Title
URL Redirect
Use Round Corners
Use Watermark
История сессий
Камера
Наверх (Up Plugin)
Обратная связь
Отключение персональных блогов
avatar
LS 1.0.3
avatar
1. isp+phpmyadmin = -20% к мощности сервера. Раз сервер VPS, то наверняка на технологии OpenVZ, а значит зависите от соседей по узлу — у них нагрузка идет на сервер, на Вас она тоже распространяется.

2. Куча плагинов, из которых далеко не все работают оптимизированно.

3. Вопрос, как настроены nginx, apache и mod_php

вот Вам список возможных тормозов
avatar
кстати, а php5-fpm почему не установили? — очень полезная штука для снижения нагрузок.
avatar
ОЗУ особо не влияет на скорость рендеринга страницы, если под memcache у вас выделено больше нужного (у меня 1-2 Гб хватает с головой).
APC жрет еще 128Мб.
А памяти обще 128Гб
Причем, когда было всего 48Гб ОЗУ на сервере, время загрузки страницы было такое же — порядка 0,5-0,6 с для главной и 0,2 — 0,3 с для топика.
ЛС ест больше процессор, чем ОЗУ
avatar
ну, тем не менее: memcached + apc + sphinx (я не понял, есть он у ТС или нет) + phpmyadmin + mysql это уже очень нехилое потребление ОЗУ, а, если учесть, что ее всего 2гб, то работает все это в натяг.
avatar
судя по числам, проблема не в mysql.
Скорее всего, какой-то плагин куда-то стучится за инфой и долго ее потом обрабатывает
avatar
Такс, это график от loadimpact:

По поводу php-fpm — даже не знаю, как-то не думал, хотя в свете последних событий думаю стоит переходить.
Sphinx'a нету, решил пока не ставить, пока с этими фултаймами не разберусь.
Да, VPS на OpenVZ, вполне возможно, что это тоже влияет.
Конфиги выложу в топик.
avatar
у меня под одним из сайтов похожий сервер стоит + php5-fpm. Загрузка страниц обычно занимает 0.6-0.8 (php full time), а такой же тест показывает на 10 сек. меньше почти по всем точкам. Так что, поставьте php5-fpm и настройте его работу с остальными модулями.
avatar
попробуйте вырубить все плагины, как изменится время?
Хотя бы для своего айпи
avatar
1. 2Gb оперативки, если нормально настроено, хватит довольно прилично нагруженному сайту со всеми наворотами.

2. IMHO — У вас слабый по CPU сервер. Слабый и не стабильный (в том смысле, что в какие-то моменты времени, сайту доступно меньше CPU чем в другие).
avatar
так у него время теряется где-то между запросами в базу.
получается инициализация модулей + запросы в бд + запросы в кеш составляют 7-10% времени.
avatar
либо запросы отрабатываются быстро, а затем так долго компилятся шаблоны
avatar
Что как раз и есть признак проблем с CPU.
avatar
да, я тоже так считаю, но возможно что-то нагружает CPU больше остального
avatar
мы для себя уже давно решили, что дешевле порой купить железо, чем бесконечно оптимизировать код.
avatar
Сейчас это действительно так. Железо непрерывно дешевеет, труд программистов непрерывно дорожает. :)
avatar
Возможно получится пригласить сюда автора mySKU.ru
avatar
на перечисленных проектах вполне может стоять фронтенд кеш.
То есть для незарегистрированных отдается кешированная страница.
avatar
php5-fpm
— ключевое слово
avatar
Отпишусь, как администратор mysku

Используется LS 0.4.1, так получилось на момент старта проекта.

Используется свзяка LS+memcache+sphix+mysql

LS работает под apache, никаких php-fpm не используется, размер memcache — 128 мбайт.
вся статика вынесена на отдельный поддомен и отдается nginx, все картинки которые пользователи загружают на сайт тоже отдаются через nginx

Каких-то особых шагов по оптимизации не делалось, плагинов стоит довольно мало и 50% из них самописные. Все стоковые плагины модифицировалсь, чтобы не использовать делегирование шаблонов.

Для удобства управления весь сайт работает в своей собственной openvz машине. mysql вынесен на отдельный сервер с ssd дисками. mysql пришлось вынести не из-за LS, а из-за другого проекта который когда-то тоже жил на моем сервере.

По большому счету, я не заметил каких-либо чрезмерных потребностей со стороны LS. На сервере за 50-60 евро hetzner все вполне нормально летает. Те достаточно более-менее современный сервер + снять статику с апача и все будет нормально.
avatar
Все стоковые плагины модифицировалсь, чтобы не использовать делегирование шаблонов.
А делегирование шаблонов — это плохо?
avatar
нет это не плохо.
avatar
«сервере за 50-60 евро hetzner» — это довольно таки не слабо. 16Gb, мощный СPU, быстрые винты. Конфигурации автора до этого очень далеко.
avatar
Так ведь автор спросил — а как работают сайты на LS?, я поделился опытом. Если бы автора спросил — а как мне запустить сайт на VPS c параметрами X,Y,Z — я бы промолчал — тут мне сказать нечего.
avatar
Справедливо :)
avatar
а как Вы реализовали кэширование статики nginx? livestreet.ru/blog/16187.html тут я создал подобную тему. Вы в настройках nginx.conf проверяете через:
proxy_cache_bypass $cookie_key;
proxy_no_cache $cookie_key;
?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.