5个Linux性能监控命令

这些命令提供了宝贵的系统性能统计数据,有助于分析资源利用率、识别瓶颈和优化效率。

1. vmstat – 报告虚拟内存统计数据

vmstat 命令可打印有关内存、交换、I/O 和 CPU 活动的详细报告。其中包括已用/可用内存、交换入/出、磁盘块读/写和 CPU 进程/闲置时间等指标。

例子:

vmstat 5

其他有用的 vmstat 选项:

  • -a – 显示活动和非活动内存
  • -s – 显示事件计数器和内存统计信息
  • -S – 以 KB 而不是块为单位输出
  • 5 – 每 5 秒刷新一次输出。

上面的示例每 5 秒输出一次内存和 CPU 数据,直到中断为止,这对监控实时系统性能非常有用。

[root@xx web]# vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st0  0      0 115732      0 952956    0    0     0     2    2    4  0  0 99  0  0

每一列代表的意思:

procs: 进程统计信息

  • r: 运行队列中正在运行的进程数
  • b: 等待运行的进程数

memory: 内存统计信息

  • swpd: 使用的交换空间大小(单位为KB)
  • free: 空闲内存大小(单位为KB)
  • buff: 用于缓冲的内存大小(单位为KB)
  • cache: 用于缓存的内存大小(单位为KB)

swap: 交换空间统计信息

  • si: 从磁盘读取到交换空间的数据大小(单位为KB/s)
  • so: 从交换空间写入到磁盘的数据大小(单位为KB/s)

io: I/O 统计信息

  • bi: 块设备接收的块数(单位为块/s)
  • bo: 块设备发送的块数(单位为块/s)

system: 系统统计信息

  • in: 每秒中断的数量
  • cs: 每秒上下文切换的数量

cpu: CPU 统计信息

  • us: 用户进程使用 CPU 的时间百分比
  • sy: 系统进程使用 CPU 的时间百分比
  • id: CPU 处于空闲状态的时间百分比
  • wa: CPU 正在等待 I/O 完成的时间百分比
  • st: 被虚拟化环境(例如虚拟机)偷取的时间百分比

2. iostat – 报告 CPU 和 I/O 统计数据

iostat 命令监控并显示 CPU 利用率和磁盘 I/O 指标。其中包括 CPU 负载、IOPS、读/写吞吐量等。

一些 iostat 选项:

  • c – 显示 CPU 使用率信息
  • t – 为每份报告打印时间戳
  • x – 显示服务时间和等待计数等扩展统计信息
  • d – 显示每个磁盘/分区的详细统计信息,而不是合计总数
  • p – 显示特定磁盘设备的统计信息

下面每 5 秒钟显示一次 sda 每个设备的详细 I/O 统计信息。

iostat -d -p sda 5

iostat 可帮助分析磁盘子系统的性能,找出硬件瓶颈。

