浅析Linux服务器流量及并发控制之一

linux服务器流量异常跑高解决记事 这两天刚买没几天的阿里云服务器发生了一个小时近2G的流量开销,白花的银子打了水漂。百度一下,发现使用流量监控软件iftop 和nethogs可以找到发生大流量的服务。实际使用发现当时跑高的服务只显示对端ip。如下图:再百度一下,发现iftop可以监测固定网卡,命令是iftop -i eth1  ,eth1指网卡名。实际运行发现报错了,请看下图:尝试使用命令 iftop -i eth0 后,效果直接... 阅读详情
本篇主要讲述了利用tc工具对 Linux 进行高级流量控制.TC流量控制工具 ,从 Linux2.2 版开始已并入内核而且功能非常强大。如果你需要搭建高性能的 Linux 网关 ,本文将会使你受益颇多。

一、Linux 流量控制过程分二种:

1、队列控制 即 QOS, 瓶颈处的发送队列的规则控制,常见的有 SFQ PRIO

2、流量控制 即带宽控制 , 队列的排队整形, 一般为 TBF HTB

二、Linux 流量控制算法分二种:

1、无类算法 用于树叶级无分支的队列,例如:SFQ

2、分类算法 用于多分支的队列,例如:PRIO TBF HTB

三、具体实现:

1. 在网卡上建立 以SFQ算法的限流

#tc qdisc add dev eth0 root handle 1: sfq

SFQ参数有 perturb( 重新调整算法间隔 ) quantum  基本上不需要手工调整 :

handle 1: 规定算法编号 .. 可以不用设置由系统指定 ..

#tc qdisc sh dev eth0 显示算法

#tc qd del dev eth0 root 删除  注 : 默认 eht0 支持 TOS

2. 在网卡建立以 TBF算法的限流
#tc qd add dev eth1 root handle 1: tbf rate 256kbit burst 10000 latency 50ms 
 速率 256kbit  突发传输 10k  最大延迟 50ms 
#tc -s qd sh dev eth1 统计
#tc qd del dev eth1 root 删除
3. 在网卡建立 PRIO
 #tc qdisc add dev eth0 root handle 1: prio 
  # 此命令立即创建了类 : 1:1, 1:2, 1:3 ( 缺省三个子类 ) 
  #tc qdisc add dev eth0 parent 1:1 handle 10: sfq 
  #tc qdisc add dev eth0 parent 1:2 handle 20: tbf rate 20kbit buffer 1600 limit 3000 
    注 : 此为 TBF 限速的另一写法 , 前文有讲解 . 
  #tc qdisc add dev eth0 parent 1:3 handle 30: sfq
4. WEB 服务器的流量控制为 5Mbps,SMTP 流量控制在 3Mbps 上 . 而且二者一共不得超过 6Mbps, 互相之间允许借用带宽
 #tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 100Mbit avpkt 1000 cell 8 
  #tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 100Mbit rate 6Mbit weight  
    0.6Mbit prio 8 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded 
    这部分按惯例设置了根为 1:0, 并且绑定了类 1:1. 也就是说整个带宽不能超过 6Mbps. 
  #tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 100Mbit rate 5Mbit weight 
    0.5Mbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 
  #tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 100Mbit rate 3Mbit weight 
    0.3Mbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 
    建立了 2 个类 . 注意我们如何根据带宽来调整 weight 参数的 . 两个类都没有配置成"bounded", 但它们都连
  接到了类 1:1 上 , 而 1:1 设置了"bounded". 所以两个类的总带宽不会超过 6Mbps. 别忘了 , 同一个 CBQ 下面的子
  类的主号码都必须与 CBQ 自己的号码相一致 ! 
  #tc qdisc add dev eth0 parent 1:3 handle 30: sfq 
  #tc qdisc add dev eth0 parent 1:4 handle 40: sfq 
    缺省情况下 , 两个类都有一个 FIFO 队列规定 . 但是我们把它换成 SFQ 队列 , 以保证每个数据流都公平对待 . 
  #tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip sport 80 0xffff flowid 
    1:3 
  #tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip sport 25 0xffff flowid 
    1:4
6. 过滤器过滤示例

#tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip dport 22 0xffff flowid 10:1

在 10:节点添加一个过滤规则 ,优先权 1:凡是去往 22口 (精确匹配 )的 IP数据包 ,发送到频道 10:1..

#tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip sport 80 0xffff flowid 10:1

在 10:节点添加一个过滤规则 ,优先权 1:凡是来自 80口 (精确匹配 )的 IP数据包 ,发送到频道 10:1..

#tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2

