プロセスで使用する帯域幅を制限する方法は?

プロセスで使用する帯域幅を制限する方法は?

毎晩ファイルをバックアップするCentOS 5.7サーバーがあります。バックアップがネットワーク経由で送信されている間に、サーバーでホストされているさまざまなサイトを訪問する訪問者のパフォーマンスが低下する可能性があります。

プロセスの最大許容スループットをネットワークインターフェイスに制限できますか? SSHベースのファイル転送を利用可能な帯域幅の半分に制限したいと思います。これはサーバー側またはクライアント側で実行できます。つまり、接続を開始するクライアントまたは接続を受信するサーバーで実行できます。

(残念ながら、バックアップ専用のインターフェイスを追加することはできません。利用可能なスループットを増やすことができますが、これはネットワーク転送がより早く完了しますが、その間に接続の総容量が依然として最大化されることを意味します。)


いくつかの背景

たぶんどんな文脈が理解できるかもしれません。一歩下がって私が経験した問題は、バックアップ自体を作成するのに十分なローカルスペースがないということでした。 SSHFSを入力してください!バックアップは表面上ではローカルドライブに保存されるため、Webサーバー自体にはバックアップビットはありません。

これはなぜ重要ですか?なぜなら、これは聖下の使用を無効にするように見えるからですrsync --bwlimitrsync実際に転送が行われておらず、できるバックアップファイルを保存するスペースすら用意できないからです。

「ちょっと待って、なぜバックアップファイルを作るのですか?rsync「Plesk」という迷惑が混ざっているからです!これは、便宜上、Pleskを使用する顧客向けWebホストです。したがって、Plesk は回復プロセス中に使用するのに非常に安全なすべての種類の追加の魔法をバックアップに追加するため、Plesk を使用してバックアップを開始します。

悲しい顔

ベストアンサー1

今見つけたオプションの1つはtrickle

trickleポータブル軽量ユーザースペース帯域幅シェーパー。コラボレーションモード(有効)またはスタンドアロンモードで実行できますtrickled

trickleUnixローダーのプリロードを活用して機能します。デフォルトでは、これはソケットを介してデータを送受信するために必要な新しいバージョンの機能をアプリケーションに提供します。その後、ソケットを介したデータの送受信を遅らせてトラフィックを制限します。trickle完全にユーザー空間で実行され、root権限は必要ありません。

Ubuntuユーザーの場合は、以下を実行してインストールします。

sudo apt install trickle

たとえば、ランタイムはmaven buildダウンロード速度を20kB / sに、アップロード速度を111kB / sに制限します。

trickle -sd 20 -u 111 mvn build

おすすめ記事