Оптимизация Nginx+PHP-FPM

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

1.Выставляем кол-во процессов Nginx равное кол-ву процессоров в системе.

Максимальное количество соединений одного рабочего процесса. Следует выбирать значения от 1024 до 4096. Метод выбора соединений . Для Linux – epoll, для FreeBSD — kqueue. Ngix будет принимать максимально возможное количество соединений.

2. Включаем sendfile, tcp_nopush, tcp_nodelay, отключаем показ версии Nginx, увеличиваем types_hash_max_size вдвое(по умолчанию 1024).

3. Уменьшаем тайм-ауты

4.Включаем кеширование информации об открытых файлах. Определяет максимальное количество файлов, информация о которых будет содержаться в кеше. Определяет через какое время информация будет удалена из кеша. Будет кешировать информацию о тех файлах, которые были использованы хотя бы 2 раза. Будет кешировать информацию об отсутствующих файлах.

5.Включаем поддержку сжатия.

6.Если используются SSL-соединение,то включаем кеширование SSL-сессий, поддержку протокола HTTP/2(для Nginx с версии 1.9.6 и выше), а также некоторые настройки для улучшения безопасности

Проверка поддержки HTTP-протокола второй версии WEB-сервером
https://tools.keycdn.com/http2-test

7. Измененяем параметры относительно Fastcgi-буферов

8. Включаем кеширование браузерами клиента статических файлов, содержимое которых редко изменяется. Изменения делаем в секции servers в виртуальном хосте.

9.Отключение ведения логов доступа к статическим файлам.

Оптимизация PHP-FPM

1.Установливаем PHP-ускоритель(кеширование PHP-кода)( Xcache или APC — для PHP-версии 5.3 и ниже. Для версии 5.4+ настраивать нужно Opcache)

Настройка Opcache описана в отдельной статье
https://kamaok.org.ua/?p=889

2.Установка параметров php-fpm.

3.Использование Unix-сокета вместо TCP.

Увеличение максимального количества разрешенных подключений к Unix-сокету

Оптимизация TCP/IP-стека

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

Используем скрипты для оптимизации настроек MySQL в файле my.cnf

1.mysqltuner.pl (http://blog.mysqltuner.com/)

2.tuning-primer.sh (http://www.day32.com/MySQL/)

Анализ переменных MySQL(на основе SHOW VARIABLES) и вывод рекомендаций
pt-variable-advisor из набора Percona Toolkit (https://www.percona.com/doc/percona-toolkit/3.0/pt-variable-advisor.html)

 

Источник:

1.http://www.howtoforge.com/configuring-your-lemp-system-linux-nginx-mysql-php-fpm-for-maximum-performance
2.http://www.nginxtips.com/nginx-optimization-the-definitive-guide/

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

Яндекс.Метрика