磨刀不误砍柴工(1)stress 和 pidstat

2024-05-10 17:48

本文主要是介绍磨刀不误砍柴工(1)stress 和 pidstat,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

stress命令

stress命令是一个常用的压测工具
常用参数解析:

 -t, --timeout N 超时时间,指定stress执行多长时间-c, --cpu N  启动N个线程执行开方操作,目的就是把这N个核跑满-i, --io N  启动N个线程执行sync()操作刷磁盘-m, --vm N 启动N个线程执行malloc()/free()操作,分配和回收内存--vm-bytes B 指定malloc字节数,默认245M--vm-hang N 消耗内存后睡眠多少秒-d, --hdd N 启动N个线程执行 write()/unlink()操作--hdd-bytes 每个线程写的数据量

举例
启动8个cpu线程 4个io刷新线程,2个内存消耗线程,每个消耗128M内存,持续10s

 stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s

pidstat命令

pidstat是一个查看进程CPU、内存、磁盘IO消耗的命令

pidstat  [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -s ] [ -t ] [ -U [ username ] ] [ -u ] [ -V ][ -w ] [ -C comm ] [ -p { pid [,...] | SELF | ALL } ] [ -T { TASK |  CHILD  |  ALL  }  ] [ interval [ count ] ]
后面两个参数是interval代表采集周期,count代表报告的次数,如果不设置将会一直输出。-u:默认的参数,显示各个进程的cpu使用统计-d:监控I/O-p:指定进程号,如果是ALL代表所有,如果不指定则只显示活动的进程,这里需要特殊注意。-r:显示各个进程的内存使用统计-w:显示每个进程的上下文切换情况

对于CPU输出

  • %usr:进程在用户空间占用cpu的百分比
  • %system:进程在内核空间占用cpu的百分比
  • %guest:进程在虚拟机占用cpu的百分比
  • %CPU:进程占用cpu的百分比
  • CPU:处理进程的cpu编号
  • Command:当前进程对应的命令

对于内存输出:

  • VSZ:虚拟地址大小,代表虚拟内存的使用,只要是进程申请过的内存,即便还没有真正分配物理内存,也会计算在内
  • RSS:常驻集合大小,代表进程实际使用的物理内存大小,但不包括 Swap 和共享内存
  • %MEM:物理内存利用率

对于磁盘输出:

kB_rd/s:每秒从磁盘读取的KB
kB_wr/s:每秒写入磁盘KB

下面通过一个简单的例子串讲一下这两个命令如何使用

先测试一个CPU,启动4个线程进行开方运算
#  stress --cpu 4 --timeout 600
在另一个中断执行pidstat输出5每隔5s的监控采集,输出1组
# pidstat -u 5 1
Average:      UID       PID    %usr %system  %guest    %CPU   CPU  Command
Average:        0     15338   99.60    0.00    0.00   99.60     -  stress
Average:        0     15339   99.01    0.00    0.00   99.01     -  stress
Average:        0     15340   99.80    0.00    0.00   99.80     -  stress
Average:        0     15341   99.80    0.00    0.00   99.80     -  stress
可以看到4个CPU都已经被stress命令打满,当然通过top命令可以查看下面测试一个内存的例子
# stress --vm 2 --vm-bytes 1280M --vm-keep  --timeout 600s
# pidstat -p ALL  -r 5 1|grep stress
Average:      UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
11:09:13 AM     0     27721      0.00      0.00 1318032 1310936   4.00  stress
11:09:13 AM     0     27722      0.00      0.00 1318032 1310936   4.00  stress
由于为设置释放内存,所以内存的指标不会变化,这里一定要加上ALL否则无法查询,因为当内存不释放时,stress处于非活动状态,无法显示再测试一个磁盘的性能
#  stress -d 2  --timeout 600s
# pidstat   -d 3
Average:      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
Average:        0      3493      0.00 717464.47 689852.63  stress
Average:        0      3494      0.00 745492.11 689852.63  stress
启动两个线程写磁盘,磁盘写性能700M/s,普通顺序写500M/s的磁盘怎么会这么高呢,因为此时写内存缓存,linux通过writeback机制写入磁盘。所以才有这么高的性能。那如何直接测试磁盘呢?
# dd if=/dev/zero of=a bs=30M  count=200 oflag=direct
通过dd直接写磁盘跳过内存
Average:      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
Average:        0     24222      0.00 368152.38      0.00  dd

