Table des matières
1 : paramètres principaux
1.1 Worker_processes
1.2 Worker_cpu_affinity
1.3 Worker_priority
1.4 worker_rlimit_nofile
1.5 error_log
1.6 pid
1.7 user
2 : paramètres d'événements
2.1 worker_connections
2.2 accept_mutex
. 2.2.1 Phénomène Jingqun
2.2.2 accepter le traitement de verrouillage
2.2.3 Inconvénients de l'acceptation du verrouillage
2.2.4 Recommandations de configuration
2.3 accept_mutex_delay
Maison Opération et maintenance Nginx Introduction aux paramètres qui doivent être configurés dans nginx

Introduction aux paramètres qui doivent être configurés dans nginx

Nov 12, 2020 pm 04:00 PM
nginx 参数

Introduction aux paramètres qui doivent être configurés dans nginx

1 : paramètres principaux

1.1 Worker_processes

# 指定nginx开启worker工作子进程数量# number默认1,建议配置数量与CPU核心数量相等worker_processes number复制代码
Copier après la connexion

1.2 Worker_cpu_affinity

# nginx默认未开启利用多核CPU,开启某个核心该位置标志为1即可# worker_processes 最多开启8个,所以多核最多8个也就够用。示例配置开启4核worker_cpu_affinity 00000001 00000010 00000100 00001000复制代码
Copier après la connexion

1.3 Worker_priority

# 进程优先级,数值越低占用资源越多# number默认10,值范围-20 ~ 20# 建议配置-10即可,最好别低于Linux系统进程-5优先级worker_priority number复制代码
Copier après la connexion

1.4 worker_rlimit_nofile

# 一个子进程可以打开文件描述限制# nginx默认一个子进程打开文件描述限制数量 = (ulimt -u) / worker_processes# 因为进程处理连接任务很多时候不均衡,所以最好设置为与系统数量一致worker_rlimit_nofile (ulimit -u)复制代码
Copier après la connexion

1.5 error_log

# file指定日志输出文件位置,默认logs/error.log# level指定日志输出最低级别,默认error级别。当然可以设置为debug、info等error_log file [level]复制代码
Copier après la connexion

1.6 pid

# file默认值logs/pid.log,指定nginx中master进程的PID输出文件位置pid file复制代码
Copier après la connexion

1.7 user

# user第二个参数user,配置nginx进程运行用户,默认nobody# group配置nginx进程运行用户组,默认nobodyuser user [group]复制代码
Copier après la connexion

2 : paramètres d'événements

2.1 worker_connections

# nginx指定一个子进程可处理连接数量# number默认数量1024# nginx可处理连接总数 = worker_processes * worker_connecitonsworker_connections  number复制代码
Copier après la connexion

2.2 accept_mutex

Le paramètre accept_mutex est le commutateur de verrouillage mutex d'acceptation pour la connexion de traitement du processus de travail. La valeur par défaut est activée avant la version 1.11.3 et la valeur par défaut est désactivée dans les versions ultérieures

. 2.2.1 Phénomène Jingqun

Nginx peut configurer plusieurs processus de travail via le paramètre worker_processes, et plusieurs processus de travail écouteront le même port après le fork. Si une connexion externe arrive, tous les processus enfants seront réveillés pour saisir la connexion. À moins qu'un processus enfant ne gère avec succès l'événement d'acceptation, les processus enfants se rendormiront. Il en résulte de nombreux changements de contexte inutiles. Il s'agit du phénomène du troupeau tonitruant

2.2.2 accepter le traitement de verrouillage

nginx ajoute un mutex d'acceptation afin qu'il n'y ait qu'un seul processus enregistré dans epoll, évitant ainsi le phénomène du troupeau tonitruant. C'est-à-dire que lorsqu'une connexion arrive, il ne peut y avoir qu'un seul processus enfant à gérer

尝试获取accept锁if success
    在epoll中注册accept事件else
    在epoll中注销accept事件
处理所有连接事件
释放accept锁复制代码
Copier après la connexion
2.2.3 Inconvénients de l'acceptation du verrouillage

Accepter le verrouillage semble résoudre parfaitement les problèmes causés par le phénomène de groupe tonitruant, mais cela entraîne également le problème que certains processus enfants sont très occupés et certains processus enfants sont très inactifs, en particulier dans les applications avec un débit et une concurrence relativement élevés. D'une manière générale, il s'agit du problème de la charge inégale des sous-processus de travail

2.2.4 Recommandations de configuration
  • Pour les connexions courtes d'applications distribuées, il est préférable d'activer ce paramètre pour éviter trop de surcharge de changement de contexte
  • Pour les applications à connexion longue, il est préférable de désactiver ce paramètre pour éviter une charge de connexion excessive sur un travailleur, entraînant une utilisation élevée du processeur d'un processus

2.3 accept_mutex_delay

Lorsque accept_mutex est activé, vous devez déboguer le paramètre accept_mutex_delay en fonction du scénario d'application. Ce paramètre spécifie le temps après lequel tous les processus enfants reprendront le verrou d'acceptation. Des valeurs de paramètres appropriées peuvent aider à réduire les problèmes de déséquilibre de charge des travailleurs. Valeur par défaut 500 ms

