La risorsa temporaneamente non è disponibile durante la connessione a livello superiore (php5-fpm)

Ho spesso questo errore su pagine casuali quando sono come le connessioni ~ + 10K (netstat -an | grep 80 | wc -l). Ciò accade mentre ci è ancora + 10GB di memory libera e il carico del server è inferiore a 3.

I miei config appropriati:

  • Regole diverse di nginx basate sul referrer
  • Quali sono i vantaggi e i difetti dell'uso di Nginx su Apache con Rails quando si utilizza Passenger
  • Nginx Cache-Control
  • PHP di avvio: Imansible caricare la libreria dynamic '/usr/lib64/php/modules/gd.so' simbolo indefinito: gdImageWebpCtx in Unknown
  • Quando utilizzare un socket MySQL e quando utilizzare un host: port?
  • Nginx che serve il contenuto dal "host virtuale" sbagliato mentre accede con https
  • /etc/php5/fpm/php.ini

    memory_limit = 1024M default_socket_timeout = 120 

    /etc/php5/fpm/pool.d/www.conf

     pm = dynamic pm.max_children = 30 pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 5 ;pm.max_requests =20000 #uncommented with any value didn't fixed request_terminate_timeout = 120s 

    Ho anche raddoubleto i suddetti vizi (vale a dire 60 bambini, 10 inizio, 10 server max) senza alcun risultato.

    /etc/nginx/nginx.conf

     worker_connections 4024; keepalive_timeout 10; 

    Nginx stesso dietro Vernice e memcached è abilitazione. rendering della pagina è abbastanza veloce in generale.

    Questo sembra essere un problema molto comune, non ho trovato alcuna soluzione utile o addirittura analisi delle possibili cause. Quindi i tuoi suggerimenti / soluzioni sono molto apprezzati.

  • Qual è la differenza tra example.com e www.example.com?
  • One Solution collect form web for “La risorsa temporaneamente non è disponibile durante la connessione a livello superiore (php5-fpm)”

    Purtroppo è difficile dare una risposta definitiva a questa domanda senza più dettagli.

    Ho un paio di ipotesi però:

    La mia prima ipotesi è che i socket (s) del lavoratore di php5-fpm hanno un backlog troppo piccolo per il tuo carico. La lunghezza della coda di ordini è 128 per impostazione predefinita su Linux.

    Per aumentarlo dovresti:

    1. Aumenta il valore sysctl di net.core.somaxconn .
    2. Aumenta l'impostazione di configuration php5-fpm di listen.backlog .

    Potresti provare ad aumentare sia per il 2048 ad esempio per vedere se ciò aiuta.

    La seconda ipotesi è il limite massimo dei descrittori dei file aperti per process per i lavoratori di nginx. Il modo migliore per aumentarlo dipende dalla tua distribuzione. Su Ubuntu / Debian dovresti avere un'occhiata nel /etc/default/nginx e worker_rlimit_nofile configuration di worker_rlimit_nofile nginx.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.