![]() |
Снижение нагрузки на VPS (OpenVZ)
Снижение нагрузки на VPS (OpenVZ)
Задача: Снизить потребление памяти на VPS построенной по технологии OpenVZ, снижение нагрузки. Вступление: Купил недавно себе VPS построенный на технологии OpenVZ, конфигурация – CPU 1100 Mhz / RAM 512 Mb. Технология виртуализации OpenVZ отличается к примеру от XEN тем, что в OpenVZ ограничивается виртуальная память и это снижает производительность, в моменты когда системе нужно больше ресурсов, а их нету. Изначально не настроенный VPS с ОС Debian Lenny и установленным LAMP со всеми приблудами потреблял около 300 – 350 Mb RAM, что было очень странно. После оптимизации потребление сократилось вдвое. В статье я опишу как снизить потребление памяти путем уменьшения размера стека выделяемого под каждый запущенный процесс, ускорить обработку PHP скриптов средствами eAccelerator. 1. Подрежем стек Итак как я выше писал, на каждый запущенный тред в виртуальной памяти выделяется место под стек. В моем случае в Debian Lenny размер стека равен 10 Mb. Это очень много и при большом количестве тредов потребление памяти будет огромным. Просмотреть размер стека можно командой: Код:
root@vds:~# ulimit –sРазмер стека в 10 Mb велик и его можно и нужно снизить, дабы не порождались пустые выделения памяти на каждый тред. Погуглив и почитав манов я остановился на размере в 1 Mb. Уменьшить его можно командой: Код:
ulimit -s <размер стека на тред в Кб>2. eAccelerator eAccelerator по сути своей является PHP-акселератором, основное назначение которого состоит в кэшировании бинарного представления кода. Каждый раз при выполнении скрипта, PHP читает все подключаемые файлы и переводит их в бинарный код, при запросе скрипта операция повторяется. Задача eAccelerator состоит в сохранении бинарного кода для повторного использования, уменьшая время выполнения скрипта. Установка и настройка его довольно проста и не должна вызвать никаких проблем. Для установки и компиляции акселератора понадобится пакет php5-dev, устанавливаем его: Код:
apt-get install build-essential php5-devКод:
cd /tmpКод:
vi /etc/php5/conf.d/eaccelerator.iniКод:
extension="eaccelerator.so"Код:
mkdir -p /var/cache/eacceleratorКод:
/etc/init.d/apache2 restartИспользуемые материалы при написании: http://www.howtoforge.com/eaccelerator_php5_debian_etch http://www.eaccelerator.net/wiki/Settings |
Супер! Теперь сервер потребляет около 150мб оперативы!
|
спасибо оч полезная статейка) лови хрестики)
|
ulimit –s
помогает только для уменшения нагрузки от веб сервера? как по поводу скула? |
скул надо разгружать настройками. отключением поддержки ненужных форматов таблиц и БД
|
поподробнее можешь?
стукни в асю 108373 или дай свою |
Еще пару советов от меня :)
Апач советую сразу грохнуть и перевести сервер на nginx+fastcgi дает заметный прирост в производительности и снижает потребление ОЗУ. Очень часто кол-во открытых одновременно соединений на ВПС ограничено. Поэтому MySQL и fastcgi лучше всего перевести на unix-сокеты. После этого в my.cnf можно добавить Код:
skip-innodb Код:
keepalive-timeout 0; |
Хорошая статейка постарался!
|
| Время: 06:04 |