stress、mpstat、pidstat

news2025/8/11 14:10:26

简介

压测命令: stress ,一个 Linux 系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。
监测命令: mpstat 是一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所 有 CPU 的平均指标。
pidstat 是一个常用的进程性能分析工具,用来实时查看进程的 CPU 、内存、 I/O 以及上下文
切换等性能指标。

一 ps进程信息

ps 用一于显示系统内的所有进程。
-l l 采用详细的格式来显示进程状况。
常用方式: ps -elf ps -ef

 ps -ef和ps -elf对比。


root@hehe:~# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 14:44 ?        00:00:02 init [5]
root         2     0  0 14:44 ?        00:00:00 [kthreadd]
root         3     2  0 14:44 ?        00:00:02 [ksoftirqd/0]
/*略*/
root@hehe:~# ps -elf
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root         1     0  0  80   0 -   427 poll_s 14:44 ?        00:00:02 init [5]
1 S root         2     0  0  80   0 -     0 kthrea 14:44 ?        00:00:00 [kthreadd]
1 S root         3     2  0  80   0 -     0 smpboo 14:44 ?        00:00:02 [ksoftirqd/0]
/*略*/
根据进程的名字或者其他信息,通过 grep命令找到目标进程,也可以看到进程启动脚本的全路径。如下例程,最后的grep -v "grep"表示去除包含grep的行。
root@hehe:~# ps -elf | grep "service" | grep -v "grep"
4 S root       680   632  0  80   0 -  1783 wait   14:45 ttymxc0  00:00:00 ./bin/service_loader
4 S root       685   680 27  80   0 - 31258 futex_ 14:45 ttymxc0  01:11:37 /lib/ld-linux-armhf.so.3 --library-path /home/root/bin/ /home/root/bin/device_service_server
root@hehe:~# ps -elf | grep "service" | grep -v "grep" | wc -l
2
root@hehe:~#

 二 top进程cpu内存信息

top 命令用于查看活动进程的 CPU和内存信息,能够实时显示系统中各个进程的资源占用情况,可以按照 CPU、内存的使用情况和执行时间对进程进行排序。使用方式: top

 如下所示,当前系统,1分钟内负载1.07 5分钟内负载0.98,15分钟内负载0.96

 从输出可以看到整体的CPU占用率、CPU负载,以及进程占用CPU和内存等资源的情况。

我们可以用以下所示的 top 命令的快捷键对输出的显示信息进行转换。
t :切换报示进程和 CPU 状态信息。
n :切换显示内存信息。
r :重新设置一个进程的优先级。系统提示用户输人需要改变的进程 PID 及需要设置的进程优先级, 然后输入个正数值使优先级降低,反之则可以使该进程拥有更高的优先级,即是在原有基础上进行 相加,默认优先级的值是100
k :终止一个进程,系统将提示用户输入需要终止的进程 PID o
s :改变刷新的时间间隔。
u :查看指定用户的进程。
top 命令查找 cpu占用率最高的程序,找到对应的PID ,top -Hp pid ,查看具体进程下的线程,比如:top -Hp 685,查看进程pid=685中的线程占用CPU情况。 

 

三 mpstat

此命令用于实时监控系统 CPU 的一些统计信息,这些信息存放在 /proc/stat 文件中,在多核 CPU 系统里, 不但能查看所有CPU 的平均使用信息,还能查看某个特定 CPU 的信息。
使用方式: mpstat [-P {cpu|ALL}] [internal [count]]
当mpstat 不带参数时,输出为从系统启动以来的平均值。
root@hehe:~# ./mpstat
Linux 4.1.15 (hehe)     10/15/22        _armv7l_        (1 CPU)

19:17:47     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19:17:47     all   29.54    0.00    1.13    0.00    0.00    0.29    0.00    0.00    0.00   69.04
root@hehe:~# 
root@hehe:~# ./mpstat -P ALL
Linux 4.1.15 (hehe)     10/15/22        _armv7l_        (1 CPU)

19:18:12     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19:18:12     all   29.64    0.00    1.13    0.00    0.00    0.29    0.00    0.00    0.00   68.94
19:18:12       0   29.64    0.00    1.13    0.00    0.00    0.29    0.00    0.00    0.00   68.94
root@hehe:~#

 间隔1秒采样一次