[root@xx web]# iostat
Linux 4.19.188-10.el7.ucloud.x86_64 (10-50-90-250) 	01/11/2024 	_x86_64_	(2 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.41    0.00    0.36    0.00    0.00   99.23Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.45         0.10         4.60     433948   19644449

每一列参数代表的意思:

avg-cpu:这一行统计了 CPU 使用情况的平均值。

  • %user:用户态进程使用 CPU 的百分比。
  • %nice:以较高优先级运行的用户态进程使用 CPU 的百分比(优先级较低的用户态进程)。
  • %system:内核进程使用 CPU 的百分比。
  • %iowait:CPU 等待 I/O 完成的百分比。
  • %steal:当 hypervisor(虚拟化环境中的宿主机)需要让出 CPU 给其他虚拟机时,该 CPU 被偷取的百分比。
  • %idle:CPU 空闲时间的百分比。

Device:这一行显示了每个磁盘设备的统计数据。

  • tps:每秒传输的 I/O 请求数。这个值反映了磁盘设备的工作负载。
  • kB_read/s:每秒从设备读取的数据量,以千字节 (KB) 为单位。
  • kB_wrtn/s:每秒写入设备的数据量,以千字节 (KB) 为单位。
  • kB_read:从设备读取的总数据量,以千字节 (KB) 为单位。
  • kB_wrtn:写入设备的总数据量,以千字节 (KB) 为单位。

3. free – 显示可用和已用内存量

free 命令显示系统中物理内存和交换内存的总量、已用量和空闲量。这将提供可用内存的总体情况。

例子:

free -h

free 命令的一些选项:

  • b – 以字节为单位显示输出
  • k – 以 KB(而非默认字节)为单位显示输出结果
  • m – 以 MB 为单位显示输出,而不是以字节为单位
  • h – 以 GB、MB 等人类可读格式打印统计数据,而不是字节。

以人类可读格式(GB、MB 等)打印内存统计数据。当你想快速了解内存容量时,它非常有用。

4. df – 报告文件系统磁盘空间使用情况

df 命令显示文件系统的磁盘空间使用情况。它会显示文件系统名称、总/已用/可用空间和容量。

常用的参数选项:

  • -h :以人类可读的格式显示磁盘使用情况,以 K、M、G 等单位表示文件系统的大小和可用空间。
  • -T :显示文件系统类型。
  • -i :显示 inode 的使用情况而不是磁盘空间。
  • -a :显示所有文件系统,包括系统特有的文件系统。
  • -x type :排除指定类型的文件系统。例如,-x tmpfs 将排除 tmpfs 类型的文件系统。
  • -hT :同时使用 -h 和 -T 参数,以人类可读的格式显示文件系统以及各个文件系统类型。
  • –total :在最后一行显示所有文件系统的总空间和已使用空间。
  • –help :显示 df 命令的帮助信息,包括所有可用的参数选项和用法示例。

例子:

df -h

上述命令将以人类可读的格式打印磁盘利用率。也可以不带参数运行该命令,以块大小获得相同的数据。

[root@xx web]# df -T
Filesystem     Type     1K-blocks    Used Available Use% Mounted on
devtmpfs       devtmpfs    891628       0    891628   0% /dev
tmpfs          tmpfs       904464       0    904464   0% /dev/shm
tmpfs          tmpfs       904464  107052    797412  12% /run
tmpfs          tmpfs       904464       0    904464   0% /sys/fs/cgroup
/dev/vda1      xfs       62903276 4308344  58594932   7% /
tmpfs          tmpfs       180896       0    180896   0% /run/user/0

各列的含义:

  • Filesystem:文件系统的名称或挂载点名称。
  • Type:文件系统的类型。
  • 1K-blocks:文件系统的总块数(以千字节为单位)。
  • Used:已使用的块数(以千字节为单位)。
  • Available:可用的块数(以千字节为单位)。
  • Use%:已使用空间占总空间的百分比。
  • Mounted on:文件系统的挂载点。

5. sar – 收集和报告系统活动

sar 工具收集并记录一段时间内 CPU、内存、I/O、网络等系统活动信息。通过分析这些数据,可以发现性能问题。

语法:

sar [options] [interval [count]]

其中,[options] 是可选的命令选项,[interval] 是数据收集的时间间隔(以秒为单位),[count] 是指定收集的次数。

一些常用的 sar 参数选项和示例:

  • -u:显示 CPU 使用率统计数据。
    示例:sar -u

  • -r:显示内存使用情况统计数据。
    示例:sar -r

  • -b:显示磁盘 I/O 统计数据。
    示例:sar -b

  • -n DEV:显示网络接口的统计数据,其中 DEV 是网络接口的名称,如 eth0。
    示例:sar -n DEV

  • -q:显示运行队列和负载平均值的统计数据。
    示例:sar -q

  • -A:显示所有可用的统计数据。
    示例:sar -A

  • -s HH:MM:SS:从指定的起始时间开始显示统计数据。
    示例:sar -s 10:00:00

  • -e HH:MM:SS:显示到指定的结束时间的统计数据。
    示例:sar -e 12:00:00

  • -f FILE:指定 sar 数据文件的路径,用于读取预先记录的数据。在 Linux 系统上,默认情况下,sar 数据文件存储在 /var/log/sa/ 目录下,文件名以 sa 开头,后面跟着日期的数字表示,如 sa01、sa02 等。每个数据文件包含了特定日期的系统活动报告数据。
    示例:sar -f /var/log/sa/sa01

  • -o OUTPUT_FILE:将统计数据写入指定的输出文件中,以便后续使用。
    示例:sar -o output.txt

例子:

sar -u 5 60

每 5 秒采样一次 CPU 使用情况,持续 60 次。

sar 提供了实时工具无法提供的详细历史系统性能数据。

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

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

相关文章

zookeeper下载安装部署

zookeeper是一个为分布式应用提供一致性服务的软件,它是开源的Hadoop项目的一个子项目,并根据google发表的一篇论文来实现的。zookeeper为分布式系统提供了高效且易于使用的协同服务,它可以为分布式应用提供相当多的服务,诸如统一…

P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布————C++

目录 [NOIP2014 提高组] 生活大爆炸版石头剪刀布题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示 解题思路Code调用函数的Code(看起来简洁一点)运行结果 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 …

软件测评中心▏性能测试之压力测试、负载测试的区别和联系简析

在如今的信息时代,软件已经成为人们日常工作和生活不可或缺的一部分。然而,随着软件的发展和应用范围的不断扩大,软件性能的优劣也成为了影响用户使用体验的重要因素。 软件性能测试即对软件在不同条件下的性能进行评估和验证的过程。通过模…

C#多窗口那些事儿

目录 1、调用窗体与被调用窗体 2、窗体的本质 3、调用窗体访问被调用窗体内部对象 4、被调用窗体访问调用窗体 (1)被动方式,也就是调用窗体主动给被调用窗体一个“接口” i.调用窗体定义“静态”变量,并将开放的变量复制 ii.在被调用窗体中,使用:调用窗体名.静态变…

华为OD机试 - 特殊的加密算法(Java JS Python C)

题目描述 有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。 规则如下: 明文为一段数字串由 0~9 组成密码本为数字 0~9 组成的二维数组需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里的数字串是由相邻的单元格数字组成,上…

php多小区智慧物业管理系统源码带文字安装教程

多小区智慧物业管理系统源码带文字安装教程 运行环境 服务器宝塔面板 PHP 7.0 Mysql 5.5及以上版本 Linux Centos7以上 统计分析以小区为单位,统计如下数据:小区总栋数、小区总户数、小区总人数、 小区租户数量、小区每月收费金额统计、小区车位统计、小…

原理图PCB设计文件笔记等分享出来:国产MCU AT32F403+DRV8313+磁编码器的直流无刷电机BLDC的FOC控制

原理图PCB分享出来啦:机器人关节国产MCU AT32F403DRV8313磁编码器的直流无刷电机BLDC的FOC控制 引子包含文件 引子 经过45集的【三哥说技术】视频课程,机器人关节国产MCU AT32F403DRV8313磁编码器的直流无刷电机BLDC的FOC控制板的原理图和PCB都画完了&a…

word2vec中的CBOW和Skip-gram

word2cev简单介绍 Word2Vec是一种用于学习词嵌入(word embeddings)的技术,旨在将单词映射到具有语义关联的连续向量空间。Word2Vec由Google的研究员Tomas Mikolov等人于2013年提出,它通过无监督学习从大规模文本语料库中学习词汇…

2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑦

单元测试 一、任务要求 题目1&#xff1a;任意输入2个正整数值分别存入x、y中&#xff0c;据此完成下述分析&#xff1a;若x≤0或y≤0&#xff0c;则提示&#xff1a;“输入不符合要求。”&#xff1b;若2值相同&#xff0c;则提示“可以构建圆形或正方形”&#xff1b;若2<…

【Scala】——变量数据类型运算符

1. 概述 1.1 Scala 和 Java 关系 1.2 scala特点 Scala是一门以Java虚拟机&#xff08;JVM&#xff09;为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言&#xff08;静态语言需要提前编译的如&#xff1a;Java、c、c等&#xff0c;动态语言如&#…

vue2 el-table行悬停时弹出提示信息el-popover

实现方法&#xff0c;用到了cell-mouse-enter、cell-mouse-leave两个事件&#xff0c;然后在表格的首列字段中&#xff0c;加个el-popover组件&#xff0c;当然你也可以选择在其他字段的位置来显示提示框&#xff0c;看自己的需求了。 示例代码&#xff1a; <el-table cell…

神州数码集团荣获“TiDB 社区最佳贡献企业”

日前&#xff0c;神州数码在 TiDB 开源社区中获得了“TiDB 社区最佳贡献企业”奖。PingCAP 颁发该奖项以认可生态企业在社区中的卓越贡献和积极参与。 神州数码与 PingCAP 最早于 2020 年 12 月 28 日进行战略合作&#xff0c;基于全球领先的开源分布式关系型数据库 TiDB&…

强化学习求解TSP(七):Qlearning求解旅行商问题TSP(提供Python代码)

一、Qlearning简介 Q-learning是一种强化学习算法&#xff0c;用于解决基于奖励的决策问题。它是一种无模型的学习方法&#xff0c;通过与环境的交互来学习最优策略。Q-learning的核心思想是通过学习一个Q值函数来指导决策&#xff0c;该函数表示在给定状态下采取某个动作所获…

内网穿透的应用-使用Docker部署开源建站工具—Halo,并实现个人博客公网访问

文章目录 1. Docker部署Halo1.1 检查Docker版本如果未安装Docker可参考已安装Docker步骤&#xff1a;1.2 在Docker中部署Halo 2. Linux安装Cpolar2.1 打开服务器防火墙2.2 安装cpolar内网穿透 3. 配置Halo个人博客公网地址4. 固定Halo公网地址 本篇文章介绍如何在CentOS下使用D…

AI技术已经发现了一种新材料,可以在电池制造中减少对锂的需求

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

专业130+总400+哈尔滨工业大学803信号与系统和数字逻辑电路考研经验哈工大,电子信息,信息与通信工程,信通

今年专业课803信号与系统和数字逻辑130总分400如愿考上哈尔滨工业大学电子信息&#xff08;信息与通信工程-信通&#xff09;&#xff0c;总结了一些各门课程复习心得&#xff0c;希望对大家复习有帮助。 数学一 资料选择&#xff1a; ①高数&#xff1a;张宇强化班 ②线性…

特征工程-特征清洗

特征清洗 在进行玩特征理解后&#xff0c;我们大致理解了面对的数据中包含哪些内容。下一阶段&#xff0c;我么需要对数据中的内容进行进一步分析处理&#xff0c;针对不同数据进行清洗。数据清洗是对数据进行重新审查和校验的过程&#xff0c;目的在于删除重复信息、纠正存在…

2024/1/11HTML学习 :图片标签

文本格式化标签 左边的突出特别重要的时候使用 3.媒体标签 图片标签

【RT-DETR有效改进】带你分析如何确定改进的基础模型,解决模型无法收敛精度很差的问题(ResNet官方一比一复现)

一、本文介绍 Hello&#xff0c;各位读者&#xff0c;距离第一天发RT-DETR的博客已经过去了接近两个月&#xff0c;这段时间里我深入的研究了一下RT-DETR在ultralytics仓库的使用&#xff0c;旨在为大家解决为什么用v8的仓库训练的时候模型不收敛&#xff0c;精度差的离谱的问…

Wargames与bash知识14

Wargames与bash知识13 Bandit22 基于时间的作业调度程序cron会定期自动运行一个程序。在/etc/cron.d/中查找配置&#xff0c;并查看正在执行的命令。 注意&#xff1a;查看其他人编写的shell脚本是一项非常有用的技能。此级别的脚本有意使其易于阅读。如果您在理解它的作用时…