限制网络流量速率的一种方法是通过一个名为trickle的命令行工具。通过在程序运行时,预先加载一个速率限制 socket 库 的方法,trickle 命令允许你改变任意一个特定程序的流量。 trickle 命令有一个很好的特性是它仅在用户空间中运行,这意味着,你不必需要 root 权限就可以限制一个程序的带宽使用。要能使用 trickle 程序控制程序的带宽,这个程序就必须使用非静态链接库的套接字接口。当你想对一个不具有内置带宽控制功能的程序进行速率限制时,trickle 可以帮得上忙。

在 Ubuntu,Debian 及其衍生发行版中安装 trickle :

$ sudo apt-get install trickle

在 Fdora 或 CentOS/RHEL (带有 EPEL 软件仓库):

$ sudo yum install trickle

trickle 的基本使用方法如下。仅需简单地把 trickle 命令(及速率参数)放在你想运行的命令之前。

$ trickle -d -u

这就可以将  的下载和上传速率限定为特定值(单位 KBytes/s)。

例如,将你的 scp 会话的最大上传带宽设定为 100 KB/s:

$ trickle -u 100 scp backup.tgz alice@remote_host.com:

如若你想,你可以通过创建一个自定义启动器的方式,使用下面的命令为你的 Firefox 浏览器设定最大下载速率(例如, 300 KB/s)。

trickle -d 300 firefox %u

最后, trickle 也可以以守护进程模式运行,在该模式下,它将会限制所有通过 trickle 启动且正在运行的程序的总带宽之和。 启动 trickle 使其作为一个守护进程(例如, trickled):

$ sudo trickled -d 1000

一旦 trickled 守护进程在后台运行,你便可以通过 trickle 命令来启动其他程序。假如你通过 trickle 启动一个程序,那么这个程序的最大下载速率将是 1000 KB/s, 假如你再通过 trickle 启动了另一个程序,则每个程序的(下载)速率极限将会被限制为 500 KB/s,等等。

在 Linux 中限制一个网络接口的速率

另一种控制你的带宽资源的方式是在每一个接口上限制带宽。这在你与其他人分享你的网络连接的上行带宽时尤为实用。同其他一样,Linux 有一个工具来为你做这件事。wondershaper就是干这个的。

wondershaper 实际上是一个 shell 脚本,它使用 tc 来定义流量调整命令,使用 QoS 来处理特定的网络接口。外发流量通过放在不同优先级的队列中,达到限制传出流量速率的目的;而传入流量通过丢包的方式来达到速率限制的目的。

事实上, wondershaper 的既定目标不仅仅是对一个接口增加其带宽上限;当批量下载或上传正在进行时,wondershaper 还试图去保持互动性会话如 SSH 的低延迟。同样的,它还会控制批量上传(例如, Dropbox 的同步)不会使得下载“窒息”,反之亦然。

在 Ubuntu Debian 及其衍生发行版中安装 wondershaper:

$ sudo apt-get install wondershaper

在 Fdora 或 CentOS/RHEL (带有 EPEL 软件仓库) 中安装 wondershaper:

$ sudo yum install wondershaper

wondershaper 的基本使用如下:

$ sudo wondershaper

举个例子, 将 eth0 的最大下载/上传带宽分别设定为 1000Kbit/s 和 500Kbit/s:

$ sudo wondershaper eth0 1000500

你也可以通过运行下面的命令将速率限制进行消除:

$ sudo wondershaper clear eth0

假如你对 wondershaper 的运行原理感兴趣,你可以阅读其 shell 脚本源文件(/sbin/wondershaper)。

总结

在本教程中,我介绍了两种不同的方法,来达到如何在 Linux 桌面环境中,控制每个应用或每个接口的带宽使用的目的。 这些工具的使用都很简单,都为用户提供了一个快速且容易的方式来调整或限制流量。 对于那些想更多地了解如何在 Linux 中进行速率控制的读者,请参考 the Linux bible.