Recommandations associées : Tutoriel Nginx

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment autoriser l'accès au réseau externe au serveur Tomcat Comment autoriser l'accès au réseau externe au serveur Tomcat Apr 21, 2024 am 07:22 AM

Pour permettre au serveur Tomcat d'accéder au réseau externe, vous devez : modifier le fichier de configuration Tomcat pour autoriser les connexions externes. Ajoutez une règle de pare-feu pour autoriser l'accès au port du serveur Tomcat. Créez un enregistrement DNS pointant le nom de domaine vers l'adresse IP publique du serveur Tomcat. Facultatif : utilisez un proxy inverse pour améliorer la sécurité et les performances. Facultatif : configurez HTTPS pour une sécurité accrue.

Comment exécuter thinkphp Comment exécuter thinkphp Apr 09, 2024 pm 05:39 PM

Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

Bienvenue sur nginx !Comment le résoudre ? Bienvenue sur nginx !Comment le résoudre ? Apr 17, 2024 am 05:12 AM

Pour résoudre l'erreur "Bienvenue sur nginx!", vous devez vérifier la configuration de l'hôte virtuel, activer l'hôte virtuel, recharger Nginx, si le fichier de configuration de l'hôte virtuel est introuvable, créer une page par défaut et recharger Nginx, puis le message d'erreur. disparaîtra et le site Web sera affiché normalement.

Comment déployer le projet nodejs sur le serveur Comment déployer le projet nodejs sur le serveur Apr 21, 2024 am 04:40 AM

Étapes de déploiement de serveur pour un projet Node.js : Préparez l'environnement de déploiement : obtenez l'accès au serveur, installez Node.js, configurez un référentiel Git. Créez l'application : utilisez npm run build pour générer du code et des dépendances déployables. Téléchargez le code sur le serveur : via Git ou File Transfer Protocol. Installer les dépendances : connectez-vous en SSH au serveur et installez les dépendances de l'application à l'aide de npm install. Démarrez l'application : utilisez une commande telle que node index.js pour démarrer l'application ou utilisez un gestionnaire de processus tel que pm2. Configurer un proxy inverse (facultatif) : utilisez un proxy inverse tel que Nginx ou Apache pour acheminer le trafic vers votre application

Comment générer une URL à partir d'un fichier HTML Comment générer une URL à partir d'un fichier HTML Apr 21, 2024 pm 12:57 PM

La conversion d'un fichier HTML en URL nécessite un serveur Web, ce qui implique les étapes suivantes : Obtenir un serveur Web. Configurez un serveur Web. Téléchargez le fichier HTML. Créez un nom de domaine. Acheminez la demande.

Contrôle de sécurité du type de paramètre de fonction C++ Contrôle de sécurité du type de paramètre de fonction C++ Apr 19, 2024 pm 12:00 PM

La vérification de sécurité des types de paramètres C++ garantit que les fonctions n'acceptent que les valeurs des types attendus via des vérifications au moment de la compilation, des vérifications au moment de l'exécution et des assertions statiques, évitant ainsi tout comportement inattendu et les plantages du programme : Vérification du type au moment de la compilation : le compilateur vérifie la compatibilité des types. Vérification du type d'exécution : utilisez Dynamic_cast pour vérifier la compatibilité des types et lancez une exception s'il n'y a pas de correspondance. Assertion statique : affirmer les conditions de type au moment de la compilation.

Quelles sont les instructions les plus courantes dans un fichier docker Quelles sont les instructions les plus courantes dans un fichier docker Apr 07, 2024 pm 07:21 PM

Les instructions les plus couramment utilisées dans Dockerfile sont : FROM : créer une nouvelle image ou dériver une nouvelle image RUN : exécuter des commandes (installer le logiciel, configurer le système) COPY : copier des fichiers locaux dans l'image ADD : similaire à COPY, il peut automatiquement décompresser tar ou obtenir des fichiers URL CMD : Spécifiez la commande au démarrage du conteneur EXPOSE : Déclarez le port d'écoute du conteneur (mais pas public) ENV : Définissez la variable d'environnement VOLUME : Montez le répertoire hôte ou le volume anonyme WORKDIR : Définissez le répertoire de travail dans le conteneur ENTRYPOINT : spécifiez ce qu'il faut exécuter lorsque le conteneur démarre. Fichier exécutable (similaire à CMD, mais ne peut pas être écrasé)

Nodejs est-il accessible de l'extérieur ? Nodejs est-il accessible de l'extérieur ? Apr 21, 2024 am 04:43 AM

Oui, Node.js est accessible de l’extérieur. Vous pouvez utiliser les méthodes suivantes : Utilisez Cloud Functions pour déployer la fonction et la rendre accessible au public. Utilisez le framework Express pour créer des itinéraires et définir des points de terminaison. Utilisez Nginx pour inverser les requêtes de proxy vers les applications Node.js. Utilisez des conteneurs Docker pour exécuter des applications Node.js et les exposer via le mappage de ports.

See all articles