Неделю назад, я очень заинтересовался темой ускорения и оптимизации движка PrestaShop, т.к.
Для просмотра ссылки Войди или Зарегистрируйся показал время ответа сервера 1,7 сек вместо рекомендуемых 200 мс, что меня сильно насторожило, обеспокоило и я начал разбираться как улучшить этот показатель.
Почему это важно? - вроде ничего страшного... А важно это потому, что этот показатель влияет на ваш рейтинг в поисковой выдаче систем: Google, Яндекс и т.п. - это раз.
Во вторых пользователи заходящие на ваш сайт будут приятно рады высокой скорости загрузки страниц вашего сайта.
В процессе поиска ответа на вопрос "Как уменьшить время ответа сервера" в интернете, первое на что я обратил внимание это множественные советы из серии: "Ставь VPS и будет тебе счастье". Что такое VPS в тот момент я знал только отдаленно, что и привело к изучению данного вопроса. Более того я не знал как устроен обычный хостинг сайтов, которым я пользуюсь уже более 5 лет, за что кстати спасибо
Для просмотра ссылки Войди или Зарегистрируйся за совет и "пинок" в данном направлении
Что такое обычный хостинг?
Если вы не знаете, что такое VPS или не когда им не пользовались, то скорее всего ваш сайт находится на обычном хостинге. Обычный хостинг - это когда вы регистрируетесь в системе хост провайдера, платите определенную сумму за обслуживание вашего сайта и получаете готовый, настроенный пакет - web сервер куда вы уже подключаете свой сайт и мозг даже не забиваете тем, что такое: apache, php, mysql, прочее и как это все работает. Все это лишь висит у вас на слуху, но не более того, т.к. все что вам нужно это доступ по: ftp и phpmyadmin.
Более того, обычный хостинг характерен тем, что физически из себя он представляет множество серверов, которые распределены между клиентами хостинга. Т.е. например у вас есть сайт, этот сайт физически находится где-то на каком-то сервере. Но на этом сервере размещены еще 40 сайтов помимо вашего - других клиентов вашего хост провайдера. В этом легко убедиться перейдя по следующей ссылке -
Для просмотра ссылки Войди или Зарегистрируйся.
Т.к. физически сервер это компьютер, у которого есть процессор, оперативная память и прочие компоненты, то эти ресурсы за исключением пространства на жестком диске (т.к. оно фиксировано для вашего сайта) одновременно распределяются на все сайты работающие на этом сервере. Это говорит о том, что если на вашем сервере есть кто-то у кого сайт "кушает" много ресурсов, допустим 30% процессора, то он и будет получать эти 30%. А если на сервере еще 4 сайта которые кушают по 30% каждый, что произойдет? - правильно - перегрузка процессора - он не сможет выдавать такое количество и начнет "тупить".
Но благо хост-провайдеры тоже не дураки(надеюсь), таких случаев стараются не допускать, вводят различные системы ограничений и контроля своих серверов.
В общем главная суть в том, что если ваш сайт хочет "кушать" а "подкормки" ему не хватает, его производительность уменьшается. И чтобы решить эту задачу, сайту нужно дать больше свободы и ресурсов - для этого и существует VPS.
Что такое VPS и чем он отличается от обычного хостинга?
VPS(
Virtual Private Server) или VDS(
Virtual Dedicated Server) - Виртуальный выделенный сервер.
В целом принцип работы VPS схож с обычным хостингом
НО
1. Отличается от обычного хостинга тем, что вы получаете свои собственные ресурсы компьютера (процессор, память и т.п.) и кроме вас, на эти ресурсы никто уже не претендует.
Т.е. получаете например процессор 2000 MHz, 512 Mb оперативы - и делайте с ними что хотите.
Если вам нужна более мощная конфигурация, например 2 ядра процессора по 2000 MHz, 2 Gb оперативы - пожалуйста, но это уже будет стоит дороже и т.д.
Как правило определенная конфигурация тарифицируется у хост-провайдера и в зависимости от того, что нужно вам, вы подбираете оптимальный для себя тариф.
Для старта интернет магазина на движке PrestaShop 1.6.1.4 я бы рекомендовал стартовые тарифы, стоят они примерно в среднем по 250-300 р. в мес. и такого тарифа более чем достаточно, при условии, что у вас на сервере не планируются какие-то еще параллельные существенные нагрузки, такие как: другие сайты, серваки для компьтерных игр и т.п. Хотя и это возможно, но будет требовать от вас контроля состояния работы вашего сервера. Например мне понравились тарифы от
Для просмотра ссылки Войди или Зарегистрируйся Сам еще этот хостинг не тестировал, но слышал положительные отзывы о нем. Для бесплатного теста (3 дня) рекомендую
Для просмотра ссылки Войди или Зарегистрируйся - у них конфигурация тарифов будет скромнее, но у них удобный и не замороченный интерфейс админки, все ставится быстро и для набивки руки в настройке VPS - самое то + можно платить за услуги по дневной тарификации (закончился тестовый период - кинул 100 рублей и получил еще 10 дней без особого гемора).
2. Также существенное отличие VPS от обычного хостинга - вы получаете голый сервер с предустановленной операционной системой (Windows, Linux и аналоги). Как правило для развертки web сервера используют Linux, в частности я использую его разновидность - Debian7.
Преимущества: можете делать со своим сервером что-угодно: ставить предпочтительную версию apache, php, mysql и прочие нужные пакеты.
Недостатки: требуются не малые знания по развертке и конфигурации web сервера и других задач. Даже самые подробные гайды и мануалы не обеспечат гарантию того, что у вас все будет работать как надо, т.к. на разных хостингах вам предоставят VPS с различными конфигурациями операционных систем. Т.е. на одном хостинге вы получите предустановленный apache а на другом нет и тоже самое с другими основными пакетами, которые играют важную роль для развертки полнофункционального web сервера. Но мы это исправим в следующей статье -
я подробно напишу как гарантированно развернуть web сервер для вашего сайта на VPS не имея никаких основных знаний кроме как щелкать мышкой по экрану и бить пальцами по клавиатуре
Вывод из этого пункта: Чтобы поставить полнофункциональный web сервер на VPS нужно: обратиться за помощью к специалистам или вникнуть в этот процесс и потратить немало времени на изучение данного вопроса.
Сравнение систем кеширования (акселераторов) для php: APC, Xcache, OpCache и выбор оптимального варианта:
Наверняка каждый из вас кто хотел ускорить работу своего интернет-магазина на движке PrestaShop, обратил внимание на раздел в админке: Конфигурация - Результат.
Если пролистать страницу вниз, то мы обнаружим подзаголовок: "Кеширование" и ползунок под ним - "Использовать кеширование".
Если активировать этот ползунок, то нам на выбор предложат выбрать подходящую для нас систему кеширования.
Не буду вдаваться в подробности, дабы не засорять ваш мозг, скажу что установил и протестировал каждую систему, прочитал кучу информации про каждую из них, немного чокнулся %)
Для тех кому интересно про них почитать - Яндекс в помощь
Для просмотра ссылки Войди или Зарегистрируйся, где наглядно представлена сравнительная информация касательно производительности разных систем кеширования.
Для тех кто юзает VPS:
Скажу одно - отключайте ползунок "Использовать кеширование" и если у вас версия php 5.2, 5.3, 5.4 то ставьте Zend OPcache.
Для просмотра ссылки Войди или Зарегистрируйся
Также рекомендую почитать:
Для просмотра ссылки Войди или Зарегистрируйся.
Если у вас версия php 5.5 и выше то Zend OPcache уже установлен у вас по дефолту.
Для проверки в Debian воспользуйтесь командой:
Должно появится, что-то вроде этого:
Код:
PHP 5.5.30-1~dotdeb+7.1 (cli) (built: Oct 1 2015 18:17:01)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
Видим рабочий Zend OPcache версии v7.0.6-dev - отлично!
Для мониторинга работы Zend OPcache нужно расширение -
Для просмотра ссылки Войди или Зарегистрируйся файл, переименуйте например в op.php и поместите его в корень вашего сайта.
Для доступа к интерфейсу введите:
Для просмотра ссылки Войди или Зарегистрируйся
Для настройки Zend OPcache выполните команду на сервере(Debian) :
Код:
nano /etc/php5/mods-available/opcache.ini
Как лучше настроить написано
Для просмотра ссылки Войди или Зарегистрируйся.
Для тех кто пользуется обычным хостингом:
Если у вас обычный хостинг, то вам нужно узнать конфигурацию вашего сервера (можно через Престу в админке - Конфигурация - Информация - подзаголовок: Информация о сервере) и далее в зависимости от того, что вы хотите(например сменить версию php или поставить Zend OpCache на текущую), уже договариваться с тех. поддержкой вашего хостинга, чтобы узнать возможно ли это сделать.