Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: httpd - процессов много и жрет память
 
 автор: tarasian666   (16.01.2010 в 11:25)   письмо автору
 
 

даже при отсутсвии запросов к серверу

  Ответить  
 
 автор: GeorgeIV   (16.01.2010 в 12:09)   письмо автору
 
   для: tarasian666   (16.01.2010 в 11:25)
 

это нормально, апач всегда запускает несколько параллельных потоков сразу

  Ответить  
 
 автор: tarasian666   (16.01.2010 в 12:51)   письмо автору
 
   для: GeorgeIV   (16.01.2010 в 12:09)
 

но он загружает всю оставшуюся память, где то 600мб, может жрал бы и больше просто память кончается )

  Ответить  
 
 автор: heed   (16.01.2010 в 15:43)   письмо автору
 
   для: tarasian666   (16.01.2010 в 12:51)
 

процессов httpd у меня обычно только два
В netstat /abn может быть много httpd.exe
В денвер3 такие
127.0.0.1:80         LISTENING   [httpd.exe]
127.0.0.2:443      LISTENING    [httpd.exe]
 127.0.0.1:443     LISTENING    [httpd.exe]
127.0.0.2:8648    LISTENING    [httpd.exe]

но процессов только два
один тот который запускается коммандой httpd -k start например если как сервис
, а второй тот который запускается первым с коммандной строкой например
httpd.exe -d Z:/usr/local/apache

у первого процесса только одна нить (thread)
, у второго 255 или 253 у меня на двух из пачек серверов

рабочей памяти каждому пишет ~~25M
, если конечно например php_module или какой другой не начнёт потреблять память
, то-же самое с загрузкой процессора бывает из-за зацикливаний каких-нибудь php-скриптов

MySQL это да , смотря как настроено, у меня 86M
, и большой кусок файла подкачки из-за того что я настройки innoDB накрутил потестить

  Ответить  
 
 автор: tarasian666   (16.01.2010 в 15:56)   письмо автору
 
   для: heed   (16.01.2010 в 15:43)
 

вобще то сервер не у меня, когда через ssh смотрю процессы, упорядочиваю по использованию памяти, и процесс httpd потихоньку занимает все окно... каждый по ~ 9мб.
процессов где то штук з 80 минимум.
что то только что поправили, процессов уже не больше 30.
жрут уже по 3мб (тут уже я поправил)


прошло время и ситуация та же... свободной памяти нет

  Ответить  
 
 автор: heed   (16.01.2010 в 19:05)   письмо автору
 
   для: tarasian666   (16.01.2010 в 15:56)
 

попробовал у себя под виндовсом посмотреть что за модуль к mod_perl , который позволяет убивать лишние процессы apache

, но у меня с такими ошибками вывалилось
Syntax error on line 359 of H:/usr/local/apache/conf/httpd.conf:
Apache2::SizeLimit at the moment works only with non-threaded MPMs at /usr/local/perl/site/lib/Apache2/SizeLimit.pm line 51.\nBEGIN failed--compilation aborted at /usr/local/perl/site/lib/Apache2/SizeLimit.pm line 98.\nCompilation failed in require at H:/usr/local/apache/conf/httpd.conf line 360.\nBEGIN failed--compilation aborted\t(in cleanup) 


если там есть mod_perl возможно можно как-то таким-же способом попробоватьчто-то делать
, я так пробовал
PerlModule ModPerl::Registry

<Perl>
  use Apache2::SizeLimit;
  # sizes are in KB
  $Apache2::SizeLimit::MAX_PROCESS_SIZE  = 12000; # 12MB
  $Apache2::SizeLimit::MIN_SHARE_SIZE    = 6000;  # 6MB
  $Apache2::SizeLimit::MAX_UNSHARED_SIZE = 5000;  # 5MB
</Perl>
  PerlCleanupHandler Apache2::SizeLimit

<Location /perl-status>
      SetHandler modperl
      PerlOptions +GlobalRequest
      PerlResponseHandler Apache2::Status
