Apache проблем

nIksdevIL

Well-Known Member
Здравейте приятели, имам проблем с апачето на компа.

След определено време (20-30 минути) страниците ми започват да се зареждат много бавно, след рестарт на апачето обаче проблема се оправя.

Някаква идея от какво може да е това ?
 
От: Apache проблем

На настройките на Apache-то :D но за да ти даде някой отговор първо трябва да уточниш какви са те:

какъв MPM се ползва, какви са стойностите на KeepAlive, MaxKeepAliveRequests , KeepAliveTimeout , MaxClients / ServerLimit и т.н.
 
От: Apache проблем

<IfModule mpm_winnt_module>
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>

<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>


<IfModule mpm_worker_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>

MaxKeepAliveRequests 100
KeepAliveTimeout 5
 
От: Apache проблем

А кой от всичките MPM модули ползваш?
 
Не можеш да ползваш всичките едновременно, именно за това имаш <IfModule *********>. Ползваш един от всички, нищо, че имаш конфигурация за всичките от тях.

Влез си през конзолата и напиши: httpd -V (centos и т.н.), за други дистрибуции е apache2 -V.

Резултата, който трябва да получиш е нещо такова:
Код:
home ***** # apache2 -V
Server version: Apache/2.2.23 (Unix)
Server built:   Oct 15 2012 20:10:34
Server's Module Magic Number: 20051115:31
Server loaded:  APR 1.4.5, APR-Util 1.4.1
Compiled using: APR 1.4.5, APR-Util 1.4.1
Architecture:   32-bit
[B]Server MPM:     Prefork[/B]
Интересува ни болднатият ред.
 
От: Apache проблем

Всички са включени, това е по default

Ти си първия в историята на Apache, който е могъл да ги подкара всички едновременно. Сигурен съм, че и хората от Apache ще се хванат за главата. Проблема, който описваш на първо четене е недостиг на apache слотове, т.е. нещо държи активни всички процеси, чукаш горна граница на ServerLimit и сайтовете започват да се бавят. Защо.... защото всяка нова заявка се нарежда на опащката и чака да се освободи apache слот, който да я отработи. Като го рестартираш всичко почва от нулата докато пак не запълниш лимита. Или лимита ти е невъзможно нисък, или php скриптовете ти са ужасно написани (разбирай цикли, бавни mysql заявки, зареждане на външно съдържание без socket timeout и прочие).

Наистина е трудно да ти се помогне, все едно да влезеш в болница и да кажеш "Боли ме, обаче не мога да посоча и опиша точно къде" . Мисля, че ти дадохме достатъчно насоки да седнеш и да почетеш малко за настройките на apache и да експериментираш. Щом си ентусиаст да хостваш на localhost е добре да имаш същия ентусиазъм и да вникнеш в нещата. Вземай пример от leeyaa. Ако не ти се занимава направо си качи нещата при него. Гледам, че е още free of charge за beta тестери.
 
От: Apache проблем

Е аз му казах да си види логовете, ама кой да ме слуша *чете* :?

За пример давам като редактирах конфа на един pool за сайта с комиксите. Ето това излиза в лога и "само" писва, че иска оптимизация:

Код:
[20-Nov-2012 16:40:39] WARNING: [pool comicshub] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 1 idle, and 7 total children
 

Горе