在viewer端进行日志分析的时候,由于日志比较大,每个4.5G,一共9个viewer端,对应9个日志文件,而且判断音频帧和视频帧是否卡顿时,需要的样本也很多,各15000行,分析完成需要5分20秒左右,分析过程中频繁读取磁盘,所以在这里分析一下磁盘读写速度和I/O负载,在做压力测试的时候也可以用得上。

一、看磁盘利用率和吞吐:

iostat -dx 2
  • -d 显示磁盘设备统计

  • -x 显示详细扩展信息,包括 IOPS、利用率等

  • 2 每2秒刷新一次数据

输出内容如下:

[ec2-user@ip-10-xx-0-xxx ~]$ iostat -dx 2
Linux 6.1.xxx-147.xxx.amzn2023.x86_64 (ip-10-xx-0-xxx.cn-xxxxx-1.compute.internal) 	06/18/25 	_x86_64_	(2 CPU)Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
nvme0n1       1021.00 130624.00     0.00   0.00    1.14   127.94    0.50      2.00     0.00   0.00    1.00     4.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    1.17  41.50Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
nvme0n1       1051.50 134592.00     0.00   0.00    1.10   128.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    1.16  32.50Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
nvme0n1       1046.00 133824.00     0.00   0.00    1.10   127.94    1.50     14.00     0.50  25.00    1.00     9.33    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    1.16  39.00Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
nvme0n1       1055.50 135040.00     0.00   0.00    1.09   127.94    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    1.15  41.50Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
nvme0n1       1037.00 132736.00     0.00   0.00    1.12   128.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    1.16  44.50Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
nvme0n1       1034.00 132288.00     0.00   0.00    1.13   127.94    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    1.17  40.50Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
nvme0n1       1043.50 133568.00     0.00   0.00    1.11   128.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    1.15  38.00Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
nvme0n1       1019.50 130432.00     0.00   0.00    1.13   127.94    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    1.16  43.50

在执行 viewer端日志分析脚本 时,对磁盘的 读操作突然变得密集,写操作几乎没有,说明脚本是大量顺序或随机读取日志文件内容,基本没有写入操作。

字段说明
Device磁盘设备名称,如 nvme0n1
r/s每秒读请求数 (read IOPS)
rkB/s每秒读取的 KB 数量
rrqm/s每秒合并的读请求数 (read merged requests)
%rrqm读请求中合并请求的百分比
r_await读请求的平均等待时间,单位 ms
rareq-sz读请求的平均大小,单位 KB
w/s每秒写请求数 (write IOPS)
wkB/s每秒写入的 KB 数量
wrqm/s每秒合并的写请求数 (write merged requests)
%wrqm写请求中合并请求的百分比
w_await写请求的平均等待时间,单位 ms
wareq-sz写请求的平均大小,单位 KB
d/s每秒完成的合并请求数 (device I/O)
dkB/s每秒完成的合并请求数据量
drqm/s每秒设备发起的合并请求数
%drqm设备发起合并请求占比
d_await设备请求平均等待时间,单位 ms
dareq-sz设备请求平均大小,单位 KB
f/s每秒完成的 I/O 数
f_await完成 I/O 平均等待时间,单位 ms
aqu-szI/O 队列长度
%util设备忙碌百分比(利用率)

根据输出数据分析:

1、读操作频率高:r/s 稳定在约 1000 次/秒,读数据带宽 rkB/s 在 130000 KB/s(约 130MB/s)左右。说明读负载很大且持续。

2、写操作非常少:w/swkB/s 基本为 0,说明写入压力很小。

3、合并请求很少:rrqm/swrqm/s 均为 0,意味着读写请求合并几乎没有发生,可能因为应用请求模式或硬件特性。

4、读请求平均等待时间 r_await 约 1.1 ms:这是比较低的延迟,说明读操作响应很快。

5、读请求大小 rareq-sz 约 128 KB:说明每个读请求读取的数据量较大,适合顺序读或较大块读取。

6、写请求等待时间和大小都为 0 或非常小:写负载轻微。

7、I/O 队列长度 aqu-sz 在 1.15 - 1.17 左右:表示队列内平均有约 1 个请求,队列压力较低。

8、设备利用率 %util 大约 32%-44%:说明磁盘仍有较大余量,没有达到饱和。

9、等待时间 f_await ~40 ms 左右:这是完成 I/O 请求的平均等待时间,相比 r_await 略高,说明整体请求完成时间稍长,可能包含传输、调度等时间。

综合分析:

1、当前的 NVMe 设备在持续处理大量读请求,读请求大小适中且响应延迟较低(1.1 ms),表现出良好的读性能。

2、写操作极少,写负载不明显。

3、磁盘利用率在 30%-45% 之间,说明还有性能富余,磁盘没有处于瓶颈。

