LINUX.ORG.RU
решено ФорумAdmin

Apache FastCGI. Как уменьшить количество процессов Apache?


0

2

Apache FastCGI. Как уменьшить количество процессов Apache? http://cs9933.vkontakte.ru/u3627394/-12/z_c594f152.jpg Мои настройки /etc/apache2/apache.conf

<IfModule mpm_worker_module> StartServers 1 ServerLimit 4 MaxClients 25 MinSpareThreads 10 MaxSpareThreads 35 ThreadsPerChild 25 MaxRequestsPerChild 64 </IfModule>

/etc/apache2/mods-available/fcgid.conf

<IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi SocketPath /var/lib/apache2/fcgid/sock IdleTimeout 30 IdleScanInterval 30 BusyTimeout 300 BusyScanInterval 30 IPCConnectTimeout 3 IPCCommTimeout 60 MaxProcessCount 1024 DefaultMinClassProcessCount 0 DefaultMaxClassProcessCount 32 MaxRequestsPerProcess 150 PHP_Fix_Pathinfo_Enable 1 </IfModule>

Находил в интернете только вот это: У Apache есть опция MaxClients. У FastCGI-модулей тоже есть опции, задающие максимально допустимое количество процессов. Должны ли их значения совпадать? Нет. Т.к. при prefork каждый запрос порождает отдельный процесс Apache, параметр MaxClients контролирует максимальное количество этих процессов (максимальное количество одновременных запросов). FastCGI-процессы работают отдельно от Apache и их количество регулируется отдельным параметром (в зависимости от используемого модуля). Данные параметры могут не совпадать. Т.к. для отдачи статического контента FastCGI не используется, то в случае, если имеется большое количество статического контента, следует установить значение FastCGI-процессов меньше, чем MaxClients. Данные настройки подбираются индивидуально, в зависимости от объёма оперативной памяти и решаемых задач. В случае, если у Вас используется большое количество статического контента рекомендуется установить фронтэнд-сервер nginx.

Перемещено mono из General


> MaxSpareThreads 35

ThreadsPerChild 25


И что тебе не нравится тогда?

YAR ★★★★★
()

Личинка поста в уютный бложек?

baverman ★★★
()

Смени mpm_worker на что-то другое.

imul ★★★★★
()

выкинь на юг апач, освой наконец темы под посты - это надо писать в раздел admin, освой форматирование.

тогда будет что советовать %)

tazhate ★★★★★
()

Зачем тебе apache, когда есть nginx?

blackst0ne ★★★★★
()
Ответ на: комментарий от tazhate
Скриншот, где большое количество процессов Apache
http://cs9933.vkontakte.ru/u3627394/-12/z_c594f152.jpg

Мои настройки: 

Настройки Apache2
/etc/apache2/apache.conf

<IfModule mpm_worker_module> 
StartServers 1
ServerLimit 4 
MaxClients 25 
MinSpareThreads 10 
MaxSpareThreads 35 
ThreadsPerChild 25 
MaxRequestsPerChild 64 
</IfModule>

Настройки FastCGI
/etc/apache2/mods-available/fcgid.conf


<IfModule mod_fcgid.c>
  AddHandler fcgid-script .fcgi
  SocketPath /var/lib/apache2/fcgid/sock
  IdleTimeout 30
  IdleScanInterval 30
  BusyTimeout 300
  BusyScanInterval 30
  IPCConnectTimeout 3
  IPCCommTimeout 60
  MaxProcessCount 1024
  DefaultMinClassProcessCount 0
  DefaultMaxClassProcessCount 32
  MaxRequestsPerProcess 150
  PHP_Fix_Pathinfo_Enable 1         
</IfModule>
Naymen
() автор топика
Ответ на: комментарий от tazhate

Уменьшил значения

# MinSpareThreads: число 5 штук на весь сервер для worker и его производных
#(при недостатке создаются новые процессы, а не потоки);

# MaxSpareThreads:число 10 штук на процесс для perchild, 250 штук на весь
# сервер для worker и его производных (при избытке закрываются процессы целиком)

