為apt-get限速

此頁由 Linux Wiki用戶Chenxing 於 2008年8月28日 (星期四) 10:12 的最後更改。

從 Linux Wiki

提示:此文已超过 16 年(5930 天)未更新,如发现内容过时或有误,欢迎改进:)

如果與他人共用互聯網,一個人下載速度過快可能會導致同網絡的其它用戶無法正常上網。尤其是教育網用戶,找一個快速的apt-get源並不難,但下載時可能會影響他人使用網絡(尤其是對實時性要求很高的局域網遊戲)。

目錄

方法一:配置apt

一位朋友在郵件列表中發佈了限速的文章:[1]

創建文件/etc/apt/apt.conf.d/76download

Acquire
{
   Queue-mode "access";
   http
   {
       Dl-Limit "65";
   };
};

Queue-mode使用access使apt-get只建立一個連接,而不是像默認的那樣為每個服務器建立一個連接。以避免兩個連接佔滿帶寬。

apt軟件包提供的方案稍有缺陷,下面給出幾種間接的解決方法。

方法二:使用限速軟件trickle

在Ubuntu Forum中,francesc給出了一個解決方案。[2]該方法使用能限制帶寬的軟件trickle實現了這一目標。

這一方法針對性強,有限速效果,但CPU佔用率極高。

切換至root用戶,執行下面的程序:

# 安装trickle
apt-get install trickle
# 备份apt-get的http下载程序
dpkg-divert --local --rename /usr/lib/apt/methods/http
# 生成限速脚本
echo '#!/bin/sh' > /usr/lib/apt/methods/http
echo '/usr/bin/trickle -s -d 25 /usr/lib/apt/methods/http.distrib' >> /usr/lib/apt/methods/http
#添加执行权限
chmod 755 /usr/lib/apt/methods/http

注意上面的-d 25表示限速為25Kb/s。可以根據實際需要做修改。類似地,也可以對ftp協議做修改。

# 备份apt-get的ftp下载程序
dpkg-divert --local --rename /usr/lib/apt/methods/ftp
# 生成限速脚本
echo '#!/bin/sh' > /usr/lib/apt/methods/ftp
echo '/usr/bin/trickle -s -d 25 /usr/lib/apt/methods/ftp.distrib' >> /usr/lib/apt/methods/ftp
#添加执行权限
chmod 755 /usr/lib/apt/methods/ftp

如果要恢復成原狀:

rm /usr/lib/apt/methods/{http,ftp}
dpkg-divert --local --remove /usr/lib/apt/methods/http
dpkg-divert --local --remove /usr/lib/apt/methods/ftp

方法三:限制網絡接口的速度

wondershaper可以限制整個網絡接口的速度[3]

先安裝wondershaper:

# apt-get install wondershaper

限制上、下行帶寬(單位Kb):

# wondershaper eth0 2000 240

取消限制:

# wondershaper clear eth0 

更多的信息,詳見wondershaper的說明。

參考資料

  1. http://linux.derkeiler.com/Mailing-Lists/Debian/2008-02/msg01872.html
  2. http://ubuntuforums.org/showthread.php?t=20342
  3. http://brainstorm.ubuntu.com/idea/2806/

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
個人工具
简体繁体转换