4、I/O 队列长度和请求等待时间都保持在合理范围,没有明显的堵塞和性能瓶颈。

5、合并请求为 0,可能表示应用 I/O 模式随机或碎片化,或者 NVMe 硬件本身支持较好的直接调度。

6、%util 超过 70%-80% 可能就会影响性能。

二、查看整体系统资源使用,包括I/O等待: 

vmstat 2

每隔2秒采样一次的虚拟内存和CPU等性能指标,输出内容如下:

[ec2-user@ip-10-xx-0-xxx ~]$ vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st1  0      0 119624     24 3292848    0    0    39    70    0    1  0  0 100  0  01  0      0 110440     24 3303580    0    0 126400  1884 1215 1403 36  1 49 14  00  1      0 121444     24 3293164    0    0 128256     0 1228 1499 38  0 49 13  01  0      0 129556     24 3285156    0    0 128192     0 1200 1565 35  1 51 13  01  0      0 111268     24 3303444    0    0 128192     0 1243 1640 37  1 49 13  01  0      0 119188     24 3295428    0    0 128192     0 1218 1701 34  2 51 13  00  1      0 111584     24 3303164    0    0 128292     0 1245 1502 35  2 50 13  01  0      0 115892     24 3298544    0    0 128208     0 1401 1773 35  2 51 13  01  0      0 121100     24 3284816    0    0 63192     0 1300 95949 41 11 43  5  00  1      0 122336     24 3293140    0    0 134400     0 1262 1840 39  1 49 11  00  1      0 118312     24 3296884    0    0 136576     0 1281 1908 38  1 50 11  01  0      0 110548     24 3304220    0    0 134016     2 1266 1776 38  1 49 11  01  0      0 114820     24 3299828    0    0 137856     0 1516 1957 39  2 49 10  01  0      0 122544     24 3291148    0    0 135936    60 1288 1822 38  1 49 11  00  1      0 122980     24 3292380    0    0 129024     0 1234 1701 36  1 51 13  01  0      0 118744     24 3296260    0    0 136832     0 1278 1909 39  1 49 11  01  0      0 114408     24 3300316    0    0 137984     2 1309 1951 39  2 50 10  01  0      0 116032     24 3297120    0    0 131456     0 1243 1722 36  1 51 13  01  0      0 106232     24 3307820    0    0 128192     0 1216 1534 35  1 50 14  01  0      0 124620     24 3289796    0    0 128320     0 1239 1612 34  2 51 14  01  0      0 112008     24 3302756    0    0 128192     0 1194 1512 38  1 48 13  01  0      0 119960     24 3294700    0    0 128192     0 1233 1595 35  2 50 13  00  1      0 111496     24 3302952    0    0 128320     0 1218 1673 37  1 49 13  01  0      0 109488     24 3304932    0    0 128192     0 1222 1560 36  2 49 13  01  0      0 117460     24 3296996    0    0 128192     0 1352 1532 34  1 51 14  0
列名说明
procs
r运行队列中的进程数,即正在等待CPU时间片的进程数(即Runnable)
b阻塞队列中的进程数,即因等待I/O等原因而阻塞的进程数
memory
swpd已使用的交换空间大小 (KB),swap使用情况
free空闲内存大小 (KB)
buff用作缓冲区的内存大小 (KB)
cache用作缓存的内存大小 (KB)
swap
si从交换空间(swap)读到内存的速率 (KB/s)
so从内存写入交换空间的速率 (KB/s)
io
bi块设备每秒读入的数据量 (blocks/s)
bo块设备每秒写出的数据量 (blocks/s)
system
in每秒的中断次数,包括时钟中断
cs每秒的上下文切换次数
cpu所有CPU时间百分比
us用户态CPU时间百分比(执行非内核代码)
sy系统态CPU时间百分比(执行内核代码)
id空闲CPU时间百分比
wa等待I/O的CPU时间百分比
st被虚拟机偷取的CPU时间百分比(即虚拟机暂停时间)

根据输出数据分析:

1、进程等待和阻塞 (r, b)

   (1)r 通常在 0-1,说明CPU运行队列非常短,CPU负载不大,任务调度比较轻松。

   (2)b 偶尔出现1,表示有少量进程因为等待I/O而阻塞,但数量不高。

2、内存使用

   (1)swpd = 0,说明系统没有使用交换空间,内存充足,无内存压力。

   (2)free 内存大约11万到12万KB(约110-120MB),略显偏少,但Linux通常会用缓存(buff + cache)来加速I/O,缓存大小很大(3GB多),所以整体内存充裕。

   (3)buff 和 cache 稳定,说明系统缓存正常。

3、交换区活动 (si, so)

   (1)si 和 so 始终是0,说明没有发生交换进出,内存足够。

4、I/O 读写 (bi, bo)

   (1)bi 数值较大(如12万+),说明有大量磁盘读操作。

   (2)bo 很少,说明写操作很少,读密集型负载。

   (3)这说明系统在进行较多文件读取或数据访问。

5、系统调用和上下文切换 (in, cs)

   (1)in 约1200,cs 约1500-1700,中断和上下文切换量不算大,属于正常水平。

6、CPU使用情况

   (1)us (用户态) 占比 30%-40% 左右,说明CPU主要用来执行用户程序。

   (2)sy (系统态) 约1%-2%,系统内核调用占用不多。

   (3)id (空闲) 约49%-51%,CPU仍有较多空闲时间。

   (4)wa (CPU等待I/O时间百分比) 约13%-14%,说明有一定I/O等待,但不算过高(越高说明I/O瓶颈越明显)。

   (5)st = 0,没有虚拟机偷取CPU时间。

综合分析:

1、系统负载较轻,CPU空闲时间约一半,运行队列短。

2、内存充足,未使用swap,缓存占用较高,符合Linux的内存管理特点。

3、I/O读操作较多,有一定I/O等待(13%-14% CPU时间),说明磁盘I/O对性能有一定影响,但不严重。

4、系统中断和上下文切换正常。

【总结】

经过上面的分析我们对磁盘的io情况有所了解,如果在压测过程中也可以通过上面的命令观察磁盘的使用情况,来判断磁盘io是否出现瓶颈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/909861.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/909861.shtml
英文地址,请注明出处:http://en.pswp.cn/news/909861.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot电脑商城项目--收获地址列表

1. 收获地址列表展示-持久层 1.1 sql语句 1.2 AddressMapper接口编写抽象方法 /*** 根据用户id查询用户的收货地址数据* param uid* return*/List<Address> findByUid(Integer uid); 1.3 在xml文件中进行sql映射 <!-- DESC降序 --><select id"fin…

学校住宿缴费系统h5-——东方仙盟——仙盟创梦IDE

代码: <div class"form-group"><h4 style"color: #006400; margin-bottom: 15px;">费用明细 <input name"room_unit_price" id"room_unit_price" type"number" value"" style"width:65px;…

docker 目录更改,必须做数据迁移才能启动

要修改 Docker 镜像的存储位置 并迁移数据&#xff08;如从 /var/lib/docker 迁移到 /mnt/data/docker&#xff09;&#xff0c;需要以下步骤&#xff1a; 1. 停止 Docker 服务 在修改配置和迁移数据前&#xff0c;先停止 Docker 服务&#xff1a; sudo systemctl stop docke…

根据图片理解maven

maven 是一款强大的项目管理与构建工具&#xff0c;在 Java 开发中尤为常用&#xff0c;结合这张图&#xff0c;从核心功能、仓库体系、工作流程三方面快速了解&#xff1a; 一、核心作用 项目构建&#xff1a;自动完成编译、测试、打包、部署等流程&#xff08;比如把 .java…

阿里云中间件:解锁云端应用的强大引擎

走进阿里云中间件 在云计算的宏大版图中&#xff0c;阿里云无疑是一位举足轻重的参与者。而阿里云中间件&#xff0c;作为阿里云服务体系的关键构成部分&#xff0c;在整个云计算架构里扮演着不可或缺的角色&#xff0c;宛如一座桥梁&#xff0c;紧密地连接着底层基础设施与上…

windows下FFmpeg精简

1. 安装MSYS2和必要工具 下载并安装MSYS2打开 MSYS2中的 MinGW 64-bit 终端更新系统包&#xff1a; pacman -Syu # 如果提示关闭终端&#xff0c;关闭后重新打开再次运行&#xff1a; pacman -Su装编译工具链&#xff1a; pacman -S --needed base-devel mingw-w64-x86_64-t…

WPF数据绑定疑惑解答--(关于控件的Itemsource,Collection绑定)

