Сайт мы обновили, но про него еще почти ничего не рассказывали. А рассказать есть очень много чего, и мы постепенно обязательно будет это делать.
А сегодня я немного расскажу про производительность сайта. Для начала сразу скажу, что у нас на сегодня на сайте почти нет никакого кеширования. Все блоги, топики, комментарии и т.п. — это все в риалтайме, без всякого кеширования. Более того, выборка всех данных выполняется с учетом прав доступов, ведь здесь есть и закрытые разделы сайта, доступные только полноправным членам Клуба или другим группам пользователей. То есть если пользователь не авторизован или новичок, он видит одни списки блогов, топиков, комментариев, а если пользователь более привилегированный, то он видит другой, более обширный список. Если более детально, то все работает так: есть блоги (разделы), в этих блогах есть топики, а в топиках есть комментарии. Пользователям предоставляются права к тем или иным блогам. Если на блок не установлено никаких политик доступов, то он доступен всем (это все стандартные механизмы политик безопасности MODX). И вот когда выполняется выборка топиков, то это выполняется с учетом того, в каких блогах эти топики находятся и имеет ли права пользователь на эти блоги. То же самое и с комментариями, только еще более сложно — выполняется выборка тех комментариев, которые выполнены в топиках, которые находятся в блогах, к которым имеет доступ пользователь :)
Забегая вперед, в дальнейшем будет реализован функционал, когда пользователи смогут создавать свои собственные закрытые блоги, куда смогут давать доступ только тем, кому пожелают.
Итак, самая нагруженная страница здесь — это страница всех комментариев: http://modxclub.ru/comments/. Там 120+ страниц по 20 комментариев, то есть почти 2500 комментов. Плюс меню в шапке, а так же блоки справа (комментарии, топики, блоги). И все это без кеширования и с учетом политик безопасности. Время рендеринга страницы — 0.5 — 0.7 секунд. Считаю, очень неплохо. Еще когда время будет, поработаю над оптимизацией всего этого, наверняка смогу еще получить прирост в производительности.
По поводу сервера: двухядерный облачный сервер с 4Гб оперативки за 40 баксов на digitalocean.com (взял из расчета значительного запаса). Наблюдая за htop — он просто спит. Вот статистика системы:
1 [ 0.0%] Tasks: 49, 95 thr; 1 running
2 [|| 1.3%] Load average: 0.00 0.01 0.05
Mem[||||||||||||||||||||||||||||||||||||||||||||||||||636/3954MB] Uptime: 23 days, 01:31:55
Swp[ 0/0MB]
Кстати, если у кого-то есть замечания на счет скорости работы сайта — обязательно сообщайте со ссылкой на проблемную страницу.
Перевел кеширование на memcached. Прирост производительности еще процентов 20. Среднее время рендеринга страницы - 0.3-0.5 сек. Вообще уже не плохо :)
Вот страница, на которой больше всего комментариев (127) http://modxclub.ru/blog/dokumentatsiya-dlya-spetsialistov/147.html
Рендеринг 1.6 на холодную, и потом 0.6-1.1 сек.