GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Centos – Wie kann die von einem Prozess verwendete Bandbreite begrenzt werden?

Ich habe einen CentOS 5.7-Server, der seine Dateien jede Nacht sichert. Ich befürchte, dass die Leistung der Besucher der verschiedenen Sites, die der Server hostet, beeinträchtigt wird, während die Sicherung über das Netzwerk übertragen wird.

Ist es möglich, den maximal zulässigen Durchsatz eines Prozesses zu einer Netzwerkschnittstelle zu begrenzen? Ich möchte die SSH-basierte Dateiübertragung auf nur die Hälfte meiner verfügbaren Bandbreite beschränken. Dies kann server- oder clientseitig sein; Das heißt, ich würde dies gerne entweder auf dem Client tun, der die Verbindung initiiert, oder auf dem Server, der die Verbindung empfängt.

(Leider kann ich keine Schnittstelle für Backups hinzufügen. Ich könnte meinen verfügbaren Durchsatz erhöhen, aber das würde lediglich bedeuten, dass die Netzwerkübertragung schneller abgeschlossen würde, aber dabei immer noch die Gesamtkapazität der Verbindung maximieren würde .)

Einige Hintergrundinformationen

Vielleicht ist etwas Hintergrund in Ordnung. Als ich zurücktrat, hatte ich ein Problem damit, dass ich nicht genügend lokalen Speicherplatz hatte, um das Backup selbst zu erstellen. Geben Sie SSHFS ein! Das Backup wird auf einem scheinbar lokalen Laufwerk gespeichert, sodass sich niemals Backup-Bits auf dem Webserver selbst befinden.

Warum ist das wichtig? Denn das scheint die Verwendung des ehrwürdigen rsync --bwlimit zu entkräften . rsync tatsächlich die Übertragung nicht durchführt noch kann weil ich nicht einmal den Platz zum Speichern der Sicherungsdatei erübrigen kann.

Ich kann Sie fragen hören:„Also warten Sie, warum müssen Sie überhaupt eine Sicherungsdatei erstellen? Warum nicht einfach rsync die Quelldateien und -ordner?“ Weil ein nerviges Ding namens „Plesk“ mit im Spiel ist! Dies ist mein Client-Webhost, der Plesk der Einfachheit halber verwendet. Daher verwende ich Plesk, um die Backups zu initiieren, da Plesk dem Backup alle möglichen zusätzlichen Zauber hinzufügt, die die Verwendung während eines Wiederherstellungsverfahrens sehr sicher machen.

trauriges Gesicht

Akzeptierte Antwort:

Sie können iptables verwenden um ein Paket zu markieren (–pid-owner …), dann verwenden Sie tc um den Datenverkehr zu formen.
Auch „–sid-owner“ kann verwendet werden, um Threads und Kinder dieses Prozesses einzuschließen.

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

Übereinstimmung –pid-owner
Kernel 2.3, 2.4, 2.5 und 2.6
Beispiel iptables -A OUTPUT -m Eigentümer –pid-Eigentümer 78
Erklärung Diese Übereinstimmung wird verwendet, um Pakete basierend auf der für sie verantwortlichen Prozess-ID (PID) abzugleichen. Diese Übereinstimmung ist etwas schwieriger zu verwenden, aber ein Beispiel wäre, PID 94 nur zu erlauben, Pakete vom HTTP-Port zu senden (wenn der HTTP-Prozess natürlich kein Thread ist). Alternativ könnten wir ein kleines Skript schreiben, das die PID aus einer ps-Ausgabe für einen bestimmten Daemon holt und dann eine Regel dafür hinzufügt. Als Beispiel könnten Sie eine Regel haben, wie im Pid-owner.txt-Beispiel gezeigt


Cent OS
  1. So richten Sie einen OpenVPN-Server unter CentOS 7 ein

  2. So installieren Sie Teamspeak 3 Server auf CentOS 8

  3. So ändern Sie den Hostnamen unter CentOS

  4. DHCP-Server auf CentOS 8 einrichten – wie geht das?

  5. RHEL/CentOS 6,7 :So berechnen Sie die Größe einer Hugepage, die von einem bestimmten Prozess/einer bestimmten Anwendung verwendet wird

So installieren Sie Centreon auf Centos 7

So installieren Sie Minecraft Server auf CentOS

So installieren Sie Nginx unter CentOS

So installieren Sie MySQL 8 unter CentOS 8

So installieren Sie Shoutcast Server auf CentOS 8

So installieren Sie Lighttpd unter CentOS