GNU/Linux >> Linux Esercitazione >  >> Cent OS

Centos:come limitare la larghezza di banda utilizzata da un processo?

Ho un server CentOS 5.7 che eseguirà il backup dei suoi file ogni notte. Temo che i visitatori dei vari siti ospitati dal server subiscano prestazioni ridotte durante il trasferimento del backup attraverso la rete.

È possibile limitare il throughput massimo consentito di un processo a un'interfaccia di rete? Vorrei limitare il trasferimento di file basato su SSH solo a metà della mia larghezza di banda disponibile. Questo potrebbe essere sul lato server o client; cioè, sarei felice di farlo sul client che avvia la connessione o sul server che riceve la connessione.

(Purtroppo non posso aggiungere un'interfaccia da dedicare ai backup. Potrei aumentare il mio throughput disponibile, ma ciò significherebbe semplicemente che il trasferimento di rete verrebbe completato più velocemente, ma massimizzerebbe comunque la capacità totale della connessione mentre lo faccio .)

Un po' di background

Forse qualche sfondo è in ordine. Facendo un passo indietro, ho avuto un problema con la mancanza di spazio locale sufficiente per creare il backup stesso. Entra in SSHFS! Il backup viene salvato su quella che apparentemente è un'unità locale in modo che nessun bit di backup sia mai sul server web stesso.

Perché è importante? Perché ciò sembrerebbe invalidare l'uso del venerabile rsync --bwlimit . rsync non sta effettivamente effettuando il trasferimento né può perché non posso nemmeno risparmiare lo spazio per salvare il file di backup.

Posso sentirti chiedere:"Allora aspetta, perché hai anche bisogno di creare un file di backup? Perché non solo rsync i file e le cartelle di origine?" Perché una cosa fastidiosa chiamata "Plesk" è nel mix! Questo è il mio host web rivolto al client che utilizza Plesk per comodità. Pertanto, utilizzo Plesk per avviare i backup perché Plesk aggiunge ogni sorta di magia extra al backup che rende molto sicuro il suo consumo durante una procedura di ripristino.

faccina triste

Risposta accettata:

Puoi usare iptables per contrassegnare un pacchetto (–pid-owner …), quindi utilizzare tc per modellare il traffico.
Anche "–sid-owner" può essere utilizzato per includere thread e figli di quel processo.

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

Partita –pid-proprietario
Kernel 2.3, 2.4, 2.5 e 2.6
Esempio iptables -A OUTPUT -m proprietario –pid-proprietario 78
Spiegazione Questa corrispondenza viene utilizzata per abbinare i pacchetti in base al Process ID (PID) che ne era responsabile. Questa corrispondenza è un po' più difficile da usare, ma un esempio potrebbe essere solo quello di consentire al PID 94 di inviare pacchetti dalla porta HTTP (se il processo HTTP non è in thread, ovviamente). In alternativa potremmo scrivere un piccolo script che acquisisca il PID da un output ps per un demone specifico e quindi aggiunga una regola per esso. Ad esempio, potresti avere una regola come mostrato nell'esempio Pid-owner.txt


Cent OS
  1. Come configurare un server OpenVPN su CentOS 7

  2. Come installare Teamspeak 3 Server su CentOS 8

  3. Come modificare il nome host su CentOS

  4. Configura il server DHCP su CentOS 8 - Come farlo?

  5. RHEL/CentOS 6,7 :Come calcolare la dimensione di hugepage utilizzata da un processo/applicazione specifico

Come installare Centreon su Centos 7

Come installare Minecraft Server su CentOS

Come installare Nginx su CentOS

Come installare MySQL 8 su CentOS 8

Come installare Shoutcast Server su CentOS 8

Come installare Lighttpd su CentOS