Не секрет что даже вообще на дорогих тарифах сайт тупит. Тарфи вроде нормальный. Все тробования к серверу вроде выполнены, но страницы открываются все равно долго, а показатели по гуглу не растут. Часто это проблема именно хостинга, который заманивает посетителя дешевыми тарифами, и вроде как высокими ресурсами. Но кроме процессора и ОЗУ есть еще ряд характеристик влияющих на быстродействие. В первую очередь это файловая система.
Да можно настроить кэширование в браузере, на сервере и MySQL, поставить Memcache и вывести временные файлы в tmpfs. Но сайт не разгоняется. Для примера сайт на Битрикс. Кстати показатели на PageSpeed Insights с самого начала держались на 60/72 и так и не сдвинулись с мертвой точки. Хотя внутри сервер много чего происходило и метрики росли. По просьбе владельца была установлена панель Vesta, которая вообщем правильно настраивает конфигурацию nginx + Apache с кэширование, сжатием, выдачей статики и прочими плюсами. Установлен PHP5.6 с OPcache.
Виртуальный сервер 2 cores 2.66+ GHz Процессор и 2 Gb DDR3 ECC. Этого маловато для Битрикс, но нагрузка процессора редко достигала максимальной (кроме откровенного DOS при помощи ab). Памяти тоже хватало.
Оценка конфигурации после установки 15.27 (желателен минимум 30). Обратите внимание на показатели файловой системы 3118. Главная страница на этом этапе грузилась 1.2 сек.
Выполнены условия по PHP и включен кэш MySQL. Показатель 20.75. Файловая система — 3833. Отклик главной страницы на этом этапе (по гуглу) 0.73с.
Установлены оптимальные значения для кэширования для кэша MySQL.
Показатель 19.43. Файловая система — 5497. Отклик 0.73с
Не смотря на совет не делать этого, владелец принял решение увеличить тариф. Теперь 4 cores 2.66+ GHz Процессор и 4 Gb DDR3 ECC.
Показатель 19.75. Файловая система — 7487. Отклик по прежнему ~0.73с
Включен Memcached
# yum install memcached php56-php-pecl-memcached
# nano /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="1024"
# nano bitrix/php_intarface/dbconn.php
define("BX_CACHE_TYPE", "memcache");
define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
define("BX_MEMCACHE_HOST", "127.0.0.1");
define("BX_MEMCACHE_PORT", "11211");
# service memcached restart
# netstat -ant | grep 11211
Показатель не изменился. Тогда memcached был перестроен на сокет
# nano /etc/sysconfig/memcached
...
OPTIONS="t 8 -s /tmp/memcached.sock"
# nano bitrix/php_intarface/dbconn.php
define("BX_CACHE_TYPE", "memcache");
define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
define("BX_MEMCACHE_HOST", "unix:///tmp/memcached.sock");
define("BX_MEMCACHE_PORT", "0");
# service memcached restart
Показатель 22.74. Файловая система — 6388. Отклик ~0.68с
Следующий этап вывод временных файлов MySQL в ОЗУ.
#mkdir /var/lib/mysql/tmp
#chown mysql:mysql /var/lib/mysql/tmp
# id mysql
uid=27(mysql) gid=27(mysql) groups=27(mysql)
# nano /etc/fstab
tmpfs /var/lib/mysql/tmp tmpfs rw,gid=27,uid=27,size=4G,nr_inodes=10k,mode=0700 0 0
# mount /var/lib/mysql/tmp
# service mysqld restart
Показатель 21.23. Файловая система — 6184. Отклик ~0.23с