Как да направим добро оптимизиране на нашият VPS сървър
Напоследък все повече собственици на сайтове се насочват към използването на VPS вместо стандартният споделен хостинг.
Повечето от тези хора обаче нямат идея как точно да настроят VPS-a си така че той да има максимална производителност. Ето защо ние от решихме да ви помогнем с няколко съвета от нашите експерти по VPS Hosting.
-
Оптимизация на Apache.
Най-важната част при оптимизирането на VPS е именно Apache сървъра. Тук най-важният фактор е с колко памет разполага вашата виртуална машина. Защото това пряко влияе на някой от директивите в конфигурационният файл на apache (httpd.conf).
Първо нека проверим колко памет използва Apache:
ps auxf | grep httpd | awk ‘{sum=sum+$6}; END {print sum/1024}’
В някой операционни системи като Debian и Gentoo процеса на Apache се нарича apache2 за тях ползваме:
ps auxf | grep apache2 | awk ‘{sum=sum+$6}; END {print sum/1024}’
Така след като имаме някаква идея колко памет общо използва Apache нека видим и колко памет по отделно ползва всеки процес:
ps -ylC httpd –sort:rss
Отново за Debian и Gentoo:
ps -ylC apache2 –sort:rss
След като имаме тази информация вземаме най-високата стойност на последната команда за RSS това е осмата колонка и делим реалната RAM памет на нашият VPS на това число.
Пример:
ps -ylC apache2 –sort:rss
S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD
S 33 31951 31945 0 78 -2 2820 5680 – ? 00:00:00 apache2
S 0 31945 1 0 78 -2 10232 10381 – ? 00:00:00 apache2
S 33 31046 31945 0 78 -2 18648 13063 – ? 00:00:07 apache2
S 33 16403 31945 0 78 -2 19016 13000 – ? 00:00:07 apache2
S 33 16404 31945 0 78 -2 19636 13175 – ? 00:00:07 apache2
Max RSS: 19636 KB
Total RAM: 512 MB или 524288 KB
Max Clients= Total RAM/Max RSS
Max Clients= 524228/19636= 26
Така значи вече имаме стойността за Max Clients=26
Настройките които нас ни интересуват са:
Timeout 300
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 15
StartServers 5
MaxClients 20
MaxRequestsPerChild 2000
HostnameLookups Off
Нека да започнем с всяка една по отделно
Timeout 300
Тази настройка показва след колко секунди една връзка ще бъде разкачена с изтичане на времето. Хубаво е да сложим тази настройка на някаква по ниска стойност примерно 15.
KeepAlive On
Тази настройка определя дали връзките да се пазят живи. Принципно това подобрява производителността на машината. Но е за сметка на използваната памет.
MaxKeepAliveRequests 200
Броят на елементите който могат да се изтеглят едновременно по една KeepAlive връзка. Препоръчителната стойност тук е 50.
KeepAliveTimeout 15
Времето за което една KeepAlive връзка е активна от Apache препоръчват стойност 1 на този елемент но нашите експерти препоръчват 2. За това слагаме стойност 2.
MinSpareServers 5
Минималният брой под процеси който да има Apache. Препоръчваме стойност 1.
MaxSpareServers 15
Максималният брой под процеси който да има Apache. При нашият VPS с 512MB RAM тази стойност е 25.
StartServers 5
Броят на сървърите с който да стартира Apache при рестарт. Препоръчителна стойност 1.
MaxClients 20
Максималната стойност на едновременни връзки към сървъра. Както вече сметнахме идеалната стойност е 26.
MaxRequestsPerChild 2000
Максималният брой запитвания преди един процес да бъде убит. Препоръчваме тази стойност да бъде поставена ниско около 200.
HostnameLookups Off
Тази настройка значително подобрява скоростта на зареждане на вашите страници.
Така след като описахме подробно всички променливи ето и нашите препоръчителни стойности за web сървър с 512 RAM:
Timeout 15
KeepAlive On
MaxKeepAliveRequests 50
KeepAliveTimeout 2
MinSpareServers 1
MaxSpareServers 25
StartServers 2
MaxClients 25
MaxRequestsPerChild 200
HostnameLookups Off
-
Оптимизация на Mysql
Има няколко важни променливи който ще променим.
max_connections
Максималният брой едновременни връзки към базата данни. По начало тази настройка е сложена на 125.
wait_timeout
Времето за което изтича една връзка нашата препоръчителна стойност е 7000.
thread_cache_size
Нашата препоръчителна стойност тук е 286.
table_cache
Препоръчителната стойност тук е 4000.
key_buffer_size
Препоръчителна стойност 32М
query_cache_size
Препоръчителна стойност 12М
tmp_table_size
Препоръчителна стойност 16М
Така значи ето какви промени трябва да направим в нашият /etc/my.cnf
В секцията [mysqld] добавяме:
wait_timeout = 7000
thread_cache_size = 286
table_cache = 4000
key_buffer_size = 32M
query_cache_size = 12M
tmp_table_size = 16M
Това е оптимизацията на Mysql.
Като цяло оптимизацията на един сървър никога не е лесна задача за това трябва да сте сигурни че знаете какво правите.
Нашите специалисти ви дадоха точни и ясни насоки как да настройте вашите сървъри.
Това което трябва да имате в предвид е че VPS сървърите който предлага повечето хостинг компании са точно така оптимизирани и настроени.