ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Снижение нагрузки на VPS (OpenVZ)
  #1  
Старый 10.08.2009, 15:51
Аватар для iron-viper
iron-viper
Участник форума
Регистрация: 13.11.2007
Сообщений: 180
Провел на форуме:
1058585

Репутация: 122
По умолчанию Снижение нагрузки на 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
1024
в ответ будет получен объем в килобайтах. У меня это уже измененный размер.
Размер стека в 10 Mb велик и его можно и нужно снизить, дабы не порождались пустые выделения памяти на каждый тред. Погуглив и почитав манов я остановился на размере в 1 Mb. Уменьшить его можно командой:

Код:
ulimit -s <размер стека на тред в Кб>
В итоге пописываем ulimit -s 1024 в файле /etc/init.d/rc (по выше), ребутим сервер и радуемся снижением потребления памяти.

2. eAccelerator
eAccelerator по сути своей является PHP-акселератором, основное назначение которого состоит в кэшировании бинарного представления кода. Каждый раз при выполнении скрипта, PHP читает все подключаемые файлы и переводит их в бинарный код, при запросе скрипта операция повторяется. Задача eAccelerator состоит в сохранении бинарного кода для повторного использования, уменьшая время выполнения скрипта.
Установка и настройка его довольно проста и не должна вызвать никаких проблем.
Для установки и компиляции акселератора понадобится пакет php5-dev, устанавливаем его:

Код:
apt-get install build-essential php5-dev
Теперь нужо скачать и становить акселератор, так как он не входит в состав репозиторий для Debian:

Код:
cd /tmp
wget http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.3.tar.bz2
tar xvfj eaccelerator-0.9.5.2.tar.bz2
cd eaccelerator-0.9.5.2
phpize
./configure
make
make install
После удачной установки необходимо создать файл конфигурации :

Код:
vi /etc/php5/conf.d/eaccelerator.ini
И внести в него строки:

Код:
extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
Директория /var/cache/eaccelerator будет испотзоваться акселератором для хранения кэша, поэтому ее необходимо создать и выставить на нее права 0777:

Код:
mkdir -p /var/cache/eaccelerator
chmod 0777 /var/cache/eaccelerator
После всех действий рестартим апач и наблюдаем работу акселератора:

Код:
/etc/init.d/apache2 restart
Выводы: данная статья написана для тех, кто еще не постиг основы работы систем симейства Unix в среде OpenVZ, нацелена на новичков коим являюсь и я сам. Данные методы помогли мне снизить потребление памяти на VPS до 200-230 Mb + снижение нагрузки на процессор.

Используемые материалы при написании:

http://www.howtoforge.com/eaccelerator_php5_debian_etch
http://www.eaccelerator.net/wiki/Settings

Последний раз редактировалось iron-viper; 10.08.2009 в 21:45..
 
Ответить с цитированием

  #2  
Старый 10.08.2009, 16:24
Аватар для inlanger
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

Супер! Теперь сервер потребляет около 150мб оперативы!
 
Ответить с цитированием

  #3  
Старый 10.08.2009, 21:38
Аватар для Foka
Foka
Banned
Регистрация: 13.02.2008
Сообщений: 129
Провел на форуме:
1608665

Репутация: 124
Отправить сообщение для Foka с помощью ICQ
По умолчанию

спасибо оч полезная статейка) лови хрестики)
 
Ответить с цитированием

  #4  
Старый 31.08.2009, 17:08
Аватар для .Striker
.Striker
Участник форума
Регистрация: 11.11.2007
Сообщений: 260
Провел на форуме:
2808062

Репутация: 155
По умолчанию

ulimit –s
помогает только для уменшения нагрузки от веб сервера?
как по поводу скула?
 
Ответить с цитированием

  #5  
Старый 01.09.2009, 23:32
Аватар для iron-viper
iron-viper
Участник форума
Регистрация: 13.11.2007
Сообщений: 180
Провел на форуме:
1058585

Репутация: 122
По умолчанию

скул надо разгружать настройками. отключением поддержки ненужных форматов таблиц и БД
 
Ответить с цитированием

  #6  
Старый 02.09.2009, 17:10
Аватар для .Striker
.Striker
Участник форума
Регистрация: 11.11.2007
Сообщений: 260
Провел на форуме:
2808062

Репутация: 155
По умолчанию

поподробнее можешь?
стукни в асю 108373 или дай свою
 
Ответить с цитированием

  #7  
Старый 03.09.2009, 09:19
Аватар для Slon
Slon
Участник форума
Регистрация: 09.12.2005
Сообщений: 162
Провел на форуме:
701592

Репутация: 91
По умолчанию

Еще пару советов от меня

Апач советую сразу грохнуть и перевести сервер на nginx+fastcgi дает заметный прирост в производительности и снижает потребление ОЗУ.

Очень часто кол-во открытых одновременно соединений на ВПС ограничено. Поэтому MySQL и fastcgi лучше всего перевести на unix-сокеты.

После этого в my.cnf можно добавить
Код:
skip-innodb 
skip-bdb 
skip-networking
В nginx.conf можно добавить так же
Код:
keepalive-timeout 0;
Сервер будет сразу разрывать соединение, после того, как отправил ответ клиенту

Последний раз редактировалось Slon; 03.09.2009 в 09:21..
 
Ответить с цитированием

  #8  
Старый 11.10.2009, 07:02
Аватар для Витюшка
Витюшка
Banned
Регистрация: 12.08.2009
Сообщений: 100
Провел на форуме:
964227

Репутация: 589
Отправить сообщение для Витюшка с помощью ICQ Отправить сообщение для Витюшка с помощью AIM Отправить сообщение для Витюшка с помощью Yahoo
По умолчанию

Хорошая статейка постарался!
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HOWTO. Создание виртуальных серверов. Gentoo + OpenVZ neval *nix системы 5 20.05.2009 14:24
mrhost - выделенные сервера и vps по правильным ценам! mrhost Хостинг, Dedicated, VDS, Сервера - Покупка, продажа 0 16.03.2009 10:11
Windows VPS masbear Администрирование 5 11.02.2009 23:06
Bulletproof VPS - specially for you JustVPN Хостинг, Dedicated, VDS, Сервера - Покупка, продажа 1 19.12.2008 23:28



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