linux 进程带宽限制,在Linux中限制网络带宽使用相关推荐

  1. linux 限制带宽命令,Linux服务器限制网络带宽流量速率(限制应用程序和指定网卡的流量)

    linux 限制带宽命令,Linux服务器限制网络带宽流量速率 一.限制应用程序的网络流量速率 1.trickle介绍 2.如何判断trickle对应用程序是否有效? 3.Linux安装Trickle ...

  2. linux 进程 带宽,Linux 如何查看进程带宽?

    1 如何确定自己当前进程占用的带宽是多少? iftop 查看当前进程的带宽 nload  总带宽使用情况 nethogs  查看进程带宽使用 2 如何确定当前带宽是否被打满 首先得知道 带宽是多少 假 ...

  3. linux进程及作业管理实验,Linux 进程及作业管理(示例代码)

    Linux 进程及作业管理 概述: 一.进程的相关概念: 1.相关定义:内核的功用:   进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等: 通俗的来说进程是运行起来的程序.唯一标识进程的 ...

  4. linux 进程装入 物理内存 页表,linux进程空间一步步探究.doc

    linux进程空间一步步探究.doc linux 进程地址空间的一步步探究 讲师:程姚根 我们知道,在32位机器上linux操作系统中的进程的地址空间大小是4G,其中0-3G是用户空间,3G-4G是内 ...

  5. linux 进程装入 物理内存 页表,linux内存管理解析----linux物理,线性内存布局及页表的初始化...

    主要议题: 1分页,分段模式及实模式 2Linux分页 3linux内存线性地址空间布局及物理内存空间布局 4linux页表初始化及代码解析 1.1.1内存寻址和保护模式 在X86平台上,内存控制单元 ...

  6. linux 进程通信比较,浅析Linux进程通信的几种方式及其比较

    摘要:本文通过对Linux下几种主要通信方式进行概述,并结合Linux系统的系统调用对OS中的实现进行简要概述,并对其优缺点进行分析,阐述了在不同通信情况下应该选择何种通信方式进行选择. 关键词:Li ...

  7. linux进程管理子系统分析,linux进程管理子系统简要分析

    Linux进程管理: 进程与程序: 程序:存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体. 进程:是一个执行中的程序,它是动态的实体 进程四要素: 1. 有一段程序供其执行,这段程序不一 ...

  8. linux进程管道通信缺点,Linux进程通信(IPC)的方式详解

    前言:Linux进程通信的方式 什么是进程通信?进程通信是指进程之间交换信息 进程通信方式共有6种: 管道(pipe),包括流管道(s_pipe)和有名管道(named pipe) 信号(signal ...

  9. 查看linux进程的设备io,Linux下查看进程IO工具iopp

    Linux下的IO检测工具最常用的是iostat,不过iostat只能查看到总的IO情况.如果要细看具体那一个程序点用的IO较高,可以使用iotop .不过iotop对内核版本和Python版本有要求 ...

最新文章

  1. html 标签、图像、链接、注释、锚点定位、特殊字符
  2. vue-cli——vue-resource登录注册实例
  3. R语言ggpubr包ggsummarystats函数可视化分组条形图(自定义分组颜色、添加抖动数据点jitter、误差条)并在X轴标签下方添加分组对应的统计值(样本数N、中位数、四分位数的间距iqr)
  4. 人群行为分类数据库--Novel Dataset for Fine-grained Abnormal Behavior Understanding in Crowd
  5. 计算机题windows如何操作,2015年职称计算机Windows操作系统模拟题(二)
  6. 妙用Windows安全模式执行杀毒
  7. 源码里查看Android版本
  8. 从零开始的自学之路——css选择器
  9. iOS 让视图UIView 单独显示某一侧的边框线
  10. Android开发三 如何安装 Android SDK 和Eclipse 插件
  11. ionic 添加地图定位功能
  12. 高频算法面试题(字符串) 242. 有效的字母异位词
  13. XMPP扩展协议详解
  14. python 语音识别接口_python实现阿里云语音识别api
  15. putty 32位_了解linux系统远程操作软件,putty的安装过程!
  16. python程序设计是干什么的_python程序员有学设计模式的必要吗?
  17. 多元最大似然估计函数
  18. java如何向服务器传文件,详解Java向服务端发送文件的方法
  19. Could Not find resource [logback.groovy] ; Cound Not find resource [logback-test.xml]
  20. 研究生的压力应对与心理健康 测试题答案

热门文章

  1. android程序大牛,冲向大牛之安卓:学习界面怎么在程序中画出来
  2. 基于协同过滤算法的在线鲜花店推荐系统详解及GitHub下载
  3. linux用m4重定向,liunx重定向控制台消息
  4. JDK的下载与安装eclipse的下载与安装
  5. excel怎么启用宏_EXCEL制作的小升初毕业生登记表,全自动填充,包括照片
  6. 操作系统磁盘空闲管理之位示图法
  7. 最简单,最明了,看了就会的VScode和C++的配置!(Visual Studio Code)
  8. POJ2421 Constructing Roads 最小生成树
  9. rsync实现文件同步
  10. 电源纹波分析及测试方法