在 eth0上的 10:节点添加一个过滤规则 ,它的优先权是 2:凡是上二句未匹配的 IP数据包 ,发送到频道 10:2..

#tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip dst 4.3.2.1/32 flowid 10:1

去往 4.3.2.1的包发送到频道 10:1其它参数同上例

#tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip src 1.2.3.4/32 flowid 10:1

来自 1.2.3.4的包发到频道 10:1

#tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2

凡上二句未匹配的包送往 10:2

#tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip src 4.3.2.1/32 match

ip sport 80 0xffff flowid 10:1

可连续使用 match,匹配来自 1.2.3.4的 80口的数据包

Linux服务器文件实时同步:rsync+sersync原理、部署与生产环境调优 文件同步是运维和数据备份领域的基础技术,其核心目标是确保不同服务器或存储节点间的数据一致性。传统定时同步方案存在数据实时性差、恢复点目标(RPO)长等痛点。基于inotify机制的实时文件监控技术应运而生,它通过监听内核文件系统事件,实现了文件变化的即时感知。结合高效的增量同步算法,如rsync的滚动校验和差异传输,可以在极低带宽消耗下完成数据同步,为构建高可用架构、分布式存储和灾备体系提供了关键技术支撑。本文聚焦于rsync与sersync的组合方案,深入解析其监控触发与增量同步的协同原理,并提供从环境准 阅读详情

相关推荐

CORS漏洞批量扫描实战:Corsy工具原理、部署与自动化集成指南

跨域资源共享(CORS)是现代Web应用实现跨域通信的核心安全机制,其配置错误可能导致严重的数据泄露风险。CORS的工作原理基于HTTP响应头,通过校验请求的Origin字段来控制资源访问权限。当服务器配置不当,如错误地反射请求Origin或信任null源时,攻击者便可绕过同源策略,窃取用户敏感数据。在渗透测试与安全审计中,手动检查海量端点的CORS配置效率低下,因此自动化批量扫描工具成为提升覆盖面的关键技术。Corsy作为一款实战型工具,通过模拟多种恶意Origin请求,精准识别反射Origin、信任nu

weixin_30455023的博客 431

[Linux]使用 linux 下的 TC 进行服务器流量控制

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com] 本文链接: http://www.php-oa.com/2009/06/23/linux_tc.html        公司一台服务器,网络环境太高,那台服务器和源服务器连接下载,就跑到400M-500M,为了控制一下,所以研究了一下TC。来做流量控制.给他控制到小点,不要让这一台占了所有的网络。TC很是强大啊,

lwlliang的专栏 1001

Linux系统TC流量控制详解与应用

Linux流量控制(TC)是网络管理员手中的一项关键技术,它允许对进出网络接口的数据流进行管理,以保证网络资源被高效、公平地使用。它在保障网络质量、模拟网络条件、实现网络服务的区分和优先级划分等方面扮演着至关重要的角色。netem提供了多种网络条件模拟的功能,包括但不限于:延迟delay):可以模拟网络延迟,模拟慢速网络。丢包率loss):模拟在网络传输过程中数据包的丢失。重复duplicate):模拟数据包在网络中被复制。乱序reorder。

weixin_28999139的博客 1222

Linux(CentOS)网络流量实时监控(iftop)

在类Unix系统中可以使用top查看系统资源、进程、内存占用等信息。查看网络状态可以使用netstat、nmap等工具。 若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop。

山不在高,有金则名 7万+

linux-syjratelimit无侵入的应用级网关限流框架无需配置文件细粒度控制

无侵入的应用级网关限流框架,无需配置文件,细粒度控制,高灵活性,高可用性,使用redis lua脚本实现。

debian mirrors 镜像源 riscv 64 赛昉 星光 starfive vf2 InRelease‘ doesn‘t support architecture ‘riscv64‘

debian mirrors 镜像 riscv 64 赛昉 星光2 starfive vf2 InRelease' doesn't support architecture 'riscv64'

qq_29758759的博客 1259

【课程设计】ssm医院挂号系统 毕业设计 250858

前台用户可分为未注册用户需求和已注册用户需求。 未注册用户的功能如下: 注册账号:用户填写个人信息,并验证手机号码。 浏览资讯数据:用户可以浏览主页面的资讯数据来了解系统的最新资讯数据。 浏览科室:用户可以根据科室类型浏览科室的信息,并选中某个科室查看详情,例如:科室名称、科室类别、科室图片等。 浏览医生:用户可以根据医生类型浏览医生的信息,并选中某个医生查看详情,例如:医生姓名、性别、职称、所在科室、主治症状、照片等。 浏览评论信息:选中某个药品可查看其用户的评论。 已注册用户的功能如下: 登录:根据账号

