毎晩ファイルをバックアップするCentOS5.7サーバーがあります。サーバーがホストするさまざまなサイトへの訪問者が、バックアップがネットワークを介して転送されている間、パフォーマンスが低下するのではないかと心配しています。
プロセスの最大許容スループットをネットワークインターフェイスに制限することは可能ですか? SSHベースのファイル転送を使用可能な帯域幅の半分に制限したいと思います。これはサーバー側またはクライアント側にある可能性があります。つまり、接続を開始するクライアントまたは接続を受信するサーバーのいずれかでこれを実行できれば幸いです。
(残念ながら、バックアップ専用のインターフェースを追加することはできません。利用可能なスループットを増やすことはできますが、それは単にネットワーク転送がより速く完了することを意味しますが、それでも接続の総容量を最大にします。)
いくつかの背景
おそらく、いくつかの背景が整っています。一歩下がると、バックアップ自体を作成するのに十分なローカルスペースがないという問題がありました。 SSHFSを入力してください!バックアップは、表面上はローカルドライブに保存されるため、Webサーバー自体にバックアップビットが存在することはありません。
なぜそれが重要なのですか?それは由緒あるrsync --bwlimit
の使用を無効にするように思われるからです 。 rsync
実際に転送を行っておらず、できません バックアップファイルを保存するためのスペースを確保することすらできないからです。
「待ってください、なぜバックアップファイルを作成する必要があるのですか? rsync
だけではないのはなぜですか ソースファイルとフォルダ?」 「Plesk」と呼ばれる迷惑なものがミックスされているからです!これは、便宜上Pleskを使用するクライアント向けのWebホストです。そのため、Pleskを使用してバックアップを開始します。これは、Pleskがバックアップにあらゆる種類の追加の魔法を追加して、復元手順中にバックアップを非常に安全に消費できるようにするためです。
悲しい顔
承認された回答:
iptables
を使用できます パケットにマークを付けるには(–pid-owner…)、tc
を使用します トラフィックを形成するため。
「–sid-owner」を使用して、そのプロセスのスレッドと子を含めることもできます。
http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#OWNERMATCH
一致 –pid-owner
カーネル 2.3、2.4、2.5、2.6
例 iptables -A OUTPUT -m owner –pid-owner 78
説明 この一致は、パケットの原因となったプロセスID(PID)に基づいてパケットを一致させるために使用されます。この一致を使用するのは少し難しいですが、1つの例は、PID 94がHTTPポートからパケットを送信できるようにすることだけです(もちろん、HTTPプロセスがスレッド化されていない場合)。または、特定のデーモンのps出力からPIDを取得し、そのルールを追加する小さなスクリプトを作成することもできます。たとえば、Pid-owner.txtの例に示すようなルールを設定できます