你有沒有遇到過一個程序占用了你所有的網絡帶寬的情況?如果你遇到過,那麼你就需要限制帶寬的應用。不管你是一個系統管理員還是一名普通Linux用戶,您都應該學習如何控制應用的上傳和下載速度來確保你的網絡帶寬不會被一個程序耗光。
Trickle是一款帶寬控制供給,用來限制如Firefox, FTP , SSH以及其他使用網絡帶寬的程序的帶寬。你希望你的Youtube音樂體驗影響到你的ftp下載麼?如果不想,請繼續閱讀這篇文章,學習如何在你的機器上安裝和使用trickle。
trickle工具有一些依賴包,安裝和使用trickle之前必須安裝“libevent 庫”,不過這個庫在大多數現在的Linux機器上已經默認安裝。
在Debian/Ubuntu/Mint 機器上運行 apt-get install trickle進行安裝。請確保源列表已經更新,接著安裝你想要的應用。
$ sudo apt-get update $ sudo apt-get install trickle
首先你需要更新系統,然後使用下面的命令安裝trickle。
# yum update # yum install trickle
Trickle通過控制socket數據讀寫量來控制和限制應用的上傳/下載速度。它使用另一個版本的BSD套接字API,但是區別是trickle還管理socket調用。
要注意的是trickle使用動態鏈接和加載,所以它只對於使用"Glibc庫"的程序有用。由於trickle可以設置數據在socket上的傳輸延遲,所以它可以用來限制一個應用的網絡帶寬。
Trickle不能用於限制使用UDP協議的應用的帶寬,它只可用於TCP連接,但是你要知道它也並不是對所有的TCP連接有效。如果你一直仔細地看這篇文章,你可以猜到原因是什麼。你還記得trickle只對使用Glibc庫應用有效吧?
還要說一下,trickle無法工作在使用靜態鏈接的可執行程序上。
既然trickle無法限制每個應用的上傳/下載速度,就應該有個方法找出trickle可以工作的應用。
ldd工具可以幫我們找出某個特定的程序是否使用了libc.so庫。如果程序使用了這個庫,就可以使用trickle來限制它的網絡帶寬使用。
ldd命令用於打印每個程序需要的共享庫。如果你是一個好奇的Linux Geek,那麼你可以使用man命令來找出關於ldd工具的更多信息。
# man ldd
Filezilla是一款使用ftp協議傳輸文件的程序,trickle可以用來限制它的下載或者上傳速度麼?在你考慮的時候,我使用以下的命令來找出trickle是否可用於filezilla。
# ldd filezilla | grep libc.so
就我而言,它輸出了如下:
oltjano@oltjano-X55CR:/usr/bin$ ldd filezilla | grep libc.so libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6bc4000)
既然filezilla使用了“libc.so”庫,那麼trickle可以用來限制它的網絡帶寬。這個方法可以用在任何你感興趣的程序上。
Linux下的帶寬控制心得體會 http://www.linuxidc.com/Linux/2007-07/6006.htm