root@hehe:~# ./mpstat 1
Linux 4.1.15 (hehe)     10/15/22        _armv7l_        (1 CPU)

19:22:29     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19:22:30     all   32.97    0.00    5.49    0.00    0.00    1.10    0.00    0.00    0.00   60.44
19:22:31     all   26.04    0.00    6.25    0.00    0.00    8.33    0.00    0.00    0.00   59.38
19:22:32     all   26.32    0.00    4.21    0.00    0.00    5.26    0.00    0.00    0.00   64.21
^C
Average:     all   28.37    0.00    5.32    0.00    0.00    4.96    0.00    0.00    0.00   61.35
Ctrl+c
root@hehe:~#

 间隔1秒采样一次,采样两次,这个共采样了三个,不是两个。

root@hehe:~# ./mpstat 1 2
Linux 4.1.15 (hehe)     10/15/22        _armv7l_        (1 CPU)

19:23:38     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19:23:39     all   26.88    0.00    6.45    0.00    0.00    3.23    0.00    0.00    0.00   63.44
19:23:40     all   28.26    0.00    7.61    0.00    0.00    5.43    0.00    0.00    0.00   58.70
Average:     all   27.57    0.00    7.03    0.00    0.00    4.32    0.00    0.00    0.00   61.08
root@hehe:~#

 输出参数含义

当没有参数时, mpstat 则显示系统启动以后所有信息的平均值。有 interval 时,第一行的信息自系统启 动以来的平均信息。从第二行开始,输出为前一个interval 时间段的平均信息。 输出各参数含义:

 四 pidstat

pidstat 用于监控全部或指定的进程占用系统资源的情况,包括 CPU 、内存、磁盘 I/O 、进程切换、线程数等 数据。
-u :表示查看 cpu 相关的性能指标
-w :表示查看上下文切换情况,要想查看每个进程的详细情况,要加上 -w
-t :查看线程相关的信息,默认是进程的 ; 常与 -w 结合使用 (cpu 的上下文切换包括进程的切换、线程 的切换、中断的切换)
-d :展示磁盘  I/O  统计数据
-p :指明进程号
使用方式: pidstat [option] interval [count]
使用范例: pidstat -urd -p  进程号

实例1:pidstat -w -p 685

root@hehe:~# ./pidstat -w -p 685
Linux 4.1.15 (hehe)     10/15/22        _armv7l_        (1 CPU)

19:29:11      UID       PID   cswch/s nvcswch/s  Command
19:29:11        0       685      0.01      0.00  ld-linux-armhf.
root@hehe:~#
这个结果中有两列内容是我们的重点关注对象。一个是 cswch ,表示每秒自愿上下文切换( voluntary context switches)的次数,另一个则是 nvcswch ,表示每秒非自愿上下文切换( non voluntary context switches)的次数。
这两个概念一定要牢牢记住,因为它们意味着不同的性能问题:所谓自愿上下文切换,是指进程无法获取所需资源,导致的上下文切换。比如说, I/O 、内存等系 统资源不足时,就会发生自愿上下文切换。 而非自愿上下文切换,则是指进程由于时间片已到等原因,被系统强制调度,进而发生的上下文切 换。比如说,大量进程都在争抢 CPU 时,就容易发生非自愿上下文切换。  

实例2:pidstat -urd -p 685

