it-swarm-eu.dev

Jak mohu omezit šířku pásma používanou procesem?

Mám server CentOS 5.7, který bude v noci zálohovat jeho soubory. Obávám se, že návštěvníci různých webů, které hostitelé serveru zažijí, sníží výkon, zatímco se záloha přenáší přes síť.

Je možné omezit maximální povolenou propustnost procesu na síťové rozhraní? Chtěl bych omezit přenos souborů založených na SSH pouze na polovinu dostupné šířky pásma. Může to být na straně serveru nebo klienta; to je, ráda bych to udělala na klientovi, který naváže připojení, nebo na serveru, který připojení přijal.

(Bohužel nemůžu přidat rozhraní, které by bylo možné věnovat zálohám. Mohl bych zvýšit svoji dostupnou propustnost, ale to by znamenalo pouze to, že by se síťový přenos dokončil rychleji, ale přitom by se při jeho provádění stále zvyšovala celková kapacita připojení.)


Nějaké pozadí

Možná je nějaké pozadí v pořádku. Když jsem ustoupil, měl jsem problém s nedostatkem místního prostoru pro vytvoření samotné zálohy. Zadejte SSHFS! Záloha je uložena na zdánlivě místní jednotku, takže na samotném webovém serveru nejsou nikdy žádné záložní bity.

Proč je to důležité? Protože se zdá, že by to zneplatnilo použití ctihodného rsync --bwlimit. rsync ve skutečnosti nedělá přenos ani can, protože nemůžu ani ušetřit místo pro uložení záložního souboru.

Slyším, že se ptáte: „Takže počkejte, proč potřebujete dokonce vytvořit záložní soubor? Proč ne jen rsync zdrojové soubory a složky?“ Protože v mixu je nepříjemná věc zvaná "Plesk"! Toto je můj hostitelský webový hostitel, který používá Plesk pro pohodlí. Jako takový používám Plesk k iniciaci zálohování, protože Plesk přidává do zálohy celou řadu dalších kouzel, díky čemuž je konzumace během procesu obnovy velmi bezpečná.

smutná tvář

44
Wesley

Můžete použít iptables k označení paketu (--pid-owner ...), pak pomocí tc pro formování provozu. Rovněž "--sid-owner" lze použít k zahrnutí vláken a dětí tohoto procesu.

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

Zápas - vlastník nabídky
jádro 2,3, 2,4, 2,5 a 2,6
Příklad iptables -A OUTPUT -m owner --pid-owner 78
Vysvětlení Tato shoda se používá k porovnávání paketů na základě ID procesu (PID), které za ně odpovídalo. Tuto shodu je o něco těžší použít, ale jedním z příkladů by bylo pouze umožnit PID 94 odesílat pakety z portu HTTP (pokud proces HTTP není navléknut, samozřejmě). Alternativně bychom mohli napsat malý skript, který popadne PID z výstupu ps pro konkrétního démona a poté k němu přidá pravidlo. Například byste mohli mít pravidlo, jak je uvedeno v příkladu Pid-owner.txt

26
Mircea Vutcovici

Jednou z možností, které jsem právě objevil, je použít pramínek .

trickle je přenosný lehký shrnovač šířky pásma uživatelského prostoru. Může běžet v kooperativním režimu (společně s stiknutím) nebo v samostatném režimu.

pramínek pracuje s využitím předběžného načítání unixového zavaděče. V podstatě poskytuje aplikaci novou verzi funkce, která je požadována pro odesílání a přijímání dat prostřednictvím soketů. Poté omezuje přenos na základě zpoždění odesílání a přijímání dat přes soket. pramínek běží zcela v uživatelském prostoru a nevyžaduje oprávnění root.

41
Wesley

Pokud můžete psát do kanálu (nebo stdout), můžete nainstalovat příkaz pv (prohlížeč potrubí). Původně bylo napsáno, aby zobrazoval průběh dat přenesených potrubím.

tar cvf - /files/to/backup | pv -L 512k > /your/file/on/sshfs

   -L RATE, --rate-limit RATE
          Limit the transfer to a maximum of RATE  bytes  per  second.   A
          suffix of "k", "m", "g", or "t" can be added to denote kilobytes
          (*1024), megabytes, and so on.
22
hhaamu

Ze stejného důvodu používám rsync s volbou --bwlimit = KBPS.

Náš 1 Gbit ethernet je snadno schopen zaplavit naše staré SCSI320 DAS RAID a v podstatě DOS některé naše starší produkční krabice, které se na něj spoléhají ve svých NFS obchodech.

7
Magellan

Jak přenášíte data? (rsync přes ssh? scp? sftp? něco jiného?)

rsync vám umožní omezit šířku pásma (viz možnost - bwlimit = KBPS). rsync -e ssh - zkráceně ..

Případně můžete nastavit qdisc nebo ekvivalent k omezení efektivity, ale domnívám se, že ve vašem případě by to bylo vážně nadměrné. Dokumentace k tomu je k dispozici na Linux Advanced Routing and Traffic Control HOWTO

4
Devdas