</Location>
<Directory  /home/*/cgi-bin/>
  Options +ExecCGI
...........

без <Perl></Perl> Apache2::SizeLimit всё работало.

но должна быть просто возможность сделать максимально возможное число процессов
, в файле extra/httpd-mpm.conf , что-то похожее
, но не знаю чего точно нужно

  Ответить  
 
 автор: tarasian666   (16.01.2010 в 19:17)   письмо автору
 
   для: heed   (16.01.2010 в 19:05)
 

вот и я не знаю что точно нужно

  Ответить  
 
 автор: heed   (16.01.2010 в 19:27)   письмо автору
 
   для: tarasian666   (16.01.2010 в 19:17)
 

Посмотрите что вообще там в этом файле httpd-mpm.conf
, если его содержимое не перенесли куда-то
И посмотрите какие из модулей перечисленных там включены

, следовательно какие секции настроек действующие.
Но наверное сможет что-то точно сказать только тот кто сталкивался точно с таким-же
// в phpinfo() даже должно быть видно модули

  Ответить  
 
 автор: tarasian666   (16.01.2010 в 19:51)   письмо автору
 
   для: heed   (16.01.2010 в 19:27)
 

httpd-mpm.conf - нет такого

  Ответить  
 
 автор: heed   (16.01.2010 в 20:18)   письмо автору
 
   для: tarasian666   (16.01.2010 в 19:51)
 

Незнаю, может я вообще попутал
, и такое не бывает в никсовых серверах
, подумал что за это должны отвечать диррективы типа
<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>                  
<IfModule mpm_netware_module>
    ThreadStackSize      65536
    StartThreads           250
    MinSpareThreads         25
    MaxSpareThreads        250
    MaxThreads            1000
    MaxRequestsPerChild      0
    MaxMemFree             100
</IfModule>
..............

  Ответить  
 
 автор: tarasian666   (16.01.2010 в 20:45)   письмо автору
 
   для: heed   (16.01.2010 в 20:18)
 

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>
<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

  Ответить  
 
 автор: heed   (16.01.2010 в 21:17)   письмо автору
 
   для: tarasian666   (16.01.2010 в 20:45)
 

но неизвестно-же какие из этих модулей включены :)
MaxClients

Это самый важный параметр prefork MPM, задающий максимальное число дочерних процессов, которым разрешено запустится (которые будут созданы для обработки запросов).

Значение выставляется большим, чтобы обрабатывать одновременно много запросов, а меньшим для снижения потребления памяти!

http://www.salex.ru/book/book.php?httpd_prefork

// заранее снимаю с себя всю ответственность за возможую порчу сервера :)

  Ответить  
 
 автор: tarasian666   (16.01.2010 в 21:49)   письмо автору
 
   для: heed   (16.01.2010 в 21:17)
 

>Значение выставляется большим, чтобы обрабатывать одновременно много запросов, а меньшим для снижения потребления памяти!
от перестановки слагаемых...
либо меньше файлов но с большим исп. памяти либо много файлов с меньшим использованием памяти..

  Ответить  
 
 автор: heed   (16.01.2010 в 23:21)   письмо автору
 
   для: tarasian666   (16.01.2010 в 21:49)
 

уменьшение процессов освободит память
, просто вместе с этим уменьшится колличество одновременныо возможных подключений к серверу

уменьшить лимит памяти потребляемой каждым процессом тоже должно быть как-то можно, даже без RLimitMEM например http://www.apache.ru/docs/fishki.html
, но не пробовал

  Ответить  
 
 автор: tarasian666   (18.01.2010 в 16:17)   письмо автору
 
   для: heed   (16.01.2010 в 23:21)
 

здешний форум мне помог не намного больше чем гугл...

  Ответить  
 
 автор: Agronom   (18.01.2010 в 23:47)   письмо автору
 
   для: tarasian666   (18.01.2010 в 16:17)
 

Может быть вас досят? Посмотрите обращения в логе.

  Ответить  
 
 автор: tarasian666   (19.01.2010 в 11:50)   письмо автору
 
   для: Agronom   (18.01.2010 в 23:47)
 

Может быть.. но сейчас уже все хорошо. И старих логов уже нет

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования