性能测试-操作和优化分析

news/2025/3/1 11:03:35/

打流工具

iperf

测试吞吐率

服务端:iperf -u -s

客户端:iperf -u -c 1.1.1.1 -b 500M -t 10

测试结果

------------------------------------------------------------

Client connecting to 192.168.56.106, UDP port 5001

Sending 1470 byte datagrams, IPG target: 22.43 us (kalman adjust)

UDP buffer size:  208 KByte (default)

------------------------------------------------------------

[  3] local 192.168.56.104 port 50270 connected with 192.168.56.106 port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0-10.0 sec   617 MBytes   517 Mbits/sec

[  3] Sent 440029 datagrams

[  3] Server Report:

[  3]  0.0-10.0 sec   617 MBytes   518 Mbits/sec   0.037 ms    0/440029 (0%)

丢包率为0时,带宽是518Mb。

hping3

# 发送 udp 报文 到 192.168.1.1:80。伪造随机源地址,洪水攻击。

sudo hping3 --udp 192.168.180.133 -p 80 --rand-source --flood

sudo hping3 --udp -s 6666 -p 53 -a 29.29.29.29 --flood 192.168.180.133

可以看到有一个CPU占用率达到接近100%,

查看流量

sar -n DEV 1 5

查看当前主机流量大小在500M左右和iperf结果一致。

hping3功能以及参数介绍:http://e.betheme.net/article/show-225648.html?action=onClick

性能测试

优化发送流量

考虑先把发送的流量的吞吐大小打上来

思路可以参考:https://segmentfault.com/a/1190000022882475?utm_source=sf-similar-article

观察iperf 打流前后的CPU占用:

执行iperf后CPU占用:

 

需要注意的是接近100%的值。

参数说明:

1)us和ni高,说明用户态进程占用了较多的CPU ,应该排查进程的性能问题。

2)sy高,说明内核态占用了较多的CPU ,应该排查内核线程或者系统调用的性能问题。3)%CPU这里显示的所有的cpu加起来的使用率,超过100%说明你的CPU是多核的,

4)si CPU服务软中断所耗费的时间总额,这里可以看到接近100%

相关命令

查看每个CPU的占用

运行top后按下键盘1看看,可以显示每个cpu的使用率,top里显示的是把所有使用率加起来。

查看进程的各线程占用CPU的情况

top -H -p <pid>   查看iperf各个线程占用CPU情况。

 

从这里可以到看到多个逻辑CPU并没有占满。

mpstat -P ALL 1  类似top命令有也可以查看CPU的统计信息。

通过这命令也可以到%soft占用经常到100%,

软中断的含义:linux mpstat工具统计的软中断百分比原理_OS Developer的博客-CSDN博客

对于网卡来说,如果每次网卡收包时中断的时间都过长,那很可能造成丢包的可能性

使用中断,中断的时间越短越好,尽快放开处理器,让它可以去响应下次中断甚至进行调度工作。

基于这样的考虑,我们将中断分成了上下两部分,上半部分(硬中断)就是上面说的中断部分,需要快速及时响应,越快结束越好。而下半部分(软中断)就是完成一些可以推后执行的工作。

对于网卡收包来说,网卡收到数据包,通知内核数据包到了,中断处理将数据包存入内存这些都是急切需要完成的工作,放到上半部完成。

而解析处理数据包的工作则可以放到下半部去执行。

软中断通过软件模仿硬件中断的处理过程,但是和硬件没有关系,单纯的通过软件达到一种异步处理的方式。软中断的处理机制还包括tasklet,工作队列等。

依据所处理的场合不同,选择不同的硬件或软件中断机制,网卡收包一般使用软中断,最大程度地交给软中断处理,最大程度简化硬中断处理。

调节发送参数

发包参数-P改成2把线程调整为2个,能看到占用sys比较高的核也会减少。

单线程把发送流量不断调大也可以看到soft的值不断升高,最高达到100%。

此时测试带宽757 Mbits/sec

查看软中断统计

软中断

通过执行cat /proc/softirqs观察到,NET_TX软中断主要发生在CPU0上面,其他CPU上发生的较少。

硬中断

通过cat /proc/interrupts观察到,这个系统网络中断只发生在CPU0上面。

未完待续。。。


http://www.ppmy.cn/news/71203.html

相关文章

JAVA电商 B2B2C商城系统 多用户商城系统 直播带货 新零售商城 o2o商城 电子商务 拼团商城 分销商城

JAVA电商 B2B2C商城系统 多用户商城系统 直播带货 新零售商城 o2o商城 电子商务 拼团商城 分销商城 1. 鸿鹄Cloud架构清单 2. Commonservice&#xff08;通用服务&#xff09; 通用服务&#xff1a;对spring Cloud组件的使用&封装&#xff0c;是一套完整的针对于分布式微…

Redis的数据类型

参考文档&#xff1a;https://www.runoob.com/redis/redis-tutorial.html redis当中一共支持五种数据类型&#xff0c;分别是&#xff1a; string字符串 list列表 set集合 hash表 zset有序集合 1、对字符串string的操作 下表列出了常用的 redis 字符串命令 1 设置值 获取…

mkv转mp4格式怎么转,5种便捷工具盘点

mkv转mp4格式怎么转&#xff1f;因为当我们下载视频时&#xff0c;通常无法选择格式&#xff0c;这可能会导致下载的视频无法打开。如果下载的是MKV格式&#xff0c;它可以容纳多个音频、视频和字幕流。然而&#xff0c;并非所有播放器都支持MKV格式的视频文件。尽管MKV是常见的…

Facebook 广告效果越来越差,怎么办?

在如今的数字营销领域中&#xff0c;Facebook作为独立站卖家首选的推广引流平台&#xff0c;具备了许多优势。 一方面&#xff0c;Facebook拥有庞大的用户数量&#xff0c;是全球最大的社交媒体平台之一。另一方面&#xff0c;Facebook的广告算法可以将广告推送给更加精准的受…

Appuploader 常见错误及解决方法

转载&#xff1a;Appuploader 常见错误及解决方法 问题解决秘籍 遇到问题&#xff0c;第一个请登录苹果开发者官网 检查一遍账号是否有权限&#xff0c;是否被停用&#xff0c;是否过期&#xff0c;是否有协议需要同意&#xff0c;并且在右上角切换账号后检查所有关联的账号是否…

图神经网络+强化学习

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 车辆路径规划问题&#xff08;VRP&#xff09;是运筹优化领域最经典的优化问题之一。在此问题中&#xff0c;有若干个客户对某种货物有一定量的需求&#xff0c;车辆可以从仓库取货之后配送到客户手中。客户点与仓库点组成了一…

C++:使用位图处理海量数据

目录 一. 什么是位图 1.1 海量数据处理问题 1.2 位图的概念 二. 位图的实现 2.1 成员变量及成员函数 2.2 成员函数的实现 2.3 位图模拟实现完整代码 三. 关于位图处理海量数据的几个面试题 一. 什么是位图 1.1 海量数据处理问题 问题&#xff1a;假设有30亿个不重复的…

PLE - 多任务模型(腾讯)

文章目录 1、动机2、模型结构3、代码实现细节:Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations论文发表在 RecSys-2020, best paper。ple主要缓解了mtl里两大问题:负迁移和跷跷板现象,相比其他mtl model…