WeiXin_DZbishe的博客 424

星网锐捷语音网关密码重置恢复出厂设置

星网锐捷语音网关---密码重置 第一种星网锐捷SVX网关恢复出厂设置的方法 eth1口 任意口插网线,连接电脑并设置电脑固定ip为: 一, 二 网页输入: 192.168.88.86 admin 默认密码 admin 登陆。 忘记密码 可通过以下方法重置: 三: 通过crt或者 shell工具 ,连接 root@192.168.88.86 连续输入两次 passwd a12345678 reboot重启后。通过账号 密码 a12345678 即可登陆系...

cibazhanji2176的博客 1万+

MySQL从入门到精通:索引优化、事务处理与性能调优实战指南

如果你正在学习后端开发、数据分析,或者任何需要存储和管理数据的领域,MySQL 几乎是你绕不开的第一关。但很多人的“入门”之路,往往止步于安装成功和几条简单的 SELECT 语句,面对实际项目中的复杂查询、性能优化、事务处理和故障排查时,依然一头雾水。这恰恰是“从入门到精通”的真正鸿沟:你学到的是一套孤立的语法,而不是一个能解决实际问题的、活的数据库系统。 这篇文章不会重复那些随处可见的安装截图和基础命令列表。我们将从一个更本质的问题切入: 如何真正“掌握”MySQL,而不仅仅是“会用”? 这意味着,你需要

weixin_30847865的博客 434

模糊控制——基本原理(附MATLAB程序)

模糊化:使用隶属函数将实际输入转换为模糊集合的隶属度值。规则库:利用“如果-那么”规则将模糊输入映射到模糊输出。推理机制:通过规则的模糊化和模糊集合的合成,生成模糊输出。去模糊化:将模糊输出转换为具体的控制信号,常用的方法包括质心法和最大隶属度法。这些步骤综合起来,实现了模糊控制系统对复杂和不确定系统的有效控制。模糊控制系统通过结合模糊逻辑和规则库来处理复杂系统中的不确定性和模糊性。它的核心在于模糊集合和隶属函数,通过推理机处理模糊规则,并最终通过去模糊化生成具体的控制信号。

qq_35623594的博客 5559

Open3D:读写点云与可视化(C++)

迭代 //Open3D #include "Open3D/Open3D.h" //Eigen #include "Eigen/Dense" void testOpen3D::xjGetInformation(const QString &pcPath) { /* read PC */ auto cloud_ptr = std::make_shared<open3d::geometry::PointCloud>(); if (!open3d::io::ReadPointCl

累了就要打游戏 1万+

Linux 高级流控

在 IBM Bluemix 云平台上开发并部署您的下一个应用。 开始您的试用 Linux 高级流量控制 本篇主要讲用 TC 对 Linux 进行高级流量控制 通过大量实践结合 TC 流控 HOWTO 文档整理而得 如果你对 Linux 流控感兴趣,如果你需要搭建高性能的 Linux 网关 , 本文将会使你受益颇多。 注:至少具备 Linux OS 的中级水平

eydwyz的专栏 2332

告别懵圈!用CANoe 5640手把手带你跑通SomeIP TC8测试(附脚本思路)

本文详细解析了基于CANoe 5640的SomeIP TC8测试全流程,从环境搭建到结果分析,特别针对车载以太网测试中的SomeIP协议测试难点提供实战指南。通过典型测试用例SOMEIP_TEST_61,手把手教你配置CANoe工程、编写CAPL脚本,并解决常见问题,助力开发者高效完成协议验证。

weixin_30791095的博客 361

高流量大并发Linux TCP性能调优

 其实主要是手里面的跑openvpn服务器。因为并没有明文禁p2p(哎……想想那么多流量好像不跑点p2p也跑不完),所以造成有的时候如果有比较多人跑BT的话,会造成VPN速度急剧下降。   本文参考文章为:   优化Linux下的内核TCP参数来提高服务器负载能力   Linux Tuning   本文所面对的情况为:   高并发数   高延迟高丢包(典型的美国服务器)   值

天道酬勤 1万+

国社科“选题设计论证”部分不再难!用AI快速梳理五大核心板块,轻松撰写出高质量的基金申报书(附AI提示词)

七哥给大家推荐的高校都在用的AI平台——高级学术版专业应用平台,集成了ChatGPT、Claude、Gemini、Grok等Al大模型的PLUS版本平台,包括 ChatGPT-5、4o、o3、4.1、4.5、Gemini 2.5 Pro、Claude 3.7、Claude 4、DeepSeek 满血版、Grok 3 、Grok 4等原生线路,还有国际主流的GPTs学术应用,可以辅助大家高效完成科研和学术写作任务,当然撰写硕博论文,课题、职称论文、国社科、国自然基金本子也是手拿把掐。

