GNU/Linux >> Tutoriels Linux >  >> Cent OS

Centos – Comment limiter la bande passante utilisée par un processus ?

J'ai un serveur CentOS 5.7 qui sauvegardera ses fichiers tous les soirs. Je crains que les visiteurs des différents sites hébergés par le serveur ne subissent une dégradation des performances pendant le transfert de la sauvegarde sur le réseau.

Est-il possible de limiter le débit maximal autorisé d'un processus vers une interface réseau ? Je souhaite limiter le transfert de fichiers basé sur SSH à seulement la moitié de ma bande passante disponible. Cela peut être du côté serveur ou client ; c'est-à-dire que je serais heureux de le faire soit sur le client qui initie la connexion, soit sur le serveur qui reçoit la connexion.

(Malheureusement, je ne peux pas ajouter d'interface dédiée aux sauvegardes. Je pourrais augmenter mon débit disponible, mais cela signifierait simplement que le transfert réseau se terminerait plus rapidement, tout en maximisant la capacité totale de la connexion tout en le faisant .)

Un peu de contexte

Peut-être qu'un peu de contexte s'impose. En prenant du recul, j'ai eu un problème de ne pas avoir assez d'espace local pour créer la sauvegarde elle-même. Entrez SSHFS ! La sauvegarde est enregistrée sur ce qui est apparemment un lecteur local afin qu'aucun bit de sauvegarde ne se trouve jamais sur le serveur Web lui-même.

Pourquoi est-ce important ? Car cela semblerait invalider l'utilisation du vénérable rsync --bwlimit . rsync n'effectue pas réellement le transfert et ne peut pas parce que je ne peux même pas économiser de l'espace pour enregistrer le fichier de sauvegarde.

Je peux vous entendre demander :"Alors, attendez, pourquoi avez-vous même besoin de créer un fichier de sauvegarde ? Pourquoi ne pas simplement rsync les fichiers et dossiers sources ? » Parce qu'une chose ennuyeuse appelée "Plesk" est dans le mélange ! Il s'agit de mon hébergeur client qui utilise Plesk pour plus de commodité. En tant que tel, j'utilise Plesk pour lancer les sauvegardes car Plesk ajoute toutes sortes de magie supplémentaire à la sauvegarde qui rend sa consommation lors d'une procédure de restauration très sûre.

visage triste

Réponse acceptée :

Vous pouvez utiliser iptables pour marquer un paquet (–pid-owner …), puis utilisez tc pour façonner le trafic.
"-sid-owner" peut également être utilisé pour inclure les threads et les enfants de ce processus.

http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#OWNERMATCH

Correspondance –pid-owner
Noyau 2.3, 2.4, 2.5 et 2.6
Exemple iptables -A OUTPUT -m owner –pid-owner 78
Explication Cette correspondance est utilisée pour faire correspondre les paquets en fonction de l'ID de processus (PID) qui en était responsable. Cette correspondance est un peu plus difficile à utiliser, mais un exemple serait de permettre uniquement au PID 94 d'envoyer des paquets depuis le port HTTP (si le processus HTTP n'est pas fileté, bien sûr). Alternativement, nous pourrions écrire un petit script qui récupère le PID d'une sortie ps pour un démon spécifique, puis ajoute une règle pour celui-ci. Par exemple, vous pourriez avoir une règle comme indiqué dans l'exemple Pid-owner.txt


Cent OS
  1. Comment configurer un serveur OpenVPN sur CentOS 7

  2. Comment installer le serveur Teamspeak 3 sur CentOS 8

  3. Comment changer le nom d'hôte sur CentOS

  4. Configurer le serveur DHCP sur CentOS 8 - Comment faire ?

  5. RHEL/CentOS 6,7 :Comment calculer la taille d'une énorme page utilisée par un processus/une application spécifique

Comment installer Centreon sur Centos 7

Comment installer Minecraft Server sur CentOS

Comment installer Nginx sur CentOS

Comment installer MySQL 8 sur CentOS 8

Comment installer Shoutcast Server sur CentOS 8

Comment installer Lighttpd sur CentOS