# ThreadsPerChild: число потоков на каждый обслуживающий процесс; создаются
# при запуске процесса, число потоков никогда не меняется

<IfModule mpm_worker_module>
StartServers 1
ServerLimit 4
MaxClients 25
MinSpareThreads 5
MaxSpareThreads 10
ThreadsPerChild 10
MaxRequestsPerChild 64
</IfModule>

Количество процессов и потребляемой памяти уменьшилось

Смотрите скриншот http://cs9933.vkontakte.ru/u3627394/-12/z_55c55c10.jpg

Naymen
() автор топика
Ответ на: комментарий от redixin

Nginx у меня и так стоит. Но хостер мне настроил как, то его по другому

/etc/nginx/sites-available/default

ip адрес 222.222.222.222, вымышленный

server {
access_log off;
        listen 222.222.222.222:80;
        server_name site.ru www.site.ru;

	location @backend {
		include proxy_params;
	}          
   
	location ~ \.php$ {
		include proxy_params; 
	}

	location ~ /\.ht {
		deny all;
	}       
          
        location / { 
                root /home/пользователь/site.ru/www/;
                try_files $uri @backend; 
        }    
             
}


server {
access_log off;
	listen   222.222.222.222:80;
	
	location / {
		proxy_pass http://127.0.0.1:80/;
		proxy_connect_timeout 15;
		proxy_set_header   X-Real-IP $remote_addr;
		proxy_set_header   Host $http_host;
		proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
	}  
          
}

В этом файле думаю все правильно должно быть:

/etc/nginx/nginx.conf

user www-data;
# Число рабочих процессов, рекомендуется ставить по количеству ядер
worker_processes  1;
# Уменьшает число системных вызовов gettimeofday(), что приводит к увеличению производительности
timer_resolution 100ms;

# Изменяет ограничение на число используемых файлов RLIMIT_NOFILE для рабочего процесса.
worker_rlimit_nofile 8192;
# Директива задаёт приоритет рабочих процессов от -20 до 20 (отрицательное число означает более высокий приоритет).
worker_priority -10;
#                          [ debug | info | notice | warn | error | crit ]
error_log  /var/log/nginx/error.log crit;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    multi_accept on;
}

http {
    include       /etc/nginx/mime.types;
     server_tokens           off;
     server_name_in_redirect off;
   # access_log	/var/log/nginx/access.log;
    access_log	off;

    sendfile        on;
    tcp_nopush     on; 

    keepalive_timeout  65;
    tcp_nodelay        on;
    client_max_body_size 1024m;

   # gzip on;
  #  gzip_min_length 1100;
   # gzip_buffers 64 8k;
   # gzip_comp_level 3;
   # gzip_http_version 1.1;
   # gzip_proxied any;
   # gzip_types text/plain application/xml application/x-javascript text/css;

   # Включение модуля
     gzip             on;
     
     # Минимальная длина ответа, при которой модуль будет жать, в байтах
     gzip_min_length  1000;
     
     # Разрешить сжатие для всех проксированных запросов 
     #gzip_proxied     any;
     
     # MIME-типы которые необходимо жать
     #gzip_types text/plain text/html text/xml application/xml application/x-javascript text/javascript text/css text/json;
     # Если у вас появляются варнинги, типа "duplicate MIME type text/html", то вам стоит исключить text/html
     #gzip_types text/plain text/xml application/xml application/x-javascript text/javascript text/css text/json;

     # Запрещает сжатие ответа методом gzip для IE6
     gzip_disable     "MSIE [1-6]\.";

     # Уровень gzip-компрессии
     gzip_comp_level  9;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
Naymen
() автор топика
Ответ на: комментарий от Naymen

>Да это, спасибо вам, огромное.

можно на ты. нажми кнопку «пометить как решенное».

tazhate ★★★★★
()
Ответ на: комментарий от redixin

Nginx принимает все входящие соединения и отдает статику. Apache обрабатывает php скрипты.

Naymen
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.