智能AI让学术科研更容易 931

Android日志实战——Tombstones日志分析(七)

Tombstones 一般是由 Dalvik 错误、状态监视调试器、C 层代码以及 libc 的一些问题导致的。当系统发生 Tombstone 的时候,内核(kernel)首先会上报一个严重的警告信号(signal),上层接收到之后,进程的调试工具会把进程中当时的调用栈现场保存起来,并在系统创建了 data/tombstones 目录后把异常时的进程信息写在此目录里面,开发者需要通过调用栈来分析整个调用流程来找出出问题的点。Tombstone原因分析pid 与 tid 相同,问题出在主线程。

小旭的专栏 2522

LInux 的流量限制

一、相关概念 报文分组从输入网卡(入口)接收进来,经过路由的查找, 以确定是发给本机的,还是需要转发的。如果是发给本机的,就直接向上递交给上层的协议,比如TCP,如果是转发的, 则会从输出网卡(出口)发出。网络流量的控制通常发生在输出网卡处。虽然在路由器的入口处也可以进行流量控制,Linux也具有相关的功能, 但一般说来, 由于我们无法控制自己网络之外的设备, 入口处的流量控制相对较难。本文将...

newxwj的博客 3119

巧妙解决网页弹窗重复出现问题

本文探讨了网页弹窗关闭后刷新重现的问题及解决方案。通过分析原生JavaScript实现的弹窗代码存在的缺陷,提出了使用jQuery改进的方法。关键点包括:利用event.preventDefault()阻止默认行为避免刷新,采用jQuery的hide("slow")方法实现优雅的关闭动画,确保关闭状态持久化。改进后的方案既解决了弹窗重复出现的问题,又提升了用户体验,为网页弹窗交互提供了更优的实现方式。文中提供了完整的HTML、CSS和JavaScript代码示例,便于开发者直接应用。

2501_90323865的博客 181

Linux服务器上监控网络宽带的18个命令

Linux服务器上监控网络带宽的18个常用命令2014-04-11 10:10 布加迪编译 51CTO.com 字号:T | T本文介绍了一些可以用来监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度。入站流量和出站流量分开来显示。AD:51CTO学院:IT精品课程在线看!【51CTO精选译文】本文介绍了一些可以用来...

weixin_33851429的博客 3907

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Linux服务器下查看网络流量

推荐Linux下检测网卡流量的两款软件,其一是:nload,另外一个就是:iftop。这两个软件的安装方法都很简单,下面逐一介绍:首先,从以上网址下载下来后,安装nload: ./configure –prefix=/usr/local/nload make make install./configure –prefix=/usr/local/iftop make make i...

purpen 1031

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Linux系统网络流量负载情况的查询和案例分析

概述 Linux中有各种查看网络流量的工具,比如sar、iftop、nethogs等。它们可以从不同的纬度来分析系统中流量信息,本文进行简要介绍。 详细信息 阿里云提醒您: 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。 如果您在...

qq_25933841的博客 1608

linux网络流量走高,linux-流量异常高怎么处理

这里就简单说说这个流量跑高。首先我从cacti 中监控到了一台放在机房的服务器流量异常,何为异常这里说一下:本身这台服务器交换机中限制带宽为两兆峰值,而他却可以跑到100M,按正常情况来说,当你的服务器流量跑满的时候,你的机器会很卡、远程连接会掉线或者根本连不上,所以正常流量来看,是绝对不会跑到100M的,所以这叫流量异常。下面给大家看一下图:一、那么当我发现异常后,我就查资料表找出这台机器的IP...

weixin_39884100的博客 1640

Linux高并发系统之限流技术

在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀...

weixin_34315485的博客 761

Linux 端口限流(tc + iptables)

一、相关概念 报文分组从输入网卡(入口)接收进来,经过路由的查找, 以确定是发给本机的,还是需要转发的。如果是发给本机的,就直接向上递交给上层的协议,比如TCP,如果是转发的, 则会从输出网卡(出口)发出。网络流量的控制通常发生在输出网卡处。虽然在路由器的入口处也可以进行流量控制,Linux也具有相关的功能, 但一般说来, 由于我们无法控制自己网络之外的设备, 入口处的流量控制相对较难。本文将集中...

非止。的专栏 8820
上一篇: android 模拟2048
下一篇: javascript的初步认识
honckly
博客等级 码龄20年 3粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值