Linux

rsync 伺服器端限制頻寬/連接

  • September 9, 2012

在 VOIP 應用程序中,我每天有多達 3000rsync個來自 linux 伺服器的客戶端音頻文件,伺服器放置在數據中心(10Mbps 輸入/輸出),伺服器作為執行 FreeSWITCH 的 VOIP sip 伺服器工作(低 ping 延遲應該得到保證。)

因此,我希望對 rsync 進行伺服器端控制,其中控制:

  1. 限制總出站頻寬。
  2. 限制連接總數。(在最大連接數時拒絕客戶端,並讓它在特定時間範圍後重試。)
  3. 可選:列出/終止單個連接。

通常我會使用 ssh + rsync + pem_keys 和一些額外的選項,但上述要求通過簡單的命令行是不可行的。誰能給我一些方向。或顯示一些腳本/工具?我也可能會整合它們並在 github 上發布。謝謝!

如果我處於您的情況,我會繼續使用庫存工具,純粹是因為您可以始終使它們保持最新並獲得所有最新的錯誤修復/功能,而無需使用自己的程式碼對其進行修補。

結果,我將通過以下方式實現您想要的:

  1. 用於tc流量整形 - OpenVZ有一篇很好的文章。
  2. 使用iptables- Cyber​​citi來拯救這個。您將reject新連接超過門檻值,因此您需要包裝rsync客戶端以確保它在快速失敗時重試。
  3. 實現這一點的最簡單方法可能是將所有文件放在一個組下,並將一組使用者作為該組的一部分。然後給每個客戶端他們自己的使用者連接。從這裡開始,殺死連接的客戶端的 PID 應該相對簡單(我相信還有其他方法可以唯一地辨識使用者,這只是一個建議。)

引用自:https://serverfault.com/questions/425680