Как да се оптимизира работата на Apache

Изборът на правилната MPM

Apache има модулна структура, така че можете да добавяте и премахвате лесно функции. Multi-обработка модули (МПМ) осигуряват тази функция в модулна ядро ​​Apache - управление на мрежови връзки и изпращане на заявки. MPM`y позволи работа конци или дори се движат Apache към други операционни системи. Само един MPM може да бъде активна в даден момент, и това трябва да бъде направено статично с [код] - с-MPM = (работник | prefork | събитие) [/ код]. Традиционният модел на един процес за всяка заявка се нарича prefork. По-нова модел се нарича работник. която използва няколко процеса, всяка с множество нишки, за да получат по-добри резултати с по-малко разходи. MPM събитие е модул, който поддържа отделни басейни резба за различни задачи. За да определите кои MPM използвате, следвайте [код] уеб--l [/ код] Изборът на правилната MPM да използвате зависи от много фактори. Prefork е по-безопасен избор; Вие трябва да направите подробни експерименти, ако решите работник. Печалбата на изпълнение зависи и от библиотеките, които идват с вашата дистрибуция и хардуер.
  • Работник MPM използва няколко деца процеси с много нишки всяка. Всяка нишка дръжки едно съединение едновременно. Работник обикновено е добър избор за сървъри с висок трафик, защото има по-малък капацитет на паметта от Prefork MPM.
  • MPM събитие. подобно на работника MPM. но тя е предназначена за решаване на големия брой заявки се обслужват едновременно, прехвърляне обработка на потока работна подкрепа, освобождавайки основните нишки, за да работят по нови искания.
  • Prefork MPM използва няколко деца процеси с една нишка, всеки от тях. Всеки процес дръжки едно съединение едновременно. В много системи, prefork е сравнима в скоростта на работник. но тя използва повече памет. Prefork има предимства пред работник в някои ситуации: тя може да се използва с трети страни модули, и по-лесен за отстраняване на грешки на грешно платформи за подкрепа на конец за отстраняване на грешки.
Независимо кой MPM да изберете, трябва да го настроите по съответния начин. По принцип, Apache MPM тунинг включва индикация за да управлявате колко workers` работи, независимо дали те са нишки или процес. От Apache 2.2 Prefork подразбиране MPM. Важно конфигурация за МПМ PreFork дадени по-долу.

Apache.conf

За да започнете, отворете конфигурационния файл на Apache, намерете секцията на директивите: Въз основа на сървъра DirectAdmin, той ще бъде в: [код] /etc/httpd/conf/extra/httpd-mpm.conf [/ код] На Cpanel сървър. тя ще се намира в [код] / ЮЕсАр / местни / Apache / конф / [/ код] На сървъра Plesk. тя ще бъде в [код] / и т.н. / уеб-/ конф / [/ код] Ако използвате нано. VI или Vim: веднага, щом отворите файла, можете да намерите, като превъртите директива файл. Чрез използването на VI или VIM можете да намерите като напишете обратната наклонена черта "/" и посочете точната низ търсите а (с малки букви търсене).

Timeout. пауза настройката в секунди, преди да "изпраща" или "дават" (от или на клиента). Ако поставите висока стойност, той ще направи посетителите ", за да висят по линията", което води до допълнително натоварване на сървъра. Обърнете внимание на ниска стойност "Timeout" ще доведе до сценария да се кандидатира за продължителна служба по-рано от очакваното. Оптималната стойност 100 за VPS, силно натоварени или посветен сървъри. За сървъри при нормална стойност за натоварването е 300. По подразбиране е достатъчна.

MaxKeepAliveRequests

KeepAliveTimeout

Броят на секунди, че Apache ще трябва да изчакаме още една молба, преди да прекъсне връзката. По-големи стойности на параметрите могат да причинят проблеми с производителността на тежкотоварни посветен сървъри. Колкото по-висока изчакване, толкова повече сървърни процеси ще се съхраняват чакащи връзки за клиенти. При използване на DirectAdmin, тази инструкция може да се намери в: [код] /etc/httpd/conf/extra/httpd-default.conf [/ код] Стойността по подразбиране на 10 секунди е за средните резултати на сървъра добра стойност. Тази стойност трябва да е ниска, ако контактът ще бъде празен ход за дълъг период от време. Препоръчително е, че тази стойност ще бъде намален до 5 сървъра под тежък товар.

StartServers

Определя броя на сървърни процеси-, създадени при стартиране. Тъй като броят на процесите се извършва динамично в зависимост от натоварването обикновено има малко основание да се коригира този параметър. Тази стойност трябва да отразява това, което се случва в MinSpareServers.

MinSpareServers

MaxSpareServers

Задава желания максималния брой свободни процеси servera.Protsess празен ход, който не се занимава с запитването. Ако има повече от MaxSpareServers. ако процесът на родител убие допълнителни процеси.

ServerLimit

Той се използва само тогава, когато е необходимо да настроите MaxClients по-високи от 256 (по подразбиране). Не настройвайте стойността на тази директива всяко по-високо от това, което може да искате да зададете MaxClients.

MaxClients

Задава броя едновременни заявки ограничи да бъде връчен. Всякакви опити за свързване надвишава максималния брой MaxClients. Като правило, обикновено се добавят към опашката, колкото е броят на базата на директивата за ListenBacklog. След като процесът на детето се освобождава, след което връзката се поддържа. За Prefork. MaxClients превръща в максималния брой деца процеси, за да служат искания. Стойността по подразбиране е 256; си половина, вие също трябва да повдигне ServerLimit. Това ServerLimit трябва да бъдат еднакви или много сходни. MaxClientsnikogda не трябва prevyshatServerLimit. За сървъри под тежък товар, тази стойност трябва да се увеличи. Вижте по-долу за повече информация за това как да се определи от директивата MaxClients.

Как да настроите директива MaxClients

MaxClients просто изчисление да бъде: (Общата памет - памет критични услуги) / Apache размер процес. Определяне на критичните услуги като MySQL, Plesk, DirectAdmin; всяка услуга, която е необходима за правилното функциониране на вашия сървър. I използват следните команди с помощта на терминал за определяне на стойността на общия размер на паметта, операционната система памет, памет, MySQL и Apache размера на процеса. В този случай сървърът има 1002Mb с памет. посветен, хх използва операционната система, 21MB използва MySQL. и всеки Apache процес (резба) средно около 30 MB. MaxClients = (1002 - 21) / 30. обаче MaxClients = 32,7

MaxConnectionsPerChild

MaxConnectionsPerChild определя лимит за броя на връзки, които индивидуален процес на сървъра дете ще се справят. След MaxConnectionsPerChild съединения процес дете матрица. Ако MaxConnectionsPerChild е 0, тогава процесът никога няма да умре. Монтаж MaxConnectionsPerChild на ненулева стойност ограничава размера на паметта, консумирана от процеса на изтичане на (случайно) памет. Вижте по-долу за повече информация.

За да укажете директива MaxConnectionsPerChild

Изчислените номера за MaxConnectionsPerChild ще: (общия брой заявки на ден / общ брой процеси в ден). Определянето на тези стойности е малко по-сложна, тъй като изисква определен тип статистика пакети или подробни знания за тълкуването на Apache логове за достъп. Тъй като това не влияе отрицателно на използването на паметта, само времето на процесора за един цикъл на процеса, ако не сте в състояние да се определи тази информация. Стандартът трябва да се използва 1000. Бъдете сигурни, че сте запишете файла за извършване на конфигурацията на теста преди да стартирате отново Apache. Източник статия

Последните публикации на блога