Apache on WinXP

gopnik1994

Отцы!
Кто скажет в конце-то концов, почему во время большой загрузки, клиенту отсылается ошибка? Чаще всего проявляется на картинках (не отображаются). В логах апачи все хорошо (304 код на эти файлы). Ни в документации к апаче ни к ХР-е ничего про это нет. Гуугл с яндексом на мои вопросы ничего сказать не могут. Может я неправильно спрашиваю
Настройки апачи такие:


Timeout 10
KeepAlive On
MaxKeepAliveRequests 0
KeepAliveTimeout 10
<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>

bobking

Ничего не знаю про Apache на Windows XP, но есть пара пара наблюдений.
1) У меня такая ошибка бывает _чрезвычайно_ редко. За всё время глюк проявлялся раз пять (WinXP + IE с апдейтами).
2) В lynx'е же, наоборот, часто бывает, что сервер просто обрывает соединение, о чём браузер и сообщает.

eee1

as i know, please change these settings:
Timeout 100 (or 300 as default) (to wait for some processes when your server is over-running and the transfer speed is low) please notes that the php binary compiler (php.exe) you call each time makes your web lower, you can changed to load php as a module)
ThreadLimit <number> (>1920, in your case 2500 this directive will raise your threadperchild number

sergey_m

Кстати, в такой конфигурации apache со временем не разростается в памяти?
А php модулем или php.exe ?

gopnik1994

> apache со временем не разростается в памяти
не замечал. Т.е. либо не обращал внимания, либо не разрастается.
php.exe - потому что стоит апача2, а на тот момент, когда я это все ставил, пхп для 2-й версии в виде модуля не было.
может щас появилось... стоит проверить..

gopnik1994

> Timeout 100 (or 300 as default)
300 секунд - это 5 минут. Зачем столько? Default = 30
> ThreadLimit <number> (>1920, in your case 2500 this directive will raise your threadperchild number
а зачем?

golovsv83

исходники вроде ж есть

eee1

читайте Php manual
- default timeout 300 sec
Description: Amount of time the server will wait for certain events before failing a request
Syntax: TimeOut number
Default: TimeOut 300
Context: server config
Status: Core
Module: core
- Description: Sets the upper limit on the configurable number of threads per child process
Syntax: ThreadLimit number
Context: server config
Status: MPM
Module: mpm_winnt, worker
This directive sets the maximum configured value for ThreadsPerChild for the lifetime of the Apache process. Any attempts to change this directive during a restart will be ignored, but ThreadsPerChild can be modified during a restart up to the value of this directive.
Special care must be taken when using this directive. If ThreadLimit is set to a value much higher than ThreadsPerChild, extra unused shared memory will be allocated. If both ThreadLimit and ThreadsPerChild are set to values higher than the system can handle, Apache may not start or the system may become unstable. Do not set the value of this directive any higher than your greatest predicted setting of ThreadsPerChild for the current run of Apache.
The default value for ThreadLimit is 64 when used with worker and 1920 when used with mpm_winnt.

sergey_m

MaxRequestPerChild 0 значит, что апачевы дети никогда не умирают. Обычно ставят лимит в несколько сотен запросов, потом они умирают и на их место форкаются новые. Так делается что бы бороться с memory leakами. Сами апачи утверждают что в httpd утечки исключены. Однако в куче всяких дурацких модулей они есть, в тч и в php. Внешний php решает эту проблему тоже. У тебя еще какие нить модули стоят под apacheем?
Посмотри в момент глюков сколько апачей висит: 2 или 1?
И сколько в этот момент php.exe висит?
Оставить комментарий
Имя или ник:
Комментарий: