Оптимизация производительности

Проверка размера свопа

Проверьте объем выделенной памяти по своп. Чтобы сделать это выполните

root# free -m
              total        used        free      shared  buff/cache   available
Mem:           3950         686         147          75        3116        2921
Swap:          2047           0        2047

Чтобы создать своп файл такого же размера, как RAM в Cent OS 7.2 и выше выполните

curl https://keitarotds.com/install.sh -sSL | bash -s -- -t swap -r

Установка Redis для хранилища статистики

Инструкция по установке Redis. После установки включите его на странице «Производительность».

Оптимизация MySQL

Запустите анализатор нагрузки MySQL:

wget https://raw.github.com/major/MySQLTuner-perl/master/mysqltuner.pl
perl mysqltuner.pl

Следуя рекомендациям, измените настройки в файле /etc/my.cnf.

Установка TokuDB для MySQL (MariaDB, Percona)

TokuDB сэкономит место на диске и увеличит скорость построения сложных отчетов.

Инструкция по установке плагина для mariadb https://mariadb.com/kb/en/mariadb/enabling-tokudb

Инструкция для Percona Server https://www.percona.com/doc/percona-server/LATEST/index.html#tokudb

Перевести базу на TokuDB вы можете на странице «Обслуживание > Состояние». Кнопка доступна только если TokuDB установлен и активен.

Замена MySQL на MariaDB (CentOS 6)

Откройте файл:

nano /etc/yum.repo.d/maria.repo

Скопируйте содержимое:

# MariaDB 10.1 CentOS repository list - created 2016-09-20 13:33 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Откройте файл

nano /etc/yum.conf

Удалите из него

exclude=maria* php55*
yum remove mysql
yum install MariaDB-server
service mysql start
mysql_upgrade
chkconfig mysql on

Если будут ошибки в PHP, переустановите пакет php-mysql:

yum remove php-mysql
yum install php-mysql

Включение Gzip-сжатия в Nginx

В конфиге /etc/nginx/nginx.conf. Найдите секцию http { }. Добавьте внутрь:

  # Compression
  gzip                on;
  gzip_comp_level     6;
  gzip_min_length     4096;
  gzip_buffers        8 64k;
  gzip_types          text/plain text/css text/javascript text/js text/xml application/json application/javascript application/x-javascript application/xml application/xml+rss
  gzip_proxied        any;
  gzip_disable        "msie";
  # cache informations about FDs, frequently accessed files
  # can boost performance
  open_file_cache          max=10000 inactive=30s;
  open_file_cache_valid    60s;
  open_file_cache_min_uses 2;
  open_file_cache_errors   on;

Оптимизация Apache

Apache практически невозможно ускорить. Если есть возможность, используйте PHP-FPM.

Оптимизация через настройки Keitaro

  • Выставите срок хранения данных, чтобы старые данные вычищались.