Проснулся сутра от телефона, который сообщил что упал сервак. Подключился и увидел высокий LA, сервер ВПС, а не полноценный дедик, беглый анализ показал что ВПСку вешает апач, много запросов на один домен. Решил прикрутить акселератор для php. Еще во времена админства у одного из хотсеров рунета, привык к eaccelerator, выручал не раз, решил и тут так же сделать.
Как бы ставить и настраивать ничего военного.
Сначала установил недостающие модули:
1 |
apt-get install build-essential php5-dev |
После этого, качаем сам eAccelerator:
1 2 3 4 5 6 7 8 9 |
cd /usr/src/ wget https://github.com/eaccelerator/eaccelerator/zipball/master mv master master.zip unzip master.zip cd eaccelerator-eaccelerator-42067ac phpize ./configure make make install |
После этого настраиваем сам млдуль:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
vim /etc/php5/conf.d/eaccelerator.ini extension="eaccelerator.so" eaccelerator.shm_size="128" eaccelerator.cache_dir="/var/cache/eaccelerator" eaccelerator.log_file = "/var/log/eaccelerator.log" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.check_mtime="1" eaccelerator.shm_prune_period="3600" eaccelerator.shm_ttl="3600" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="1" eaccelerator.compress="1" eaccelerator.compress_level="9" |
Так как у меня в настройках стоит для кеша 128 мегабайт, то нужно в ядре увеличить размер шаред памяти:
1 2 |
echo 'kernel.shmmax = 134217728' >>/etc/sysctl.conf sysctl -p |
Создаем каталог для кеша и лог-файл, перезапукаем апач и проверяем наличие модуля:
1 2 3 4 5 6 7 8 9 10 |
touch /var/log/eaccelerator.log chmod 666 /var/log/eaccelerator.log mkdir -p /var/cache/eaccelerator chown www-data:www-data /var/cache/eaccelerator /etc/init.d/apache2 restart root@scootvl:/usr/src# php -m|grep eAcc eAccelerator |
После этого ждем пока “прогреется кеш” и нагрузка спадет.