root@hehe:~# ./pidstat -urd -p 685
Linux 4.1.15 (hehe)     10/15/22        _armv7l_        (1 CPU)
##输出CPU的使用信息 -u
19:32:15      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
19:32:15        0       685   29.41    1.01    0.00    0.00   30.41     0  ld-linux-armhf.
##输出内存的使用信息 -r
19:32:15      UID       PID  minflt/s  majflt/s     VSZ     RSS   %MEM  Command
19:32:15        0       685    467.47      0.00  133228   16280   3.21  ld-linux-armhf.
##输出磁盘I/O的使用信息 -d
19:32:15      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
19:32:15        0       685     -1.00     -1.00     -1.00       0  ld-linux-armhf.
root@hehe:~#
CPU 信息
%usr              # 用户层任务正在使用的 CPU 百分比( with or without nice priority  NOT include time spent running a virtual processor)
%system    # 系统层正在执行的任务的 CPU 使用百分比
%guest       # 运行虚拟机的 CPU 占用百分比
%CPU       # 所有的使用的 CPU 的时间百分比
CPU                         # 处理器数量
Command # 命令
内存信息
PID : # 进程号
minflt/s: # 每秒次缺页错误次数 (minor page faults) ,次缺页错误次数意即虚拟内存地 址映射成物理内存地址产生的page fault 次数
majflt/s:# 每秒主缺页错误次数 (major page faults) ,当虚拟内存地址映射成物理内存地址时,相应的page swap 中,这样的 page fault major page fault ,一般在内存使用紧张时产生
VSZ                                         # 该进程使用的虚拟内存 ( kB 为单位 )
RSS                                          # 该进程使用的物理内存 ( kB 为单位 )
%MEM                     # 当前任务使用的有效内存的百分比
Command  # 任务的命令名  
磁盘 I/O
PID             # 进程号
kB_rd/s     # 每秒此进程从磁盘读取的千字节数
kB_wr/s     # 此进程已经或者将要写入磁盘的每秒千字节数
kB_ccwr/s # 由任务取消的写入磁盘的千字节数
Command #命令的名字 
上下文切换
PID #PID
cswch/s # 每秒自动上下文切换
nvcswch/s # 每秒非自愿的上下文切换
Command #命令 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(附源码)计算机毕业设计JavaJava毕设项目电脑小白网站

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

