Rechercher

31.8. Optimisation des applications avec un grand nombre de requêtes entrantes

download PDF

Si vous exécutez une application qui traite un grand nombre de requêtes entrantes, comme les serveurs web, il peut être nécessaire de régler Red Hat Enterprise Linux afin d'optimiser les performances.

31.8.1. Ajustement du backlog d'écoute TCP pour traiter un nombre élevé de tentatives de connexion TCP

Lorsqu'une application ouvre un socket TCP dans l'état LISTEN, le noyau limite le nombre de connexions client acceptées que ce socket peut gérer. Si les clients essaient d'établir plus de connexions que l'application ne peut en traiter, les nouvelles connexions sont perdues ou le noyau envoie des cookies SYN au client.

Si le système est soumis à une charge de travail normale et qu'un trop grand nombre de connexions de clients légitimes amène le noyau à envoyer des cookies SYN, réglez Red Hat Enterprise Linux (RHEL) pour les éviter.

Conditions préalables

  • RHEL enregistre possible SYN flooding on port <ip_address>:<port_number> les messages d'erreur dans le journal Systemd.
  • Le nombre élevé de tentatives de connexion provient de sources valables et n'est pas dû à une attaque.

Procédure

  1. Pour vérifier si un réglage est nécessaire, affichez les statistiques du port concerné :

    # ss -ntl '( sport = :443 )'
    State    Recv-Q   Send-Q   Local Address:Port   Peer Address:Port  Process
    LISTEN   650      500      192.0.2.1:443        0.0.0.0:*

    Si le nombre actuel de connexions dans l'arriéré (Recv-Q) est supérieur à l'arriéré de sockets (Send-Q), l'arriéré d'écoute n'est pas encore assez important et un réglage est nécessaire.

  2. Facultatif : Affiche la limite actuelle de l'arriéré d'écoute TCP :

    # sysctl net.core.somaxconn
    net.core.somaxconn = 4096
  3. Créez le fichier /etc/sysctl.d/10-socket-backlog-limit.conf et fixez une limite d'écoute plus élevée :

    net.core.somaxconn = 8192

    Il est à noter que les applications peuvent demander une réserve d'écoute plus importante que celle spécifiée dans le paramètre du noyau net.core.somaxconn, mais le noyau limite l'application au nombre que vous avez défini dans ce paramètre.

  4. Charger le réglage à partir du fichier /etc/sysctl.d/10-socket-backlog-limit.conf:

    # sysctl -p /etc/sysctl.d/10-socket-backlog-limit.conf
  5. Reconfigurer l'application pour utiliser la nouvelle limite d'écoute :

    • Si l'application fournit une option de configuration pour la limite, mettez-la à jour. Par exemple, le serveur HTTP Apache fournit l'option de configuration ListenBacklog pour définir la limite de l'arriéré d'écoute pour ce service.
    • Si vous ne pouvez pas configurer la limite, recompilez l'application.
  6. Restart the application.

Vérification

  1. Surveillez le journal Systemd pour détecter d'autres messages d'erreur possible SYN flooding on port <port_number> messages d'erreur.
  2. Surveillez le nombre actuel de connexions dans l'arriéré et comparez-le à l'arriéré de prises :

    # ss -ntl '( sport = :443 )'
    State    Recv-Q   Send-Q   Local Address:Port   Peer Address:Port  Process
    LISTEN   0        500      192.0.2.1:443        0.0.0.0:*

    Si le nombre actuel de connexions dans l'arriéré (Recv-Q) est supérieur à l'arriéré de sockets (Send-Q), l'arriéré d'écoute n'est pas assez important et un réglage supplémentaire est nécessaire.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.