Nginx+linux
pavel at pronskiy.ru
pavel at pronskiy.ru
Sat May 31 17:59:18 MSD 2008
У меня конфигурация приблизительно такая же, только процессор E6600 и
памяти 2gb
В среднем соединений не так много, примерно 150-200 постоянных, страницы
отдаются моментально без кэширования запросов.
Попробуйте такие настройки:
worker_processes 2;
worker_rlimit_nofile 4096;
worker_priority 5;
events {
worker_connections 4096;
use epoll;
}
client_header_buffer_size 16k;
client_max_body_size 20M;
client_header_timeout 60;
client_body_timeout 60;
large_client_header_buffers 16 16k;
send_timeout 120;
proxy_read_timeout 180;
proxy_connect_timeout 60;
proxy_send_timeout 180;
proxy_buffer_size 64k;
proxy_buffers 64 512k;
proxy_busy_buffers_size 1024k;
proxy_temp_file_write_size 1024k;
gzip on;
gzip_min_length 10240;
gzip_buffers 32 64k;
gzip_types application/x-javascript text/css;
msie_padding on;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
output_buffers 32 256k;
postpone_output 1460;
lingering_time 30;
lingering_timeout 6;
reset_timedout_connection on;
keepalive_timeout 160;
optimize_server_names on;
server_names_hash_max_size 1024;
server_names_hash_bucket_size 512;
server {
#В данном примере используется php-fpm
location ~* ^.+\.(php)$ {
include /etc/nginx/php-cgi.conf;
fastcgi_pass unix:/var/run/php-domain.tld.sock;
}
}
---Файл php-cgi.conf
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
fastcgi_ignore_client_abort on;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_SOFTWARE "Bulbulator OS/2";
fastcgi_param GATEWAY_INTERFACE "CGI/1.1";
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
У меня было нечто подобное с отдачей страниц но проблема была из-за
очень частых обращений в базу, решилось оптимизацией.
Kostya Alexandrov пишет:
> А чем sendfile не угодил?
> Есть ли резон tcp_nodelay?
>
> sleepy wrote:
>> В сообщении от Saturday 31 May 2008 21:35:36 Andrew Velikoredchanin
>> написал(а):
>>
>>> sleepy пишет:
>>>
>>>> Не могу понять в чем дело, у меня под Linux сервер уже сдыхает при
>>>> 200 -
>>>> 250 одновременных подключениях. Пробовал rtsig и epoll, толку ни
>>>> какого.
>>>> Перепробовал различные комбинации колличества worker процессов. С
>>>> бэкендом общается через unix сокет, всего 5 пулов . В чем может быть
>>>> проблемма и решаема ли она?
>>>>
>>> Вы забыли указать версию nginx, характер нагрузки, мощность сервера,
>>> загруженность его другими задачами и т.д.
>>>
>>
>> Прошу прощения, nginx version: nginx/0.6.31
>> PHP 5.2.6
>>
>> Нагрузка в виде где то 500-700 одновременных пользователей, отдаются
>> веб страницы в связке с php через fastcgi. Сервер c процессором
>> Intel(R) Core(TM)
>> 2 Duo CPU E8200 @ 2.66GHz память 8 Гб других задач на сервере
>> нет!, процессор простаивает. на страницах скриптов пишется время
>> генерации меньше 0,2 секунды, но страница отдаётся очень долго,
>> вернее время между запросом и загрузкой достигает около полуминуты.
>> Пробовал до этого переходить от старых версий к новым, ситуация не
>> меняется.
>>
>> отслеживание по команде top даёт такую картину:
>>
>> сначала нет никакой нагрузки, не смотря на то что запросов уже много
>> сделано, потом появляется на короткий промежуток в загрузке php
>> процессы, быстро отрабатывают, и простой продолжается еще какое то
>> время. Далее всё повторяется снова.
>> Привожу конфиг:
>>
>> #user apache;
>> worker_processes 25;
>>
>> #error_log logs/error.log;
>> #error_log logs/error.log notice;
>> #error_log logs/error.log info;
>> #pid logs/nginx.pid;
>>
>>
>> events {
>> worker_connections 1024;
>> #use rtsig;
>> use epoll;
>> }
>>
>>
>> http {
>>
>> include mime.types;
>> default_type application/octet-stream;
>>
>> log_format main '$remote_addr - $remote_user [$time_local]
>> $request '
>> '"$status" $body_bytes_sent "$http_referer" '
>> '"$http_user_agent" "$http_x_forwarded_for"';
>>
>> #access_log logs/access.log main;
>> server_tokens off;
>> sendfile off;
>> tcp_nopush off;
>> tcp_nodelay on;
>> keepalive_timeout 0;
>> #keepalive_timeout 65;
>> open_file_cache max=300 inactive=20s;
>> open_file_cache_valid 30s;
>> open_file_cache_min_uses 2;
>> open_file_cache_errors on;
>>
>>
>> # gzip on;
>>
>> upstream backend {
>>
>>
>> server unix:/tmp/php1.sock;
>> server unix:/tmp/php2.sock;
>> server unix:/tmp/php3.sock;
>> server unix:/tmp/php4.sock;
>> server unix:/tmp/php.sock;
>> }
>>
>>
>> server {
>> listen 80;
>> server_name changeSource www.dsvload.net;
>>
>> #charset koi8-r;
>>
>> access_log logs/host.access.log main;
>>
>> location / {
>> root /home/ftp/dsvload/dsvload.net ;
>> index index.php index.html index.htm;
>> }
>> # error_page 404 /404.html;
>>
>> # redirect server error pages to the static page /50x.html
>> #
>> error_page 500 502 503 504 /50x.html;
>> location = /50x.html {
>> root html;
>> }
>>
>> location ~ \.php$ {
>> fastcgi_pass backend;
>> fastcgi_index index.php;
>> fastcgi_param SCRIPT_FILENAME
>> /home/ftp/dsvload/dsvload.net$fastcgi_script_name;
>> fastcgi_param QUERY_STRING $query_string;
>> fastcgi_param REMOTE_ADDR $remote_addr;
>>
>> # - если скрипты обрабатывают запросы POST:
>> fastcgi_param REQUEST_METHOD $request_method;
>> fastcgi_param CONTENT_TYPE $content_type;
>> fastcgi_param CONTENT_LENGTH $content_length;
>> # - и все остальные:
>> #fastcgi_param PATH_TRANSLATED $fastcgi_path_translated;
>> fastcgi_param SCRIPT_NAME $fastcgi_script_name;
>> fastcgi_param REQUEST_URI $request_uri;
>> fastcgi_param DOCUMENT_URI $document_uri;
>> fastcgi_param DOCUMENT_ROOT $document_root;
>> fastcgi_param SERVER_PROTOCOL $server_protocol;
>> fastcgi_param GATEWAY_INTERFACE CGI/1.1;
>> fastcgi_param REMOTE_PORT $remote_port;
>> fastcgi_param SERVER_ADDR $server_addr;
>> fastcgi_param SERVER_PORT $server_port;
>> fastcgi_param SERVER_NAME
>> $server_name;
>> fastcgi_param DOCUMENT_ROOT $document_root;
>> #fastcgi_intercept_errors on;
>>
>>
>> # include conf/fastcgi_params;
>> }
>> }
>> # HTTPS server
>> #
>> #server {
>> # listen 443;
>> # server_name localhost;
>>
>> # ssl on;
>> # ssl_certificate cert.pem;
>> # ssl_certificate_key cert.key;
>>
>> # ssl_session_timeout 5m;
>>
>> # ssl_protocols SSLv2 SSLv3 TLSv1;
>> # ssl_ciphers
>> ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:
>> +EXP;
>> # ssl_prefer_server_ciphers on;
>>
>> # location / {
>> # root html;
>> # index index.html index.htm;
>> # }
>> #}
>>
>>
>>
>> }
>>
>>
>>
>
--
icq: 99699699
More information about the nginx-ru
mailing list