使用trickle限制网络上传和下载速度

使用trickle限制网络上传和下载速度
yum install trickle
Trickle如何工作?
Trickle通过控制socket数据读写量来控制和限制应用的上传/下载速度。它使用另一个版本的BSD套接字API,
但是区别是trickle还管理socket调用。要注意的是trickle使用动态链接和加载,所以它只对于使用"Glibc库"的
程序有用。由于trickle可以设置数据在socket上的传输延迟,所以它可以用来限制一个应用的网络带宽。
Trickle不能做什么?
    Trickle不能用于限制使用UDP协议的应用的带宽,它只可用于TCP连接,但是你要知道它也并不是对所有的TCP
连接有效。如果你一直仔细地看这篇文章,你可以猜到原因是什么。你还记得trickle只对使用Glibc库应用有效吧?

如何验证应该程序是否可以使用Trickle.
ldd filezilla | grep libc.so

使用Trickle
# trickle -u 100 -d 50 ftp
上面的命令限制ftp 客户端的上传速度为100K/s,下载速度为50K/s。还可以使用下面的命令,限制在一个shell里运行的所有命令的带宽。

另外一种方法见下面

Linux下限制网卡的带宽,可用来模拟服务器带宽耗尽,从而测试服务器在此时的访问效果。

  1、安装iproute

yum -y install iproute

  2、限制eth0网卡的带宽为50kbit:

/sbin/tc qdisc add dev eth0 root tbf rate 50kbit latency 50ms burst 1000

  3、限制带宽为50kbit后,在百兆局域网中wget下载一个大文件:

[[email protected] ~]# wget http://192.168.1.7/test.zip 
--19:40:27--  http://192.168.1.7/test.zip
Connecting to 192.168.1.7:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23862312 (23M) [application/zip]
Saving to: `test.zip‘

37% [=======>   ] 8,994,816    457K/s  eta 27s

  下载速度为457K/s,限制效果达到。

  4、解除eth0网卡的带宽限制:

/sbin/tc qdisc del dev eth0 root tbf

  5、对比:未作带宽限制情况下,在百兆局域网中wget下载一个大文件:

[[email protected] ~]# wget http://192.168.1.7/test.zip
--19:44:33--  http://192.168.1.7/test.zip
Connecting to 192.168.1.7:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23862312 (23M) [application/zip]
Saving to: `test.zip‘

100%[==========>] 23,862,312  6.14M/s   in 3.7s

19:44:36 (6.16 MB/s) - `test.zip‘ saved [23862312/23862312]

  下载速度为6.16MB/s。

时间: 2024-08-26 04:25:36

使用trickle限制网络上传和下载速度的相关文章

家用宽带的上传和下载速度

1. ADSL 上传速度对下载的影响有试验证明,当上传满载时,下载速度讲变为理想速度的40%.----------------------------------------------------------------------------------------ADSL线路是非对称数字网,下载速度与上传速度之比是8:2带宽的单位是Bit(位),数据大小的单位是Byte(字节) .Kbps 看清楚,不是KBps, 这个相差8倍. 2M宽带,就是2M bit/s,也就是2048 K bit/

Android实战简易教程-第二十八枪(基于Bmob实现头像图片设置和网络上传功能!)

上一篇我们介绍了怎样由uri转换成String ,本文就用到了上篇文章的方法.以下我们介绍一下怎样设置头像后将头像图片上传到云端的方法,本文基于Bmob提供的服务. 看一下代码:(布局文件和前两篇文章依然一样,不再提供) package com.example.userphoto; import java.io.File; import android.app.Activity; import android.content.Intent; import android.database.Cur

电信说的几兆带宽和自己看到的下载/上传速度有什么关系

李老板开了家小网吧,在电信办了4M的电信宽带(ADSL接入),但是他回到家里用IE浏览器测试下载速度却只有400KB/S左右,而且不太稳定,给其他人传送文件速度只有50多KB/S.但是他问他的朋友张老板的4M电信宽带(光纤接入)下载和给其它人传文件速度有多少时,张老板却说,下载有450KB/S左右,很稳定,快的时候有500KB/S,给其它人发送文件的速度也有450~500多KB/S. 于是这个李老板很火,认为电信欺骗了他,说是4M宽带,下载只有400KB/S,而且发送文件(上传)只有50多KB/

FTP上传文件速度太慢怎么办?

用户在建设网站时必不可少的一类工具就是文件传输工具.通过客户端和主机之间的文件交互,及时上传补丁文件.下载日志文件等,确保网站的正常稳定运行.但是也有不少用户反映使用FTP上传文件速度太慢,这是什么原因呢?FTP上传文件速度太慢怎么办?一.为什么FTP上传文件速度太慢? 运维人员在日常的工作中会使用FTP软件上传补丁.升级包.下载数据.日志等数据.FTP上传与下载速度慢,严重的影响运维人员的工作效率,与此同时一味的指责网络提供商,其实有些以偏概全. 为什么FTP上传文件速度太慢呢? FTP协议自

Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等

仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 微信 下载地址 : 微信上传图片源码 很多网友不知道怎么获取图片路径,这里贴出来: String path = Bimp.tempSelectBitmap.get(position).getImagePath(); //部分代码如下 [java] view plain copy package co

相册选择头像或者拍照 上传头像以NSData 图片二进制格式 表单上传

一.点击头像图片 或者按钮 在相册选择照片返回img,网络上传头像要用data表单上传 (1)上传头像属性 // 图片二进制格式 表单上传 @property (nonatomic, strong) NSData *imageWithData; (2)头像点击事件 - (void)headImageEvent{ NSLog(@"上传头像"); [self selectPhotoAlbumWithSelectPhotoHandle:^(UIImage *img) { self.heade

将本地PST文件上传到Office 365

最近有几家用户向我询问,本地的PST如何不通过终端的方式,让IT管理员通过后台上传到Office 365指定的用户邮箱.关于这个问题我今天针对 Office 365国际版进行了相关测试,以下是我测试的流程,希望对大家有所帮助. 1. 登录Office 365管理中心,定位到:用户--数据迁移,单击:上载PST文件 2. 在打开的PST上传向导中,点击:添加--上传电子邮件(PST文件),如下图: 3. 在通过网络上载文件对话框中,单击:显示网络上传SAS URL,并复制此URL 4. 点击第2步

Hbuilder开发app实战-识岁03-文件上传

前言 做app不得不谈的问题就是文件上传.用hbuilder开发app让上传变的非常easy. Uploader Uploader模块管理网络上传任务,用于从本地上传各种文件到server,并支持跨域訪问操作. 通过plus.uploader可获取上传管理对象. Uploader上传使用HTTP的POST方式提交数据,数据格式符合Multipart/form-data规范.即rfc1867(Form-based File Upload in HTML)协议. 很多其它内容:Uploader 代码

Android图片上传,可以选择多张图片,缩放预览,拍照上传等

仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 微信 下载地址 : 微信上传图片源码 //部分代码如下 [java] view plaincopy package com.king.photo.activity; import android.annotation.SuppressLint; import android.app.Activity