Maison > Opération et maintenance > Nginx > le corps du texte

Comment optimiser le noyau à haute concurrence Nginx

WBOY
Libérer: 2023-05-15 17:52:06
avant
1009 Les gens l'ont consulté

Qu'est-ce que la haute simultanéité ?

  • Les paramètres par défaut du noyau Linux prennent en compte les scénarios les plus courants et ne conviennent pas aux serveurs Web qui prennent en charge un accès simultané élevé, les paramètres du noyau Linux doivent donc être modifiés, afin que nginx puisse avoir des performances plus élevées ;

  • De nombreuses choses peuvent être faites lors de l'optimisation du noyau. Cependant, nous effectuons généralement des ajustements en fonction des caractéristiques commerciales lorsque nginx est utilisé comme serveur de contenu Web statique, comme proxy inverse ou comme serveur. fournit un serveur de compression, il est prévu que l'ajustement des paramètres du noyau soit différent. Voici une configuration simple des paramètres réseau TCP les plus courants qui permettent à nginx de prendre en charge davantage de requêtes simultanées

  • Celles-ci nécessitent la modification de /etc/sysctl ; conf pour modifier les paramètres du noyau.

Méthode de configuration

Analyse détaillée de la configuration

#Indique le nombre maximum de handles pouvant être ouverts par un seul processus

fs.file-max = 999999
Copier après la connexion

#Le paramètre est défini sur 1, indiquant que le socket dans ; l'état time_wait peut être réutilisé pour un nouveau lien TCP, ce qui est d'une grande importance pour le serveur, car il y a toujours un grand nombre de liens dans l'état time_wait

net.ipv4.tcp_tw_reuse = 1
Copier après la connexion

# Lorsque keepalive démarre, la fréquence d'envoi de TCP keepalive ; messages ; la durée par défaut est de 2 heures, réglez-la sur 10 minutes, ce qui permet de nettoyer les liens invalides plus rapidement.

ner.ipv4.tcp_keepalive_time = 600
Copier après la connexion

#Lorsque le serveur ferme activement le lien, la durée maximale pendant laquelle le socket reste dans l'état fin_wait_2

net.ipv4.tcp_fin_timeout = 30
Copier après la connexion

#Ce paramètre indique le nombre maximum de sockets time_wait autorisé par le système d'exploitation. Si ce nombre est dépassé, le socket time_wait. will Il est effacé immédiatement et un message d'avertissement est imprimé.

#Ce paramètre est par défaut 180000. Trop de sockets time_wait ralentiront le serveur Web.

net.ipv4.tcp_max_tw_buckets = 5000
Copier après la connexion

#Définissez la plage de valeurs du port local pour les liens udp et tcp.

net.ipv4.ip_local_port_range = 1024 65000
Copier après la connexion

# Définit la valeur minimale, la valeur par défaut et la valeur maximale pour que TCP accepte le cache.

net.ipv4.tcp_rmem = 10240 87380 12582912
Copier après la connexion

#Définissez la valeur minimale, la valeur par défaut et la valeur maximale du cache d'envoi TCP.

net.ipv4.tcp_wmem = 10240 87380 12582912
Copier après la connexion

#Lorsque la carte réseau reçoit des paquets de données plus rapidement que la vitesse de traitement du noyau, il y aura une file d'attente pour enregistrer ces paquets de données. Ce paramètre représente la valeur maximale de la file d'attente.

net.core.netdev_max_backlog = 8096
Copier après la connexion

#Indique que le socket du noyau accepte la taille de tampon par défaut.

net.core.rmem_default = 6291456
Copier après la connexion

# indique la taille par défaut du tampon d'envoi du socket du noyau.

net.core.wmem_default = 6291456
Copier après la connexion

# Indique que le socket du noyau accepte une taille de tampon plus grande.

net.core.rmem_max = 12582912
Copier après la connexion

# indique la plus grande taille du tampon d'envoi du socket du noyau.

net.core.wmem_max = 12582912
Copier après la connexion

Remarque : les quatre configurations ci-dessus doivent être prises en compte de manière globale en fonction de la logique métier et des coûts matériels réels

# n'a rien à voir avec les performances ; Utilisé pour résoudre la synchronisation TCP.

net.ipv4.tcp_syncookies = 1
Copier après la connexion

#Ce paramètre indique la longueur maximale de la file d'attente des requêtes de synchronisation acceptée pendant la phase d'établissement de la négociation à trois voies TCP. La valeur par défaut est 1024. Une valeur plus grande peut empêcher Linux de perdre l'initiation du client lorsque nginx est trop occupé pour accepter de nouvelles connexions. .demande de lien.

net.ipv4.tcp_max_syn_backlog = 8192
Copier après la connexion

#Ce paramètre est utilisé pour définir et activer le recyclage rapide timewait.

net.ipv4.tcp_tw_recycle = 1
Copier après la connexion

La valeur par défaut de l'option est 128. Ce paramètre est utilisé pour ajuster le nombre de connexions TCP initiées par le système en même temps. Dans les demandes simultanées élevées, la valeur par défaut peut entraîner l'expiration ou la retransmission du lien. il doit donc être ajusté en fonction du nombre de requêtes simultanées élevées. L'option

net.core.somaxconn=262114
Copier après la connexion

# est utilisée pour définir le nombre maximum de sockets TCP dans le système qui ne sont associés à aucun descripteur de fichier utilisateur. Si ce nombre est dépassé, le lien orphelin sera immédiatement réinitialisé et un message d'avertissement sera émis. Cette limite indique que pour éviter de simples dos***, vous n'avez pas besoin de trop vous fier à cette limite ni même de réduire cette valeur. Dans la plupart des cas, augmentez cette valeur.

net.ipv4.tcp_max_orphans=262114
Copier après la connexion

Pour plus de facilité d'utilisation, vous pouvez le copier directement ci-dessous

net.ipv4.tcp_tw_reuse = 1
fs.file-max = 999999
net.ipv4.tcp_fin_timeout = 30
ner.ipv4.tcp_keepalive_time = 600
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!