36 | 套路篇:怎么评估系统的网络性能?
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了系统网络性能评估的关键问题,从C10K和C1000K问题出发,讨论了I/O模型的优化和epoll的应用。随着互联网技术的发展,对系统的软硬件进行统一优化成为解决C1000K问题的关键。文章回顾了网络性能的指标,包括带宽、吞吐量、延时和PPS,并介绍了网络基准测试的方法。针对不同协议层的网络性能测试,文章提到了使用pktgen工具来测试网络包的处理能力。通过配置pktgen选项,可以进行发包测试,评估网络性能。文章强调了不同协议层的性能测试方法,以及测试前需要明确应用程序基于协议栈的哪一层。此外,还介绍了TCP和UDP性能测试方法,以及HTTP性能测试工具的使用。最后,文章提到了应用负载性能测试工具,强调了对于应用程序实际性能的重要性。整体而言,本文内容涵盖了网络性能评估的基本概念和测试方法,对于需要了解系统网络性能评估的读者具有一定的参考价值。文章通过具体案例和工具介绍,为读者提供了深入了解网络性能评估的途径和方法。
《Linux 性能优化实战》,新⼈⾸单¥68
全部留言(49)
- 最新
- 精选
- 。。。。有个问题: 买到的 【服务器带宽】理论上 >=吞吐量。 我现在 手上的腾讯云服务器 :网络带宽是 1M 但是经,wrk测试,网络吞吐量达到了4M,这是怎么一回事儿呢? [root@VM_0_2_centos wrk]# wrk -c 1000 -t 2 http://localhost/ Running 10s test @ http://localhost/ 2 threads and 1000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 108.23ms 80.21ms 1.95s 97.68% Req/Sec 2.54k 1.77k 5.87k 66.15% 49587 requests in 10.06s, 40.20MB read Socket errors: connect 0, read 0, write 0, timeout 78 Requests/sec: 4929.91 Transfer/sec: 4.00MB
作者回复: 不要使用localhost测试网络,测试带宽要跨主机测试
2019-08-14229 - 我来也[D36打卡] 想不到网络篇这么快就开始"套路"了😁 由于现在客户端的网络环境复杂,经常会出现部分用户反馈卡顿的情况. 我这边能做的也有限. 只能在第一个网路出入口,记录每次收发消息的内容和具体的时间戳(精确到ms). 遇到玩家反馈时,再根据玩家的唯一编号,及发生的大致时间,在日志中查找玩家的响应时间,来推测是服务器响应慢了,还是客户端到服务器中间的路线慢了. 有时甚至会让客户端主动汇报,上次发送请求和收到请求的时间间隔. 来验证是不是客户本身的网络环境导致的. 其实服务器端都有处理消息的耗时记录,平常几乎都没什么太耗时的状况发生. 遇到客户网络原因导致的延迟,只能说是新加入口,让客户端选择一个最优入口了.
作者回复: 嗯,网络抖动是很常见的现象。可以考虑更多的接入点、专线、CDN 等等都可以优化公网的链路延迟问题
2019-02-13220 - Maxwell目前在公司做性能测试,我会首先使用iperf测试网络吞吐量,在局域网下,我会先开启少数线程(2个)进行压测,在测试结果报告中,查看消耗的带宽,再使用iperf的测试结果吞吐量对比,如果网络吞吐量没有瓶颈,那应用程序的性能就与网络无关了,这样理解对么?
作者回复: 不是的,这只是说明了系统的网络吞吐没问题,但不代表应用的吞吐就没问题了。应用程序的吞吐也还是要测试的
2019-03-227 - ninuxer打卡day38 之前对应用做压测的场景多点,通过学习,又get了底层的压测的方法👍
作者回复: 嗯 越往上层场景越多
2019-02-195 - Xiaobai4核8G 5M带宽服务器 服务跑一些商城 ,微信小程序 ,如何评估能承受多大的并发量
作者回复: 最简单的就是做压力测试
2019-03-232 - Griffin请问用iperf3测试tcp/udp时这个-b的目标带宽是指啥? 是预估该网络有1G的带宽么? iperf3 -c 192.168.0.30 -b 1G -t 15 -P 2 -p 10000
作者回复: 设置测试数据的吞吐量,也就是 iperf3 自己发出的测试包该用多大的带宽。在文档里还有更详细的介绍,你可以man看看
2019-03-1322 - Griffin老师, 请问在测试PPS的案例中, 我写错了IP和mac地址,但是pkts-sofar还是1000000 呢? 这个是只测试发送不看返回值么?
作者回复: 对的
2019-03-132 - 梦回汉唐我想查看目标服务器的收包的情况,这个怎么在目标服务器上操作呢
作者回复: 请参考第43、44期
2019-04-041 - 挺直腰板倪老师,你上面的脚本运行后,提示“cat: /proc/net/pktgen/eth0: 没有那个文件或目录”系统是cetnos7.0,请问如何处理。
作者回复: 查一下网卡名,看看是不是eth0?换成正确的应该就可以了
2019-03-311 - MJ# 定义一个工具函数,方便后面配置各种测试选项 function pgset() { local result echo $1 > $PGDEV result=`cat $PGDEV | fgrep "Result: OK:"` if [ "$result" = "" ]; then cat $PGDEV | fgrep Result: fi } # 为 0 号线程绑定 eth0 网卡 PGDEV=/proc/net/pktgen/kpktgend_0 pgset "rem_device_all" # 清空网卡绑定 pgset "add_device eth0" # 添加 eth0 网卡 # 配置 eth0 网卡的测试选项 PGDEV=/proc/net/pktgen/eth0 pgset "count 1000000" # 总发包数量 pgset "delay 5000" # 不同包之间的发送延迟 (单位纳秒) pgset "clone_skb 0" # SKB 包复制 pgset "pkt_size 64" # 网络包大小 pgset "dst 192.168.0.30" # 目的 IP pgset "dst_mac 11:11:11:11:11:11" # 目的 MAC # 启动测试 PGDEV=/proc/net/pktgen/pgctrl pgset "start" 老师,这段是vi一个文件保存成脚步吗?
作者回复: 可以直接粘贴到SHELL运行,保存到脚本里也可以的
2019-03-131