1. ListView绑定的数据类型问题 在 MainWindow 的构造函数中绑定 List11.ItemsSource List<string> rpcListnew List<string>(); public MainWindow() {InitializeComponent();// 确保 List11 的 ItemsSource 已经绑定到 rpcListList11.ItemsSource rpcList; } …

【Centos7安装Cloudera Manager5.12、CDH5.12详细步骤】

安装Cloudera Manager&#xff08;5.12.1&#xff09;一定要细心&#xff0c;每一步走错都可能造成最终安装失败。 安装Cloudera Manager&#xff08;5.12.1&#xff09;一定要硬件资源充足。 本示例参考了众多网上资料&#xff08;放在文末&#xff09;&#xff0c;消耗了1000…

青少年编程与数学 01-011 系统软件简介 25 Web服务器及代理软件

青少年编程与数学 01-011 系统软件简介 25 Web服务器及代理软件 一、Web 服务器软件&#xff08;一&#xff09;定义与功能&#xff08;二&#xff09;历史与主要产品1. Apache HTTP Server2. Nginx3. Microsoft Internet Information Services&#xff08;IIS&#xff09;4. L…

Vue的隐形魔法:虚拟DOM和Diff算法如何让页面飞起来?

大家好&#xff0c;我是江城开朗的豌豆&#xff0c;一名拥有6年以上前端开发经验的工程师。我精通HTML、CSS、JavaScript等基础前端技术&#xff0c;并深入掌握Vue、React、Uniapp、Flutter等主流框架&#xff0c;能够高效解决各类前端开发问题。在我的技术栈中&#xff0c;除了…

SAP_HANA常用sql合集——持续更新中

一、时间格式转换 (1)切换日期格式yyyymmdd的字段数据为yyyy-mm-dd select TO_VARCHAR(TO_DATE(t1.time1, YYYYMMDD), YYYY-MM-DD) AS time1, TO_VARCHAR(TO_DATE(t1.time2, YYYYMMDD), YYYY-MM-DD) AS time2 from table

【AI Study】第四天,Pandas(5)- 数据可视化

文章概要 本文详细介绍 Pandas 的数据可视化功能&#xff0c;包括&#xff1a; 基础绘图高级可视化统计图表实际应用示例 基础绘图 折线图 # 基本折线图 df.plot(x日期, y值) df.plot.line(x日期, y值)# 多列折线图 df.plot(x日期, y[列1, 列2])# 自定义样式 df.plot(x日期…

Linux故障排查

目录 案例1&#xff1a;GRUB引导故障 案例2&#xff1a;文件系统只读故障 案例3&#xff1a;OOM Killer触发 案例4&#xff1a;系统启动卡住&#xff08;initramfs损坏&#xff09; 案例5&#xff1a;磁盘空间耗尽 案例6&#xff1a;SSH登录缓慢 案例7&#xff1a;逻辑卷…

pikachu靶场通关笔记36 越权01之水平越权

目录 一、水平越权 二、账户功能探测 1、登录账号lucy 2、登录账号lili 3、登录账号kobe 三、源码分析 四、渗透实战 1、登录lucy账号 2、越权访问lili账户资料 3、越权访问kobe账户资料 本系列为《pikachu靶场通关笔记》渗透实战&#xff0c;本文通过对越权关卡源码…

javaweb -Ajax

Ajax的定义 Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种用于创建异步 Web 应用的技术&#xff0c;允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分内容。 Ajax的核心特点 异步通信&#xff1a;通过后台与服务器交互&#xff0c;用…

11.OpenCV—联合QT环境配置

1.QT环境变量配置 在Qt中配置OpenCV 3.4.6与Visual Studio 2017的步骤如下&#xff1a; 一、前期准备 安装组件验证 确认已安装Qt的MSVC2017版本&#xff08;如Qt 5.12 MSVC2017 64-bit&#xff09; 检查Visual Studio 2017的MSVC编译器是否正常工作 OpenCV库准备 从官网…

2025虚幻引擎一般用什么模型格式

2025虚幻引擎一般用什么模型格式 前言 积累了一些人物模型发现有的有骨骼&#xff0c;有的没骨骼&#xff0c;有的要转换格式&#xff0c;有的直接可以用&#xff0c;所以了解一下各种模型。 2025虚幻人物模型积累 格式转换真麻烦。 2025.uexp、.uasset文件、.ubulk如何打…

电脑在使用过程中频繁死机怎么办

正兴致勃勃地打游戏&#xff0c;或者赶着完成一份重要的工作文档&#xff0c;电脑突然死机了&#xff0c;鼠标动不了&#xff0c;键盘也没反应&#xff0c;只能干瞪眼干着急。电脑在使用过程中频繁死机&#xff0c;真的太影响心情和效率了。今天咱就来好好聊聊&#xff0c;遇到…

【Java_EE】设计模式

设计模式&#xff1a;解决一些固定场景的固定套路&#xff0c;是一种代码风格的知道指南。设计模式不止23种 1、单例设计模式 单例设计模式&#xff1a;确保一个类只有一个实例&#xff0c;提供全局访问点 单例模式的实现方式&#xff1a; 1&#xff1a;饿汉模式 /*** 饿汉…

Nginx代理缓存静态资源

问题描述 有两台服务器&#xff0c;一台是外网的网关服务器&#xff0c;一台是内网的资源服务器&#xff0c;但是两台服务器距离很远&#xff08;跨省&#xff09;&#xff0c;页面中依赖大量插件资源&#xff0c;加载耗时久&#xff0c;本章重点讲解Nginx代理缓存静态资源。 …