Tous les paramètres de réglage TCP/IP se trouvent dans le répertoire /proc/sys/net/. Par exemple, voici certains des paramètres de réglage les plus importants, suivis de leur signification :
1. /proc/sys/net/core/rmem_max — Tampon de réception de données TCP maximal
2. /proc/sys/net/core/wmem_max — Tampon d'envoi de données TCP maximal
3. /proc/sys/net/ipv4/tcp_timestamps — L'horodatage est ajouté à l'en-tête TCP de 12 octets (veuillez vous référer à la RFC 1323).
4. /proc/sys/net/ipv4/tcp_sack — réponse sélective
5. /proc/sys/net/ipv4/tcp_window_scaling — Prend en charge des fenêtres TCP plus grandes Si la fenêtre TCP maximale dépasse 65 535 (64 Ko), cette valeur doit être définie sur 1.
6. rmem_default — taille de la fenêtre de réception par défaut
7. rmem_max — la taille maximale de la fenêtre de réception
8. wmem_default — taille de la fenêtre d'envoi par défaut
9. wmem_max — la taille maximale de la fenêtre d'envoi
Tout le contenu du répertoire /proc est temporaire, donc toutes les modifications seront perdues après le redémarrage du système.
Il est recommandé de modifier automatiquement les paramètres TCP/IP au démarrage du système :
Ajoutez le code suivant au fichier /etc/rc.local, puis enregistrez le fichier. Les paramètres TCP/IP suivants seront automatiquement modifiés au redémarrage du système :
écho 256960 > /proc/sys/net/core/rmem_default
écho 256960 > /proc/sys/net/core/rmem_max
écho 256960 > /proc/sys/net/core/wmem_default
écho 256960 > /proc/sys/net/core/wmem_max
écho 0 > /proc/sys/net/ipv4/tcp_timestamps
écho 1 > /proc/sys/net/ipv4/tcp_sack
écho 1 > /proc/sys/net/ipv4/tcp_window_scaling
Les paramètres TCP/IP sont explicites, la taille de la fenêtre TCP est définie sur 256960, les horodatages TCP sont désactivés (annulez l'ajout de 12 octets à chaque en-tête de paquet), les fenêtres TCP plus grandes et les réponses sélectives TCP sont prises en charge.
Les valeurs ci-dessus sont définies en fonction de la connexion Internet et du taux de bande passante/latence maximum.
Remarque : Les valeurs de l'exemple ci-dessus peuvent être utilisées en pratique, mais elles n'incluent qu'une partie des paramètres.
Autre méthode : utilisez /etc/sysctl.conf pour configurer les paramètres aux valeurs que vous avez définies au démarrage du système :
net.core.rmem_default = 256960
net.core.rmem_max = 256960
net.core.wmem_default = 256960
net.core.wmem_max = 256960
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack =1
net.ipv4.tcp_window_scaling = 1
-------------------------------------------------- ---------------
/proc/sys/fs/super-max
Ce fichier spécifie le nombre maximum de gestionnaires de superblocs. Tout système de fichiers monté nécessite l'utilisation d'un superbloc, donc si un grand nombre de systèmes de fichiers sont montés, le gestionnaire de superbloc peut être épuisé.
Paramètre par défaut : 256
/proc/sys/fs/super-nr
Ce fichier montre le nombre actuel de superblocs alloués. Ce fichier est en lecture seule et est utilisé uniquement à des fins d'affichage des informations.
/proc/sys/noyau
/proc/sys/kernel/acct
Ce fichier comporte trois valeurs configurables qui contrôlent le moment où la comptabilité des processus commence en fonction de la quantité d'espace libre (exprimée en pourcentage) sur le système de fichiers contenant le journal :
Si l'espace libre tombe en dessous de cette valeur en pourcentage, arrêtez la comptabilité du processus
Si l'espace libre est supérieur à cette valeur en pourcentage, démarrez la comptabilité du processus
À quelle fréquence (en secondes) les deux valeurs ci-dessus sont vérifiées
Pour modifier une valeur dans ce fichier, une séquence de nombres séparés par des espaces doit être renvoyée.
Paramètre par défaut : 2 4 30
Ces valeurs entraînent l'arrêt de la comptabilité s'il y a moins de 2 % d'espace libre sur le système de fichiers contenant le journal, et la reprise de la comptabilité s'il y a 4 % ou plus d'espace libre. Des contrôles sont effectués toutes les 30 secondes.
/proc/sys/kernel/ctrl-alt-del
Ce fichier a une valeur binaire qui contrôle la façon dont le système réagit lorsqu'il reçoit la combinaison de touches ctrl+alt+suppr. Ces deux valeurs représentent :
Une valeur de zéro (0) signifie que ctrl+alt+delete est capturé et envoyé au programme d'initialisation. Cela permettra au système de s'arrêter et de redémarrer normalement, comme si vous aviez entré la commande d'arrêt.
Une valeur de un (1) signifie que ctrl+alt+delete n'est pas capturé et qu'un arrêt non propre sera effectué, comme si l'alimentation avait été coupée directement.
Paramètre par défaut : 0
/proc/sys/kernel/nom de domaine
Ce fichier vous permet de configurer le nom de domaine réseau. Il n'a pas de valeur par défaut. Le nom de domaine peut ou non avoir été défini.
/proc/sys/kernel/nom d'hôte
Ce fichier vous permet de configurer les noms d'hôtes du réseau. Il n'a pas de valeur par défaut, le nom d'hôte peut ou non avoir été défini.
/proc/ss/kernel/msgmax
Ce fichier spécifie la longueur maximale des messages envoyés d'un processus à un autre. Le transfert de messages entre les processus se produit dans la mémoire du noyau et n'est pas transféré sur le disque. Par conséquent, si vous augmentez cette valeur, vous augmenterez la quantité de mémoire utilisée par le système d'exploitation.
Paramètre par défaut : 8192
/proc/sys/kernel/msgmnb
Ce fichier spécifie le nombre maximum d'octets dans une file d'attente de messages.
Paramètre par défaut : 16384
/proc/sys/kernel/msgmni
Ce fichier spécifie le nombre maximum d'ID Message Queuing.
Paramètre par défaut : 16
/proc/sys/kernel/panique
Ce fichier indique combien de temps, en secondes, le noyau attend avant de redémarrer si une « panique du noyau » se produit. Un paramètre de zéro (0) seconde désactivera un redémarrage en cas de panique du noyau.
Paramètre par défaut : 0
/proc/sys/kernel/printk
Ce fichier comporte quatre valeurs numériques qui définissent où le message de journalisation est envoyé en fonction de son importance. Pour plus d'informations sur les différents niveaux de journalisation, lisez la page de manuel syslog(2). Les quatre valeurs de ce fichier sont :
Niveau de journalisation de la console : les messages avec une priorité supérieure à cette valeur seront imprimés sur la console
Niveau d'enregistrement des messages par défaut : les messages sans priorité seront imprimés avec cette priorité
Niveau de journalisation minimum de la console : valeur minimale à laquelle le niveau de journalisation de la console peut être défini (priorité la plus élevée)
Niveau de journalisation de la console par défaut : valeur par défaut du niveau de journalisation de la console
Paramètre par défaut : 6 4 1 7
/proc/sys/kernel/shmall
Ce fichier correspond à la quantité totale de mémoire partagée (en octets) disponible sur le système à un moment donné.
Paramètre par défaut : 2097152
/proc/sys/kernel/shmax
Ce fichier spécifie la taille maximale (en octets) des segments de mémoire partagée autorisée par le noyau.
Paramètre par défaut : 33554432
/proc/sys/kernel/shmmni
Ce fichier représente le nombre maximum de segments de mémoire partagée utilisés pour l'ensemble du système.
Paramètre par défaut : 4096
/proc/sys/kernel/sysrq
Si la valeur spécifiée dans ce fichier est différente de zéro, la clé de demande système est activée.
Paramètre par défaut : 0
/proc/sys/kernel/threads-max
Ce fichier spécifie le nombre maximum de threads que le noyau peut utiliser.
Paramètre par défaut : 2048
/proc/sys/net
/proc/sys/net/core/message_burst
Le temps (en 1/10 de seconde) nécessaire pour écrire un nouveau message d'avertissement ; les autres messages d'avertissement reçus pendant ce temps seront ignorés. Ceci est utilisé pour empêcher les attaques de déni de service utilisées par quelqu'un qui tente d'"inonder" votre système de messages.
Paramètre par défaut : 50 (5 secondes)
/proc/sys/net/core/message_cost
Ce fichier contient la valeur de coût associée à chaque message d'avertissement. Plus la valeur est élevée, plus le message d'avertissement risque d'être ignoré.
Paramètre par défaut : 5
/proc/sys/net/core/netdev_max_backlog
Ce fichier spécifie le nombre maximum de paquets pouvant être mis en file d'attente lorsque l'interface reçoit des paquets plus rapidement que le noyau ne peut les traiter.
Paramètre par défaut : 300
/proc/sys/net/core/optmem_max
Ce fichier spécifie la taille de tampon maximale autorisée pour chaque socket.
/proc/sys/net/core/rmem_default
Ce fichier spécifie la valeur par défaut de la taille du tampon de socket de réception en octets.
/proc/sys/net/core/rmem_max
Ce fichier spécifie la taille maximale du tampon de socket de réception en octets.
/proc/sys/net/core/wmem_default
Ce fichier spécifie la valeur par défaut de la taille du tampon du socket d'envoi en octets.
/proc/sys/net/core/wmem_max
Ce fichier spécifie la taille maximale du tampon de socket d'envoi en octets.
/proc/sys/net/ipv4
Tous les paramètres IPv4 et IPv6 sont documentés dans la documentation du code source du noyau. Voir le fichier /usr/src/linux/Documentation/networking/ip-sysctl.txt.
/proc/sys/net/ipv6
Identique à IPv4.
/proc/sys/VM
/proc/sys/vm/buffermem
Ce fichier contrôle la quantité de mémoire système globale utilisée pour la mémoire tampon (exprimée en pourcentage). Il a trois valeurs, qui sont définies en écrivant une séquence de nombres séparés par des espaces dans le fichier.
Pourcentage minimum de mémoire utilisé pour les tampons
Si une situation se produit dans laquelle il ne reste plus beaucoup de mémoire système et où la mémoire système est réduite, le système tentera de maintenir la quantité de mémoire tampon.
Pourcentage maximum de mémoire utilisé pour les tampons
Paramètre par défaut : 2 10 60
/proc/sys/vm/freepages
Ce fichier contrôle la manière dont le système répond aux différents niveaux de mémoire disponible. Il a trois valeurs, qui sont définies en écrivant une séquence de nombres séparés par des espaces dans le fichier.
Le noyau n'est autorisé à allouer de la mémoire que si le nombre de pages disponibles dans le système atteint une limite minimale.
Si le nombre de pages libres dans le système tombe en dessous de cette limite, le noyau lancera l'échange de manière plus agressive pour libérer de la mémoire et maintenir les performances du système.
Le noyau essaiera de conserver cette quantité de mémoire système disponible. Les valeurs inférieures permettront l'échange de noyau.
Paramètre par défaut : 512 768 1024
/proc/sys/vm/kswapd
Ce fichier contrôle la manière dont le noyau est autorisé à échanger de la mémoire. Il a trois valeurs, qui sont définies en écrivant une séquence de nombres séparés par des espaces dans le fichier :
Le nombre maximum de pages que le noyau tente de libérer en même temps. Si vous souhaitez augmenter la bande passante lors de l'échange de mémoire, vous devez augmenter cette valeur.
Le nombre minimum de fois que le noyau tente de libérer une page par swap.
Le nombre de pages écrites par le noyau dans un seul échange. Cela a le plus grand impact sur les performances du système. Plus cette valeur est grande, plus de données sont échangées et moins de temps est consacré aux recherches sur disque. Cependant, une valeur trop élevée peut nuire aux performances du système en « inondant » la file d'attente des requêtes.
Paramètre par défaut : 512 32 8
/proc/sys/vm/pagecache
Ce fichier fait le même travail que /proc/sys/vm/buffermem, mais constitue une carte mémoire du fichier et un cache général.
Rendre les paramètres du noyau persistants
Un utilitaire pratique est fourni ici pour modifier n'importe quel paramètre du noyau dans le répertoire /proc/sys. Il vous permet de modifier le noyau en cours d'exécution (similaire aux méthodes d'écho et de redirection utilisées ci-dessus), mais il dispose également d'un fichier de configuration qui est exécuté au démarrage du système. Cela vous permet d'apporter des modifications au noyau en cours d'exécution et d'ajouter ces modifications au fichier de configuration afin qu'elles persistent lors des redémarrages du système.
Cet utilitaire s'appelle sysctl et est entièrement documenté dans la page de manuel de sysctl(8). Le fichier de configuration de sysctl est /etc/sysctl.conf, qui peut être édité et enregistré sous sysctl.conf(8). sysctl traite les fichiers sous /proc/sys comme des variables individuelles pouvant être modifiées. Par conséquent, en prenant le fichier /proc/sys/fs/file-max sous /proc/sys comme exemple, il représente le nombre maximum de descripteurs de fichiers autorisés dans le système. Ce fichier est représenté par fs.file-max.
Cet exemple révèle des choses merveilleuses sur la notation sysctl. Étant donné que sysctl ne peut modifier que les variables du répertoire /proc/sys et que les gens pensent toujours que les variables se trouvent dans ce répertoire, cette partie du nom de la variable (/proc/sys) est omise. Un autre changement à noter est le remplacement du séparateur de répertoire (barre oblique /) par le point anglais (point.).
Il existe deux règles simples pour convertir des fichiers dans /proc/sys en variables dans sysctl :
Retirez la partie avant /proc/sys.
Remplacez les barres obliques dans les noms de fichiers par des points.
Ces deux règles vous permettent de convertir n'importe quel nom de fichier dans /proc/sys en n'importe quel nom de variable dans sysctl. La conversion générale d'un fichier en variable est :
/proc/sys/dir/file --> dir.file
dir1.dir2.file --> /proc/sys/dir1/dir2/file
Vous pouvez utiliser la commande sysctl -a pour afficher toutes les variables pouvant être modifiées et leurs paramètres actuels.
Les variables peuvent également être modifiées à l'aide de sysctl, qui fait exactement la même chose que la méthode echo utilisée ci-dessus. Sa représentation est :
sysctl -w dir.file="valeur"
En utilisant à nouveau file-max comme exemple, utilisez l'une des deux méthodes suivantes pour modifier la valeur en 16384.