歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux系統中安裝使用Trickle來控制用戶帶寬

1. trickle介紹
trickle是一款輕量級的用戶空間帶寬控制管理的工具,用來限制如浏覽器Firefox等, FTP , SSH,curl,wget,scp等等使用網絡帶寬。
trickle通過控制socket數據讀寫量來控制和限制應用的上傳和下載速度。要注意的是trickle使用動態鏈接和加載,所以只對於使用libc.so庫的程序有用,其他的則無效的。由於trickle可以設置數據在socket上的傳輸延遲,因此就可以用來限制應用程序的網絡帶寬。
trickle不能用於限制使用UDP協議的應用的帶寬,只可用於TCP連接。也無法工作在使用靜態鏈接的可執行程序上。
2. 如何判定trickle對有個應用程序有效
根據是否使用libc.so庫來判斷。
可以通過ldd命令來查看某個應用程序是否使用了libc.so庫。如果應用程序使用了這個庫,就可以用trickle來限制網絡帶寬,否則不行。

復制代碼代碼如下:
# ldd /usr/bin/wget | grep libc.so
libc.so.6 => /lib64/libc.so.6 (0x00002adc30397000) 

3.怎樣在Linux上安裝Trickle
  trickle工具有一些依賴包,安裝和使用trickle之前必須安裝“libevent 庫”,不過這個庫在大多數現在的Linux機器上已經默認安裝。
  在 Debian/Ubuntu/Linux Mint 上
  在Debian/Ubuntu/Mint 機器上運行 apt-get install trickle進行安裝。請確保源列表已經更新,接著安裝你想要的應用。

復制代碼代碼如下:
  $ sudo apt-get update
  $ sudo apt-get install trickle

  在 RHEL/CentOS/Fedora 上
  首先你需要更新系統,然後使用下面的命令安裝trickle。

復制代碼代碼如下:
  # yum update
  # yum install trickle

  Trickle如何工作?
  Trickle通過控制socket數據讀寫量來控制和限制應用的上傳/下載速度。它使用另一個版本的BSD套接字API,但是區別是trickle還管理socket調用。
  要注意的是trickle使用動態鏈接和加載,所以它只對於使用“Glibc庫”的程序有用。由於trickle可以設置數據在socket上的傳輸延遲,所以它可以用來限制一個應用的網絡帶寬。
  Trickle不能做什麼?
  Trickle不能用於限制使用UDP協議的應用的帶寬,它只可用於TCP連接,但是你要知道它也並不是對所有的TCP連接有效。如果你一直仔細地看這篇文章,你可以猜到原因是什麼。

  還要說一下,trickle無法工作在使用靜態鏈接的可執行程序上。

4. 使用trickle

復制代碼代碼如下:
# trickle --help
Usage: trickle [-hvVs] [-d <rate>] [-u <rate>] [-w <length>] [-t <seconds>]
[-l <length>] [-n <path>] command ...
-h Help (this)
-v Increase verbosity level
-V Print trickle version
-s 在獨立模式下獨立運行
-d <rate> 設置最大累計下載速率為 <rate> KB/s
-u <rate> 設置最大累計上傳速度為 <rate> KB/s
-w <length> 設置窗口長度為 <length> KB 。默認512KB。
-t <seconds> 設置默認的平滑時間 <seconds> s 。平滑時間決定多少時間間隔trickle將嘗試讓應用程序傳輸數據。較小的值(0.1 - 1秒)會導致更連續(平滑)會話,非常適合於交互式應用。而較大的值(1 - 10秒)可能會產生一陣陣的發送和接收數據,對需要大量帶寬的應用程序更好。
-l <length> 設置默認的平滑長度 <length> KB 。 默認10 KB。
-n <path> 指定trickled socket名稱 <path> 。 默認/tmp/.trickled.sock 。
-L <ms> 設置延時。

5. 舉例
限制wget下載速度為50KB/s
201615121115939.jpg (1425×132)

6.  限制一個shell的所有命令帶寬
201615121132111.jpg (1418×132)

Copyright © Linux教程網 All Rights Reserved