web-dev-qa-db-fra.com

Comprendre cette erreur: APR_SOCKET_RECV: connexion Réinitialisation par pair (104)

Donc, si je fais de l'analyse comparative avec Apache Benchmark (AB), et j'utilise un grand nombre de demandes. Ensuite, parfois au milieu d'un test, je reçois cette erreur.

Je ne sais même pas ce que cela signifie. Alors, comment puis-je le réparer? Ou est-ce juste quelque chose qui se produira si le serveur gagne trop de coups de temps? Le problème est que si j'exécute 10 000 hits, cela fonctionnera tous parfaitement. Si je l'exécute à nouveau, ça va arriver à 4000 et obtenir l'erreur:

apr_socket_recv: Connection reset by peer (104)

Un peu sur ma configuration: j'ai NGinx prenant des demandes statiques et le traitement des dynamiques à Apache. Le fichier en question est servi de cache par Nginx. Je suppose donc que cela a probablement lieu avec comment Nginx gère les demandes?

Idées?

14
Matthew

Cela signifie que le serveur est fortement chargé avec la demande I.E, tous les threads sont occupés à servir la demande. Solution: augmenter le nombre d'attributs Maxthread pour connecteur dans le fichier Server.XML ou augmenter la valeur d'attribut acceptoire.

accepte: la longueur maximale de la file d'attente pour les demandes de connexion entrantes Lorsque toutes les threads de traitement de la demande possibles sont utilisés. Toute demande reçue lorsque la file d'attente est pleine sera refusée.

4
Kushal Bafna

J'ai eu le même problème et ma version du serveur était:

Server Version: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips mod_fcgid/2.3.9 PHP/5.6.5 mod_Perl/2.0.9dev Perl/v5.16.3

j'ai supprimé des modules non ignifuges et un problème est parti:

Server Version: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips

Donc, un de mod_fcgid, mod_php ou mod_perl causer problème. Vous pouvez essayer de désactiver ceux-ci si vous n'utilisez pas.

(Note latérale; Si vous utilisez OPCACHACH, désactivez FAST_SHUTDOODODODODODOD. C'était un problème aussi: opcache.fast_shutdown = 0)

0
Ünsal Korkmaz

Outre les réponses ici, j'ai lu beaucoup d'autres:

Aucun d'entre eux n'a contribué.

J'ai pensé à changer à wrk Après avoir vu Dutresses similaires .

Trouver le problème

Le problème semble être lié à la quantité de ports éphériques . J'ai essayé de la définir de 50000 à 25000 car il s'agit de la plage de ports. Toujours pas de chance. Ensuite, j'ai eu l'impression qu'il est liée à Time_Wait et ce blog post . Je pense que je pourrais confirmer que:

$ netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n

    1 CLOSE_WAIT
    1 established)
    1 Foreign
    4 LISTEN
    8 SYN_SENT
   62 SYN_RECV
  351 ESTABLISHED
13916 TIME_WAIT

Ce que j'ai essayé

Je ne l'ai pas réparé jusqu'à présent: - /

Selon Sudo sysctl -a | grep net.ipv4.tcp, J'ai:

net.ipv4.tcp_tw_reuse = 0    # No luck setting only that to 1
net.ipv4.tcp_max_tw_buckets = 32768
net.ipv4.tcp_fin_timeout = 60  # Setting it to 5 didn't help either
0
Martin Thoma