Nginx downloads lentos mesmo com disco baixo io

1

Eu tenho um pequeno site de streaming de vídeo e tenho notado alguns problemas com vídeos no meu site. Eu tenho vários servidores de 1gbit e os servidores só estão a 1/4 da velocidade da porta. Quando tento carregar alguns arquivos, os downloads levam muito tempo para começar. O disco IO está em 2% e vejo velocidades de leitura de disco entre 3 e 10mb / s.

As velocidades de leitura de disco são incrivelmente lentas considerando a quantidade de conexão que os servidores têm. Cada servidor tem quatro unidades configuradas com o RAID 10. Aqui está a configuração do nginx que estou testando agora. É muito frustrante porque são servidores muito poderosos, mas eu sinto que algo não está configurado corretamente. Talvez algo não relacionado ao nginx, mas relacionado a conexões TCP? Agradecemos antecipadamente por suas sugestões.

worker_processes  8;
worker_rlimit_nofile 10240;
worker_rlimit_sigpending 32768;
error_log  logs/error.log  crit;


events {
    worker_connections  1240;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile on;
    tcp_nopush on;

    access_log  off;
    limit_conn_log_level info;

    #sendfile       on;
    #tcp_nopush     on;
    reset_timedout_connection on;

    server_tokens off;
    autoindex off;

    keepalive_timeout  0;
    #keepalive_timeout  65;

    limit_zone one $binary_remote_addr 10m;
    perl_modules  perl;
    perl_require  download.pm;

    server {
        listen       182;
        server_name  localhost;
        proxy_set_header X-Real-IP $remote_addr;

        location /nstatus {
            stub_status on;
            #allow 127.0.0.1;
            #deny all;
                        }

        location / {
            root   html;
            index  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;
        }

    }

}
    
por Steven 11.10.2014 / 07:55

1 resposta

0

Você pode estar interessado em ativar a E / S de disco assíncrono com o uso do aio

Sua documentação é completa e fornece exemplos de blocos de configuração.

O uso de E / S assíncronas permitirá que o nginx multiplexe acessos ao disco e limite o limite para os de hardware, empilhando solicitações sem esperar que a anterior seja concluída. As camadas de SO / driver / hardware farão o resto e responderão o mais rápido possível.

    
por 06.11.2014 / 14:21