Ich habe einen CentOS 5.7-Server, dessen Dateien jede Nacht gesichert werden. Ich mache mir Sorgen, dass die Leistung der Besucher der verschiedenen Sites, die auf dem Server gehostet werden, abnimmt, während das Backup über das Netzwerk übertragen wird.
Ist es möglich, den maximal zulässigen Durchsatz eines Prozesses auf eine Netzwerkschnittstelle zu beschränken? Ich möchte die SSH-basierte Dateiübertragung auf die Hälfte meiner verfügbaren Bandbreite beschränken. Dies kann auf der Server- oder Clientseite erfolgen. 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 wird, aber die Gesamtkapazität der Verbindung dabei immer noch maximal ist.)
Einige Hintergrundinformationen
Vielleicht ist etwas Hintergrundwissen angebracht. Als ich zurücktrat, hatte ich ein Problem, weil ich nicht genug lokalen Speicherplatz hatte, um das Backup selbst zu erstellen. Geben Sie SSHFS ein! Die Sicherung wird auf einem angeblich lokalen Laufwerk gespeichert, sodass sich keine Sicherungsbits auf dem Webserver befinden.
Warum ist das so wichtig? Denn das scheint den Gebrauch des Ehrwürdigen zunichte zu machen rsync --bwlimit
. rsync
führt die Übertragung nicht durch und kann es auch nicht, weil ich nicht einmal den Speicherplatz für die Sicherungsdatei frei habe.
Ich kann Sie fragen hören: "Warten Sie, warum müssen Sie überhaupt eine Sicherungsdatei erstellen? Warum nicht nur rsync
die Quelldateien und -ordner?" Denn eine nervige Sache namens "Plesk" ist in der Mischung! Dies ist mein Client-konformer Webhost, der Plesk zur Vereinfachung verwendet. Daher verwende ich Plesk, um die Sicherungen zu initiieren, da Plesk dem Backup jede Menge zusätzliche Magie hinzufügt, die es während eines Wiederherstellungsvorgangs sehr sicher macht.
trauriges Gesicht
ionice
, die Schreibvorgänge zu drosseln, die ein Prozess ausführen kann. Da ich in ein SSHFS-Dateisystem schreibe, kann ich die Klasse des Sicherungsprozesses auf 3 setzen, damit er allen anderen Prozessen, die schreiben möchten, vollständig nachgibt. Auf diese Weise erhalte ich den gewünschten Effekt, der die Erfahrung eines Website-Besuchers aufgrund der Backup-Hogging-Bandbreite nicht beeinträchtigt.