Оптимизируйте Nginx + PHP-FPM в течение более быстрого времени отклика (для Openx adserving)

Я в настоящее время выполняю Nginx + PHP-FPM для обслуживания рекламы на OpenX. В настоящее время мое время отклика ужасно, даже во времена низкой загрузки. Однако мой ЦП и Ресурсы памяти прекрасны, таким образом, я, может казаться, не выясняю, каково узкое место.

Моя текущая конфигурация для nginx и php-fpm:

worker_processes 20;
worker_rlimit_nofile 50000;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  15000;
    multi_accept off;
    use epoll;
}

http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    tcp_nopush     off;

    keepalive_timeout  0;
    #keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    gzip_comp_level 2;
    gzip_proxied    any;
    gzip_types    text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

server {
    listen   80;
    server_name  localhost;
    access_log  /var/log/nginx/localhost.access.log;

# Default location
    location / {
        root   /var/www;
        index  index.php;
    }

## Parse all .php file in the /var/www directory
    location ~ .php$ {
        fastcgi_pass   localhost:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
        include fastcgi_params;
        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_ignore_client_abort     off;
    }

PHP-FPM:
rlimit_files = 50000
max_children = 500

Я только включал параматерей PHP-FPM, которых я изменил для PHP-FPM.

У кого-либо есть какие-либо подсказки относительно того, как я могу оптимизировать его так, я могу служить большему количеству запросов? Я вижу ужасающее время отклика прямо сейчас.

23
задан Michael Mrozek 27 January 2011 в 06:39
поделиться

2 ответа

у вас на машине 20 процессоров или ядер? также, возможно, попробуйте события со значением по умолчанию для вашей ОС ... может быть, больше процессов fcgi вместо большего количества nginx ... вероятно, достаточно начать с 2-4 рабочих nginx ...

1
ответ дан 29 November 2019 в 00:44
поделиться

Вам определенно следует сократить количество рабочих, поскольку я сомневаюсь, что у вас есть 20 ядер / процессоров. Кроме того, я бы посмотрел на ваш сервер базы данных, есть большая вероятность, что проблема именно там.

Кроме того, вы увеличили worker_rlimit_nofile до 50000 . Надеюсь, вы знаете, что операционная система обычно устанавливает ограничение на 1024 (по умолчанию), вы можете попытаться запросить текущий limit, набрав ulimit -n

Вы можете поднять жесткое ограничение NOFILE (количество открытых файлов), выполнив эту команду ulimit -n 50000 в init.d или посетить этот другой вопрос о stackoverflow , чтобы узнать, как использовать limits.conf для постоянной установки ограничений для всей системы.

4
ответ дан 29 November 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: