Cum de a optimiza performanța apache
Alegerea dreptul de MPM
Apache are o structură modulară, astfel încât să puteți adăuga și elimina caracteristici ușor. Multi-Processing Module (MPM) oferă această funcționalitate într-un nucleu modular Apache - gestionarea conexiunilor de rețea și de expediere a cererilor. MPM`y permite fire de utilizare sau chiar muta Apache pentru alte sisteme de operare. Doar un singur MPM poate fi activ la un moment dat, și trebuie să se facă cu static [cod] - cu-MPM = (lucrător | prefork | eveniment) [/ code]. Modelul tradițional de un proces pentru fiecare solicitare se numește prefork. model mai nou se numește lucrător. care utilizează mai multe procese, fiecare cu mai multe fire, în scopul de a obține o performanță mai bună, cu mai puțin deasupra capului. MPM eveniment este un modul care susține un fir de piscine separate pentru diferite sarcini. Pentru a determina care MPM utilizați, urmați [cod] httpd -l [/ code] Alegerea dreptul MPM de a utiliza depinde de mulți factori. Prefork este o alegere mai sigură; Trebuie să faceți testarea atentă dacă alegeți lucrător. Câștigul de performanță este, de asemenea, depinde de bibliotecile care vin cu distribuție și hardware-ul.- Lucrător MPM folosește mai multe procese copil cu multe fire fiecare. Fiecare fir se ocupă de un compus simultan. Worker este de obicei o alegere bună pentru servere cu trafic mare, deoarece are o capacitate de memorie mai mică decât prefork MPM.
- eveniment MPM. similar cu lucrătorul MPM. dar este destinat să rezolve numărul mare de cereri deservite simultan, transferul de procesare a unui flux de lucru de sprijin, eliberând firele principale pentru a lucra la noi cereri.
- Prefork MPM utilizează mai multe procese copil cu un fir de fiecare. Fiecare proces se ocupă de un singur compus simultan. În multe sisteme, prefork este comparabil cu viteza muncitorului. dar folosește mai multă memorie. Prefork are avantaje față de lucrător în unele situații: acesta poate fi utilizat cu module terțe părți, și mai ușor pentru a depana pe un suport platforme rău fir de depanare.
Apache.conf
Pentru a începe, deschideți fișierul de configurare Apache, găsiți secțiunea directivelor: Bazat pe serverul DirectAdmin, acesta va fi în: [cod] /etc/httpd/conf/extra/httpd-mpm.conf [/ code] CPanel server. acesta va fi amplasat in [cod] / usr / local / apache / conf / [/ code] Pe serverul Plesk. acesta va fi în [cod] / etc / httpd / conf / [/ code] Dacă utilizați nano. VI sau Vim: imediat ce deschideți fișierul, puteți găsi derulând fișier directivă. Prin utilizarea VI sau VIM puteți găsi prin tastarea backslash „/“ și introduceți șirul exact pe care îl căutați o (căutare sensibilă la caz).
Timeout. pauză setarea în secunde înainte de „trimiterea“ sau „da“ (de la sau la client). Dacă pui o valoare ridicată, se va face vizitatorii „să stea pe linia“ care duce la o sarcină suplimentară pe server. Notă valoarea scăzută „Timeout“ va provoca script-ul pentru a rula un serviciu de lung mai devreme decât era de așteptat. Valoarea optimă 100 pentru VPS, puternic încărcate sau servere dedicate. Pentru servere dedicate sub valoarea normală a sarcinii este 300. Valoarea implicită este suficientă.
MaxKeepAliveRequests
KeepAliveTimeout
Numărul de secunde pe care apache va trebui să aștepte o altă solicitare înainte de a închide conexiunea. Valorile mai mari ale parametrilor pot cauza probleme de performanță pe servere dedicate grele. Cu cât mai mare timeout-ul, cu atât mai multe procese server vor fi păstrate conexiunile inactive pentru clienți. Când utilizați DirectAdmin, această instrucțiune pot fi găsite în: [code] /etc/httpd/conf/extra/httpd-default.conf [/ code] Valoarea implicită de 10 secunde este o valoare bună pentru performanța medie a serverului. Această valoare trebuie să fie scăzută în cazul în care priza va fi inactiv pentru o perioadă lungă de timp. Se recomandă ca această valoare va fi redus la 5 servere sub sarcină grea.
StartServers
Specifică numărul de procese copil de server create la pornire. Pe măsură ce numărul de procese este controlată în mod dinamic în funcție de sarcină în mod normal, există puține motive pentru a regla acest parametru. Această valoare ar trebui să reflecte ceea ce se întâmplă în MinSpareServers.
MinSpareServers
MaxSpareServers
Setează numărul maxim dorit de mers în gol procese inactiv servera.Protsess, una care nu se ocupa cu interogarea. În cazul în care există mai mult de MaxSpareServers. în cazul în care procesul părinte ucide procese suplimentare.
ServerLimit
Acesta este utilizat numai atunci când aveți nevoie să setați MaxClients mai mare decât 256 (implicit). Nu setați valoarea acestei directive orice mai mare decât ceea ce s-ar putea dori să setați MaxClients.
MaxClients
Setează numărul de cereri simultane limită pentru a fi servit. Orice încercare de conectare depășește numărul maxim de MaxClients. De regulă, se adaugă în mod normal, la coadă, până la numărul pe baza directivei ListenBacklog. Odată ce procesul de copil este eliberat, atunci conexiunea este menținută. Pentru prefork. MaxClients se traduce prin numărul maxim de procese copil pentru a servi cererilor. Valoarea implicită este de 256; creșterea acesteia, trebuie să ridice, de asemenea, ServerLimit. Acest ServerLimit trebuie să fie identice sau foarte asemănătoare. MaxClientsnikogda nu ar trebui să prevyshatServerLimit. Pentru servere sub sarcină grea, această valoare ar trebui să fie crescută. A se vedea mai jos pentru mai multe informații cu privire la modul de determinare a MaxClients directive.
Cum de a stabili Directiva MaxClients
MaxClients calcul simplu pentru a fi: (Memoria totală - servicii critice de memorie) / Apache dimensiune proces. Determina serviciile critice, cum ar fi MySql, Plesk, DirectAdmin; orice serviciu care este necesară pentru funcționarea corectă a serverului dumneavoastră. Eu folosesc următoarele comenzi utilizând terminalul pentru a determina valoarea pentru cantitatea totală de memorie, sistemul de operare de memorie, memorie, MySQL si Apache Dimensiune proces. În acest caz, serverul are o 1002Mb de memorie. dedicat, xx folosit sistemul de operare, 21MB folosit MySql. și fiecare proces Apache (fir) medii de aproximativ 30Mb. MaxClients = (1002 - 21) / 30. Cu toate acestea MaxClients = 32,7
MaxConnectionsPerChild
MaxConnectionsPerChild stabilește o limită a numărului de conexiuni pe care un proces individual server de copil va ocupa. După MaxConnectionsPerChild compuși mor proces copil. Dacă MaxConnectionsPerChild este 0, atunci procesul nu va muri niciodată. MaxConnectionsPerChild Instalarea la o valoare nenul limitează cantitatea de memorie consumata de procesul de scurgere (aleator) de memorie. A se vedea mai jos pentru mai multe informații.
Pentru a specifica Directiva MaxConnectionsPerChild
Numerele calculate pentru MaxConnectionsPerChild va: (numărul total de interogări pe zi / numărul total de procese în ziua). Determinarea acestor valori este un pic mai complexă, deoarece necesită un anumit tip de statistici sub formă de pachete sau cunoștințe detaliate despre interpretarea jurnalele de acces Apache. Pentru că nu are efect negativ utilizarea memoriei, doar timpul CPU pentru un ciclu de proces, dacă nu puteți determina aceste informații. Standardul trebuie să fie utilizat 1000. Asigurați-vă că salvați fișierul pentru a efectua configurarea testului înainte de a rula Apache. articolul Sursa