华为机试 - 勾股数元组

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 如果3个正整数(a,b,c)满足a^2 b^2 c^2的关系,则称(a,b,c)为勾股数(著名的勾三股四弦五), 为了探索勾股数的规律,我们定义如果勾股数(a,b,…

Spring Boot 检索定时任务

概述 应用经常需要添加检索功能,开源的 ElasticSearch 是目前全文搜索引擎的首选。他可以快速的存储、搜索和分析海量数据。Spring Boot通过整合Spring Data ElasticSearch为我们提供了非常便捷的检索功能支持。 Elasticsearch是一个分布式搜索服务,提…

iwebsec靶场搭建

iwebsec靶场可以通过两种方法进行渗透。 iwebsec靶场简介 第一种是在线靶场:http://www.iwebsec.com:81/ 第二种是本地搭建:目前可以通过两种方法搭建,一种是虚拟机绿色版解压即用,另外一种则是通过docker安装,也是此…

智慧港口解决方案-最新全套文件

智慧港口解决方案-最新全套文件一、建设背景二、建设思路三、建设方案四、获取 - 智慧**全套最新解决方案合集一、建设背景 智慧港口是随着时代进步发展起来的一种现代港口运输的新业态,它是以现代化基础设施为基础,促使大数据、云计算、物联网、移动互…

Ansible Automation Platform - 保护 Playbook 中的敏感内容

《OpenShift / RHEL / DevSecOps / Ansible 汇总目录》 文章目录AAP 保护 Playbook 敏感信息的方法使用 ansible-vault 保护 Playbook 中的敏感信息使用AAP的凭证保护访问通用目标的关键信息场景1场景2使用令牌访问 AAPAAP 保护 Playbook 敏感信息的方法 在上一篇《Ansible Au…

【ES笔记01】ElasticSearch数据库之index索引、doc文档、alias别名、mappings映射结构的基本操作

这篇文章,主要介绍ElasticSearch数据库之index索引、doc文档、alias别名、mappings映射结构的基本操作。 目录 一、索引index相关操作 1.1、创建索引 1.2、查询索引 1.3、查询所有索引 1.4、删除索引 二、文档doc相关操作 2.1、创建文档 2.2、更新文档 &am…

基于JSP的敬老院信息管理系统【数据库设计、源码、开题报告】

数据库脚本下载地址: https://download.csdn.net/download/itrjxxs_com/86467170 主要使用技术 ServletJSPCSSJSMysql 功能介绍 系统管理员用户功能介绍: 密码信息管理:修改个人账号密码; 系统用户管理:可以对系统…

【爬虫进阶】易班登录加密逆向

目录前言分析代码过程結果完整代码前言 demo比较简单,逆向难点:rsa加密,图片验证码 分析 我们模拟登录,请求一下 红框内是我们提交的参数,password看上去应该是rsa加密,captcha是验证码,key…

GO面试一定要看看这些面试题

Go核心特性 1.goroutine 协程是用户态轻量级线程,它是线程调度的基本单位。 使用者分配足够多的任务,系统能自动帮助使用者把任务分配到 CPU 上,让这些任务尽量并发运作。这种机制在 Go语言中被称为 goroutine(协程&#xff09…

【javaEE】网络原理(网络层)

努力经营当下,直至未来明朗 文章目录前言一、网络层简述【IP协议】THINK前言 一个人最大的痛苦来源于对自己无能的愤怒 Hi,这里是不想秃头的宝贝儿! 本文主要介绍【网络层】,其中最关键的就是【IP协议】。(同样&…

【天池竞赛】心跳数据挖掘

天池学习赛 心跳数据挖掘 168分攻略 Chapter 1. 赛题解析 就如比赛界面所介绍的一般,这里再复述一遍 本次新人赛是Datawhale与天池联合发起的0基础入门系列赛事 —— 心跳信号分类预测。赛题以心电图心跳信号数据为背景,要求选手根据心电图感应数据预测…

【序列召回推荐】(task4)多兴趣召回实践:MIND(更新中)

note 阿里的序列召回MIND模型:引入了胶囊网络,将胶囊网络的动态路由算法引入到了用户的多兴趣建模上,通过B2I动态路由很好的从用户的原始行为序列中提取出用户的多种兴趣表征。在离线训练阶段,通过提出Label-Aware Attention详细…

Lifecycle 生命周期组件的那些事

引言 在2022的今天,AndroidX 普遍的情况下,JetPack Lifecycle 也早已经成为了开发中的基础设施,小到 View(扩展库) ,大到 Activity,都隐藏着它的身影,而了解 Lifecycle 也正是理解 JetPack 组件系列库生命感知设计的基…

D-013 蜂鸣器硬件电路设计

蜂鸣器硬件电路设计1 简介2 蜂鸣器电路设计1 简介 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中做发声器件。 蜂鸣器的分类:压电…

【ASM】字节码操作 工具类与常用类 AnalyzerAdapter初步介绍

文章目录 1.概述1.1 第一句话1.2 第二句话2. AnalyzerAdapter2.1 class info2.2 fields2.3 constructors2.4 methods2.4.1 execute方法2.4.2 return和throw2.4.3 jump2.4.4 visitFrame方法2.4.5 new和invokespecial1.概述 在上一篇文章:

创建KVM虚拟机公共镜像

手动配置kvm教程: https://blog.csdn.net/nvd11/article/details/127435990 但是毕竟每次创建新的虚拟机时,还要装一次系统比较麻烦。 打算做个公共的ubuntu镜像出来。 目标: NoDESCcpu数内存第一步创建虚拟机vm128g第二步创建虚拟机镜像文…

第五章《类的继承》第1节:继承的概念与实现方式

继承是面向对象最显著的一个特性,它是以已存在的类为基础定义新类的技术,新的类可以继承已有类的属性和方法,也可以增加新的类成员。 5.1.1什么是继承 在现实生活中,一类事物往往都可以划分成更小的类别。例如:“人”就是一类事物,按照人的身份和职业,可以把人划分成学…

SSTV慢速扫描的几种模式优劣对比

下面使用的图片是我自己拍摄的照片,无版权问题 原图: 扫描环境: 家中客厅,窗户打开,窗外有鸟叫和人声.模拟了介于野外和户外之间的环境 ,两部设备相隔1厘米,音量35%,所有测试下来设备未移动. Martin1 模式 : 扫描时长: 1分55秒 扫描后图片 Martin2 模式 : 扫描时长: 58秒…

Pywinauto的安装及使用

目录 1.pywinauto简单介绍 2.pywinauto的安装 3. 通过启动windows自带记事本,检查是否可正常使用 1.pywinauto简单介绍 pywinauto是一组用于自动化测试脚本的python模块,用于自动化Microsoft Windows GUI。它允许将鼠标和键盘操作发送到windows对话框…