Опыт настройки Apache под большой трафик

Все вопросы касающиеся скрипта ТДС и системы покупки трафика TS пишите сюда. Ответы на вопросы тоже сюда.

Модератор: Begemot

Ответить
Begemot
Site Admin
Сообщения: 1145
Зарегистрирован: Вс май 01, 2005 3:20 pm

Опыт настройки Apache под большой трафик

Сообщение Begemot » Вт янв 19, 2016 8:59 pm

Клиент поделился своим опытом настройки апача, выкладываю его здесь:

Приветствую - может кому пригодится.
Что мы имеем:
- Дедик - AMD Opteron 3365, RAM - 32Gb, SW RAID - 2x 1Tb SATA3, 300mbps unmetered
- Sutra TDS в которой используется 6 схем, максимальное кол-вл правил в одной схеме на данный момент 2800 (все правила побиты по группам, это где то 300 групп, на 1 группу до 10 правил)
- На данный момент +- 5 лямов обращений в сутки.

В станадртном режиме на дедики ставится (с панелью или без), но в дефолте все ставят apache2-prefork, а для работы сутры подключают cgi модуль. Минус тут огромный и естественный
- префорк ограничен процессами, да и всем известно процессы тяжелые для системы

Я для ускорения работы и что бы больше вывозил снес апач префорк и поставл воркер+пхп(для своих нужд):

apt-get install apache2-mpm-worker libapache2-mod-fcgid
a2enmod fcgid actions
apt-get install php5-cgi php5-cli

Далее настраиваю виртуалхост в апаче для сутры:

<VirtualHost 1.1.1.1:80>
ServerName sutra.com
AddDefaultCharset UTF-8
DirectoryIndex index.html index.php
DocumentRoot /home/sutra/public_html
ServerAdmin webmaster@sutra.com
ServerAlias http://www.sutra.com
CustomLog /var/www/httpd-logs/sutra.com.access.log combined
ErrorLog /var/www/httpd-logs/sutra.com.error.log
</VirtualHost>
<Directory /home/sutra/public_html>
AddType application/x-httpd-php .php
AddHandler fcgid-script .php
AddHandler fcgid-script php5
FCGIWrapper /home/sutra/fcgi-bin/php .php
FCGIWrapper /home/sutra/fcgi-bin/php .php5
Options +ExecCGI
Options +Includes
</Directory>

Настраиваю враппер для пхп:
mkdir -p /home/sutra/fcgi-bin


создаю файл обертки и в него пишу:

#!/bin/bash
PHPRC=$PWD/../etc/php5
export PHPRC
umask 022
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=99999
export PHP_FCGI_MAX_REQUESTS
SCRIPT_FILENAME=$PATH_TRANSLATED
export SCRIPT_FILENAME
exec /usr/bin/php5-cgi

Далее настриваю делаю конфиг пхп
mkdir -p /home/meelba/etc
cp /etc/php5/cgi/php.ini /home/meelba/etc/


Далее нстраиваю fcgi для апача:
fcgid.conf


<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
FcgidConnectTimeout 400
FcgidMaxRequestLen 10737418
PHP_Fix_Pathinfo_Enable 1
DefaultMaxClassProcessCount 25
MaxProcessCount 2000
FcgidMaxProcesses 8
FcgidMaxProcessesPerClass 8
FcgidMinProcessesPerClass 1
FcgidMaxRequestsPerProcess 0
FcgidIOTimeout 700
FcgidProcessLifeTime 3600
FcgidIdleTimeout 300
FcgidIdleScanInterval 120
FcgidBusyTimeout 60
FcgidBusyScanInterval 60
FcgidZombieScanInterval 3
FcgidErrorScanInterval 3
FcgidSpawnScore 1
FcgidTerminationScore 2
FcgidTimeScore 1
FcgidSpawnScoreUpLimit 10
IPCConnectTimeout 3
IPCCommTimeout 60
</IfModule>


Далее настраиваю апач, по сути тут то и настроек не много, я просто задал для режима воркер кол-во нитей:

<IfModule mpm_worker_module>
StartServers 50
MinSpareThreads 100
MaxSpareThreads 200
ThreadLimit 1000
ThreadsPerChild 1000
ServerLimit 4096
MaxClients 3000
MaxRequestsPerChild 0
</IfModule>

По факту и все, стартанул апач и все работает. С префорком я выставлял до 2000 процессов но система ложилась, LA скакал до 40 где то, при это куча 503 ошибок....

Вроде ничего не пропсутил. По факту при том кол-ве запросов что у меня на сервак идет, нагрузка на проц 20%, память около 8-10Гб.

Если чего то еще вылезет - буду или спрашивать, или поделюсь .

Ссылка:
BBcode:
HTML:
Скрыть ссылки на пост
Показать ссылки на пост

Ответить