这篇关于磨刀不误砍柴工(1)stress 和 pidstat的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/977125

相关文章

三种评估金融风险的方法的具体Python实现:Stress Testing、Scenario Analysis和Sensitivity Analysis

Stress Testing、Scenario Analysis和Sensitivity Analysis是金融领域中用于评估风险和确定模型或系统在极端条件下表现的三种分析方法。 1. Stress Testing(压力测试):    - 压力测试是一种评估金融模型、投资组合或金融机构在极端市场条件下表现的方法。    - 它通常用于识别潜在的风险点,确保在市场压力下,资产或机构能够维持其功能。

使用 stress 命令进行Linux CPU 压力测试

大家好,在现代计算机系统中,对系统性能和稳定性的评估是至关重要的。特别是在服务器环境中,我们需要确保系统能够在高负载情况下稳定运行,以满足用户的需求。而 CPU 是系统中最关键的组件之一,其性能直接影响着整个系统的运行速度和响应能力。为了有效评估系统的 CPU 性能,并发现潜在的系统瓶颈,我们需要进行 CPU 压力测试。         在 Linux 系统中,有许多工具可以

linux pidstat 命令详解

原文出处:http://www.yund.tech/zdetail.html?type=1&id=79a1236dcaef6ab9fda051ab4a65e4ab  作者:jstarseven   pidstat 概述 pidstat是sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况。pidstat首次运行时显示自系统启动开始的各项

树莓派压力测试工具S-Tui + Stress的使用

压力测试工具S-Tui + Stress的使用 #树莓派# 背景故事 打算测试一下树莓派外壳的散热性能,需要能压满CPU100%,同时显示温度、CPU频率、CPU占用率,那么这款工具你值得拥有。 软件介绍 s-tui 是一个用于监控计算机的终端 UI。s-tui 可以在终端以图形方式监控 CPU 温度、频率、功率和使用率。此外,它还显示由发热量限制引起的性能下降,它需要很少的资源并且不需

磨刀不误砍柴工——模板方法模式

1.定义   定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可以重新定义该算法的某些特定步骤。 2.理解   提到模板,我们大家都很熟悉,说白了它就是一个骨架或者样式,只需要我们去填充内容就可以了。把这种思想散发到编程中,就是我们的模板方法模式。 3.举例   老师给学生出考试题,老师先要把考题写在黑板上然后学生抄下来才能答题,相信大家都这

【四、性能测试】Linux stress 压力模拟测试工具

在做 CPU 问题解析之前,需要先了解一下压力模拟工具,可以将 CPU、MEM、IO 等进行压力模拟,可以在模拟压力的过程中进行问题解析 一、STRESS 模拟对CPU、Memory、IO、磁盘进行压力测试。可以使用 stress 工具,它是专门针对 linux 的压力模拟测试工具 stress 安装 使用yum进行安装sudo yum install stress 如下图所示

pytest-stress:好用的pytest压力测试插件

简介:pytest-stress允许在用户定义的时间内循环测试。特别适用于一些已知测试时间,但不知道运行次数的场景。 历史攻略: 压力测试工具:Stress详解 Python:超过设定的时长则退出 安装: pip3 install pytest-stress 基础案例: Loop tests for 30 seconds:$ pytest --seconds 30Loop tes

sysstat系列:pidstat

sysstat系列:pidstat 说明 pidstat 是 Linux 系统中的一个性能监控工具,它是 sysstat 包的一部分; 和sysstat系列的sar相比,主要用于收集、报告和保存系统活动信息; pidstat 提供的是进程级别的性能数据,专门用于监控和报告特定进程的性能数据,包括 CPU、内存、I/O 等资源的使用情况。 本篇主要目的如下: 整理pidstat使用方式,

冯米塞斯应力(von Mises stress)云图的MATLAB计算方法

关注 M r . m a t e r i a l   , \color{Violet} \rm Mr.material\ , Mr.material

pidstat命令详解

概述 该pidstat命令用于监视当前正在由Linux内核管理的各个任务。它写到标准输出活动与选项选择的每个任务-p或如果选择由Linux内核管理的每个任务?-p ALL已被使用。不选择任何任务等同于指定-p ALL,但只有活动任务(具有非零统计值的任务)才会出现在报告中。该pidstat命令也可用于监测选定任务的子进程。   pidstat是sysstat工具的一个命令,用于监控全部或指定进