Как разогнать VDS на OVZ

Обсудить
Как разогнать VDS на OVZ

Чтобы VDS показывал максимальную производительность, нужно его правильно настроить. Это не поможет получить больше ресурсов, чем хостер предоставляет по условиям тарифа, но позволит грамотно использовать имеющиеся мощности и заметно улучшить показатели VDS.

Что нужно для разгона сервера VDS

Одно из преимуществ виртуализации OpenVZ — минимальные потери производительности. Однако это не значит, что сервер не нужно оптимизировать. 

Есть универсальный список рекомендаций по увеличению производительности VDS. 

  • Отключите неиспользуемые службы. По умолчанию на сервере после стандартной установки LAMP работают службы, которые не нужны сайту. Их отключение сэкономит ресурсы сервера. Самая большая проблема — понять, какие службы не нужны.

  • Установите nginx — веб-сервер снизит нагрузку, взяв на себя обработку статических файлов. За обработку динамических запросов и дальше будет отвечать Apache. Хотя теоретически от него можно отказаться совсем.

  • Установите акселератор PHP — он нужен для кэширования заранее скомпилированного байт-кода. Это позволяет ускорить выполнение PHP-скриптов. Примеры акселераторов — APC, eaccelerator, Xcache.

  • Установите memcache — он позволяет кэшировать данные в оперативной памяти, а не на диске. Благодаря этому данные пишутся и отдаются практически мгновенно. Обычно настраивается кэширование частых запросов в базу данных, промежуточных итогов выполнения скриптов PHP. Иногда кэшируются заранее созданные страницы.

  • Переключите PHP в режим FastCGI или используйте PHP-FPM — это снизит нагрузку на сервер и увеличит стабильность его работы.

  • Установите модуль PageSpeed — он оптимизирует данные, которые отдают посетители сайта. Однако его неправильная настройка может привести к проблемам в работе сервера.

Еще один вариант значительно улучшить производительность VDS — полностью отказаться от веб-сервера Apache. Он медленный и очень тяжелый: потребляет кучу ресурсов. Вместо него можно использовать связку nginx+PHP-FPM. Это будет намного быстрее и экономичнее. Но есть проблема — для правильной настройки такой конфигурации нужен большой опыт. Оптимизация работы сервера — в принципе сложная задача. Поэтому если у вас нет такого опыта, то лучше начать с минимальных изменений в стандартной конфигурации. 

В качестве примера настроим виртуальный сервер c Ubuntu на Timeweb. В панели управления VDS есть удобная консоль. Для авторизации используются логин и пароль, которые хостер присылает в письме после создании сервера.

VDS Timeweb

Ниже вы найдете несколько рекомендаций, которые можно выполнить для увеличения производительности VDS без риска для его работоспособности.

Настройка nginx 

Apache — мощный, но тяжеловесный сервер, который потребляет большое количество ресурсов. Если совсем отказаться от него нельзя, то выходом может стать использование nginx в качестве фронтенда. Он будет кэшировать и отдавать пользователям статическое содержимое страниц, а Apache будет обрабатывать запросы, связанные с динамикой.

Установите nginx:

sudo apt-get install nginx

Удалите стандартные настройки:

sudo rm /etc/nginx/sites-enabled/default

Создайте файл конфигурации:

sudo nano /etc/nginx/sites-available/site.ru // Вместо site.ru укажите свой домен

Вставьте в файл следующие параметры:

server {

listen 80; root /var/www/site.ru; index index.php index.html index.htm; server_name site.ru; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; } location ~ /\.ht { deny all; } location ~* \.(jpg|jpeg|gif|png|ico|css|swf|flv|doc|docx)$ { root /var/www/site.ru; }

}

Примените изменения:

sudo ln -s /etc/nginx/sites-available/site.ru /etc/nginx/sites-enabled/site.ru

sudo service nginx restart

В конфигурации nginx теперь задано кэширование статического содержимого — документов, изображений, видео.

Затем нужно настроить Apache. Откройте файл конфигурации портов:

sudo nano /etc/apache2/ports.conf

Исправьте следующие строки:

NameVirtualHost 127.0.0.1:8080

Listen 127.0.0.1:8080

Такие же правки внесите в файл виртуального хоста:

<VirtualHost 127.0.0.1:8080>

Для применения конфигурации перезагрузите Apache:

sudo service apache2 restart

Nginx теперь играет роль прокси-кэш сервера. Это позволяет значительно увеличить производительность сервера.

Настройка PHP

На производительность динамических сайтов влияют и настройки PHP. Если интерпретатором является модуль Apache, то параметры находятся в файле /etc/php5/apache2/php.ini. Если на сервере стоит PHP-fpm в связке с nginx, то нужно править файл /etc/php5/fpm/php.ini.

Многие настройки зависят от используемой CMS. Однако есть универсальные директивы, изменение значения которых помогает снизить нагрузку на VDS и увеличить производительность.

Например, always_populate_raw_post_data = On. Эту директиву следует включать только в том случае, если необходимо следить за нагрузкой от входящего POST-запроса. Ее отключение позволяет немного разгрузить оперативную память.

always_populate_raw_post_data = Off

Еще одна полезная настройка — активная буферизация. Ее включение позволяет отдавать данные крупными фрагментами. 

output_buffering = On

Этот блок директив рекомендуется полностью закомментировать. Он нужен, если используются суперглобальные переменные. Для большинства движков это избыточная настройка.

; variables_order

; Default Value: "EGPCS"

; Development Value: "GPCS"

; Production Value: "GPCS"

Еще одна важная мелочь — часовой пояс. Если не установить его вручную, PHP будет постоянно отправлять запросы для его определения. Например:

date.timezone = Europe/Moscow

В PHP версии 5.5 и выше по умолчанию включен компонент Zend Opcache. Его настройки нужно выбирать в зависимости от специфики сервера и сайта. Но для начала можно воспользоваться рекомендуемой конфигурацией. Она ускорит обработку скриптов, что положительно скажется на производительности сервера.

Установите размер потребляемой памяти для прекомпилируемого кода:

opcache.memory_consumption=128 // Значение в МБ

Задайте объем памяти для пула строк:

opcache.interned_strings_buffer=8 // Значение в МБ

Задайте число скриптов в хэш-таблице:

opcache.max_accelerated_files=4000 // Число от 200 до 1000000

Установите периодичность проверки данных: 

opcache.revalidate_freq=60 // Значение в секундах

Отключите поддержку PHP CLI. Она используется для отладки: 

opcache.enable_cli=0

После изменения настроек необходимо перезагрузить Apache:

sudo service apache2 restart

В случае с nginx перезагрузите службу интерпретатора:

sudo service php5-fpm restart

Это рекомендуемые настройки, которые приведут к росту производительности на большинстве серверов. Они могут меняться в зависимости от специфики сайта и конфигурации VDS. Определить оптимальные параметры можно только на практике, пробуя разные варианты.

Комментарии