linux:使用sar诊断问题
使用sar诊断问题
- 1. CPU 使用情况
- 2. 内存与交换
- 3. 磁盘 I/O 活动
- 4. 网络 I/O 活动
- 5. 进程与上下文切换
- 6. 系统调用与文件活动
- 7. 电源管理
- 8. 延迟分析
- 9. 系统全局统计
- 10. 查看历史记录
- 11. 特定时间段
- 12. 自动定时采样
- 其他参数:
- 使用实例:
sar
(System Activity Reporter)是 sysstat
工具包中的命令,用于收集、报告和保存各种系统活动的统计信息。它可以监控 CPU、内存、磁盘 I/O、网络等多种资源的使用情况。你可以通过不同的参数来获取不同类型的系统活动统计。
以下是 sar
命令的常见参数及其详细解释:
1. CPU 使用情况
sar -u
:报告 CPU 的整体使用情况,包括用户、系统、空闲等时间的百分比。sar -u [间隔] [次数]
:每隔一段时间采集一次 CPU 使用数据并报告多次。sar -P
:报告每个 CPU 的使用情况。sar -P ALL
:报告所有 CPU 的使用情况。sar -P <CPU>
:报告指定 CPU 的使用情况。
sar -u
输出内容解释:
[baichao@localhost linux-5.6]$ sar -u 1 3
Linux 3.10.0-1160.102.1.el7.x86_64 (localhost.localdomain) 10/11/2024 _x86_64_ (8 CPU)03:32:22 AM CPU %user %nice %system %iowait %steal %idle
03:32:23 AM all 99.43 0.00 0.57 0.00 0.00 0.00
03:32:24 AM all 99.42 0.00 0.58 0.00 0.00 0.00
03:32:25 AM all 99.41 0.00 0.59 0.00 0.00 0.00
Average: all 99.42 0.00 0.58 0.00 0.00 0.00
参数解释:
sar -u 1 3
:表示每秒采样一次 CPU 数据,并输出 3 次。
各列的含义:
- %user:用户空间进程的 CPU 使用率(执行应用程序的时间占用率)。
- %nice:带有正优先级(
nice
值)的用户进程的 CPU 使用率。 - %system:内核空间(系统级)进程的 CPU 使用率(执行系统调用和内核操作的时间占用率)。
- %iowait:等待 I/O 操作完成的时间占 CPU 总时间的百分比。值越高,说明系统可能有 I/O 瓶颈。
- %steal:虚拟机管理程序(hypervisor)从该虚拟机“窃取”的 CPU 时间。
- %idle:空闲时间,即 CPU 无事可做的时间。如果系统在繁忙的情况下有较高的
idle
值,可能有资源调度或系统瓶颈问题。
通过 sar -u
,可以分析系统的 CPU 性能,了解 CPU 是处于忙碌状态还是有足够的空闲资源,以及是否有 I/O 或 CPU 相关的瓶颈。
2. 内存与交换
-
sar -r
:报告内存的使用情况,包括物理内存和交换空间的统计数据。- 包括
kbmemfree
(空闲物理内存)、kbmemused
(已用物理内存)、%memused
(已用内存百分比)、kbswpfree
(空闲交换空间)等。
- 包括
-
sar -S
:报告交换空间的活动情况,包括交换入和交换出的数据量。- 包括
pswpin/s
(每秒交换到内存中的页数)、pswpout/s
(每秒交换到磁盘中的页数)。
- 包括
你运行的 sar -r
命令用于显示 Linux 系统中的内存使用情况。它生成了一段时间内的内存使用统计,包括空闲内存、已使用内存、缓存和缓冲区等信息。
[baichao@localhost linux-5.6]$ sar -r
Linux 3.10.0-1160.102.1.el7.x86_64 (localhost.localdomain) 10/11/2024 _x86_64_ (8 CPU)03:30:02 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
03:40:01 AM 11165664 5081720 31.28 2108 2923356 2114924 8.63 3930476 587340 0
03:50:01 AM 11160444 5086940 31.31 2108 2923364 2181620 8.90 3933536 587348 0
04:00:02 AM 11156368 5091016 31.33 2108 2923372 2181004 8.90 3936384 586940 4
Average: 11160825 5086559 31.31 2108 2923364 2159183 8.81 3933465 587209 104:00:40 AM LINUX RESTART
各列的含义:
kbmemfree
:系统中空闲的内存,以 KB 为单位。kbmemused
:系统中已使用的内存,以 KB 为单位。%memused
:已使用内存占总内存的百分比。kbbuffers
:用于存储硬盘数据的缓冲区大小(以 KB 为单位),这部分内存将用于硬盘 I/O 操作。kbcached
:文件系统缓存的大小(以 KB 为单位),这部分内存用于缓存常用的文件数据,以提高访问速度。kbcommit
:已提交的内存大小(以 KB 为单位),表示需要保证的内存大小,即使系统过度使用交换空间。这个数值包括所有正在使用或即将被使用的内存。%commit
:已提交内存占系统内存的百分比。kbactive
:处于活动状态的内存(以 KB 为单位),这些内存正在被频繁访问。kbinact
:处于非活动状态的内存(以 KB 为单位),这些内存包含不经常使用的数据,但仍然保留在内存中以便快速访问。kbdirty
:当前等待写入到磁盘的脏页(以 KB 为单位),表示修改过但尚未写入磁盘的数据。
第一行的数据可以理解为:
- **03:30:02 AM** 时间点:
- 系统有 **11165664 KB** 的空闲内存,已使用内存为 **5081720 KB**,已使用内存占 **31.28%**。
- 缓冲区大小为 **2108 KB**,文件缓存大小为 **2923356 KB**。
- 已提交的内存为 **2114924 KB**,提交率为 **8.63%**。
- 活动内存为 **3930476 KB**,非活动内存为 **587340 KB**,脏数据为 **0 KB**。
重新启动信息
04:00:40 AM LINUX RESTART
这个表示系统或 sysstat
服务在 04:00:40 AM
重新启动,所有统计从这个时间开始重新计算。
总结:
- 该输出显示系统从 03:30 到 04:00 的内存使用情况。
- 系统平均使用了大约 31.31% 的物理内存,空闲内存大约是 11160825 KB,文件缓存和缓冲区数据量稳定。
- 系统的内存使用相对较低,
kbdirty
数据很少,表示几乎没有脏数据等待写入磁盘。 - 最后,系统在
04:00:40
进行了重启,可能是计划任务或手动重启的结果。
3. 磁盘 I/O 活动
-
sar -b
:报告块设备的 I/O 传输情况。- 包括
tps
(每秒传输数)、rtps
(每秒读请求数)、wtps
(每秒写请求数)、bread/s
(每秒从设备读取的块数)等。
- 包括
-
sar -d
:报告每个设备的 I/O 活动情况(需要启用sadf
)。- 包括
tps
、rd_sec/s
、wr_sec/s
等设备读写统计。
- 包括
[baichao@localhost linux-5.6]$ sar -b
Linux 3.10.0-1160.102.1.el7.x86_64 (localhost.localdomain) 10/11/2024 _x86_64_ (8 CPU)03:30:02 AM tps rtps wtps bread/s bwrtn/s
03:40:01 AM 3.24 1.49 1.75 102.16 125.10
03:50:01 AM 0.10 0.00 0.10 0.00 0.88
04:00:02 AM 0.08 0.00 0.08 0.00 0.64
Average: 1.14 0.50 0.64 34.00 42.1504:00:40 AM LINUX RESTART04:10:01 AM tps rtps wtps bread/s bwrtn/s
04:20:01 AM 0.21 0.00 0.21 0.03 2.81
Average: 0.21 0.00 0.21 0.03 2.81
每一列代表不同的块设备 I/O 指标:
tps
:每秒传输的块数(transactions per second),表示每秒进行的读写请求的总数。3.24,表示每秒进行约 3.24 次读写请求。rtps
:每秒读取的块数(reads per second),表示每秒进行的读取请求的数量。1.49,表示每秒进行约 1.49 次读取请求。wtps
:每秒写入的块数(writes per second),表示每秒进行的写入请求的数量。1.75,表示每秒进行约 1.75 次写入请求。bread/s
:每秒读取的块数(bytes read per second),表示每秒从块设备读取的数据量,以字节为单位。 102.16,表示每秒读取的数据量约为 102.16 字节。bwrtn/s
:每秒写入的块数(bytes written per second),表示每秒写入到块设备的数据量,以字节为单位。125.10,表示每秒写入的数据量约为 125.10 字节。
4. 网络 I/O 活动
sar -n
:报告网络活动。sar -n DEV
:显示网络接口的统计数据,包括传输和接收的字节数、数据包数等。sar -n EDEV
:显示带有错误的网络设备统计信息。sar -n SOCK
:显示 TCP/IP 套接字的统计数据。sar -n IP
:显示 IP 协议的统计数据,如发送、接收、转发的 IP 数据包。sar -n TCP
:显示 TCP 连接的统计数据。sar -n UDP
:显示 UDP 统计数据。
sar -n DEV -f /var/log/sa/sa01:查看本月 1 号的网卡流量情况
sar -n SOCK -f /var/log/sa/sa01:查看本月 1 号的网络连接情况
5. 进程与上下文切换
-
sar -w
:报告进程上下文切换的统计信息。- 包括
proc/s
(每秒创建的进程数)、cswch/s
(每秒上下文切换次数)。
- 包括
-
sar -q
:报告系统负载(包括运行队列和等待队列长度)。
6. 系统调用与文件活动
-
sar -v
:报告文件表、inode 表、缓冲区和内核内部的相关信息。- 包括
dentunusd
(未使用的目录项)、file-nr
(文件表中的打开文件数量)等。
- 包括
-
sar -y
:报告 TTY 设备活动(终端设备)。
7. 电源管理
sar -m
:报告电源状态统计信息,适用于带有电池的设备。sar -m POWER
:显示电源的消耗状态。
8. 延迟分析
sar -B
:报告分页活动的统计信息。- 包括
pgpgin/s
(每秒交换到内存中的页数)、pgpgout/s
(每秒交换到磁盘中的页数)。
- 包括
9. 系统全局统计
sar -A
:报告所有可用的系统活动统计信息的综合报告。- 通常是最全面的报告方式,适合需要了解系统整体性能的情况。
10. 查看历史记录
sar -f <文件>
:从指定的文件中读取历史数据(通常是/var/log/sa/
目录下的文件)。- 可用于查看过去的性能数据。
11. 特定时间段
sar -s <起始时间> -e <结束时间>
:报告在特定时间段内的数据。- 格式为
HH:MM:SS
,例如:sar -s 08:00:00 -e 12:00:00
会报告从 08:00 到 12:00 之间的系统活动。
- 格式为
12. 自动定时采样
crontab
配置:sar
通常结合crond
,通过定时任务自动采集系统性能数据,配置文件一般在/etc/cron.d/sysstat
。
其他参数:
-h
:生成更易读的格式(例如将 kB 格式化为 MB)。-o <文件>
:将报告输出到指定的文件中,供以后分析。-i <间隔>
:设置采样间隔时间(单位:秒)。
使用实例:
- 查看实时 CPU 使用率:
sar -u 1 5
(每秒采集一次,共采集 5 次) - 查看过去的网络流量情况:
sar -n DEV -f /var/log/sa/sa10
相关文章:
linux:使用sar诊断问题
使用sar诊断问题 1. CPU 使用情况2. 内存与交换3. 磁盘 I/O 活动4. 网络 I/O 活动5. 进程与上下文切换6. 系统调用与文件活动7. 电源管理8. 延迟分析9. 系统全局统计10. 查看历史记录11. 特定时间段12. 自动定时采样其他参数:使用实例: sar(S…...
CUDA编程技巧(不断搜集更新)
1 使用位运算替换部分乘法或除法 位移操作主要适用于无符号整数,对于带符号数的位移,特别是负数,可能会导致问题,如果你需要对负数执行除法或者乘法,最好谨慎使用位移运算。 1.1 替换除法 当需要将一个数除以 2、4、…...

云计算(第二阶段):mysql后的shell
第一章:变量 前言 什么是shell Shell 是一种提供用户与操作系统内核交互的工具,它接受用户输入的命令,解释后交给操作系统去执行。它不仅可以作为命令解释器,还可以通过脚本完成一系列自动化任务。 shell的特点 跨平台:…...

Debian12离线部署Mysql全网最详细教程
一、下载安装所需要的库 1、所需要的库 # 所需要的库有 libc6_2.36-9deb12u8_amd64.deb libgcc-s1_12.2.0-14_amd64.deb libstdc6_12.2.0-14_amd64.deb gcc-12-base_12.2.0-14_amd64.deb psmisc_23.6-1_amd64.deb libnuma1_2.0.18-1_amd64.deb libmecab2_0.996-14b14_amd64.d…...
文本生成视频技术:艺术与科学的交汇点
在人工智能技术的飞速发展下,文本生成视频(Text-to-Video)技术已经成为现实。这项技术能够根据文本描述生成相应的视频内容,极大地拓展了内容创作的边界。本文将从三个主要方面对文本生成视频技术进行深入探讨:技术能达…...

【Windows】【DevOps】Windows Server 2022 采用WinSW将一个控制台应用程序作为服务启动(方便)
下载WinSW 项目地址: GitHub - winsw/winsw: A wrapper executable that can run any executable as a Windows service, in a permissive license. 下载地址: https://github.com/winsw/winsw/releases/download/v2.12.0/WinSW-x64.exe 参考配置模…...

OpenAI董事会主席Bret Taylor的Agent公司Sierra:专注于赋能下一代企业用户体验
本文由readlecture.cn转录总结。ReadLecture专注于音、视频转录与总结,2小时视频,5分钟阅读,加速内容学习与传播。 视频来源 youtube: https://www.youtube.com/watch?vriWB5nPNZEM&t47s 大纲 介绍 欢迎与介绍 介绍Bret Taylor&#x…...

【linux】信号(下)
8. 阻塞信号 (一)信号其他相关常见概念 实际执行信号的处理动作称为信号递达(Delivery)信号从产生到递达之间的状态,称为信号未决(Pending)进程可以选择阻塞 (Block )某个信号被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作(即被阻塞的信…...
Notepad++ 初学者指南
引言 对于初学者来说,选择合适的编程工具很重要,特别是考虑到易用性和计算机资源的需求。 虽然集成开发环境(IDE)如 Eclipse、IntelliJ IDEA 和 Visual Studio 提供了许多强大的功能,但对于刚开始学习编程的人来说&a…...

Web Socket 使用详解
在信息爆炸的时代,用户对网页的期待早已超越了静态内容的展示。实时聊天、股票报价、协同编辑等功能的实现,都离不开服务器与客户端之间持续、高效的数据交互。传统的HTTP请求-响应模型难以满足这种需求,而WebSocket的出现,为构建…...

【Python Web开发】Python Web开发知识全解析
Python Web开发知识全解析 Python 是一种强大的编程语言,以其简洁和高效而闻名,尤其在 Web 开发领域,它有着广泛的应用。Python 提供了许多功能强大且灵活的 Web 框架,如 Flask、Django、FastAPI 等,使得构建现代 Web…...

Android开发展开收起功能
Android开发展开收起功能 文字过长展开收起功能很普通,也很需要。 一、思路: 自定义控件MoreTextView 二、效果图: 三、关键代码: public class MoreTextView2 extends LinearLayout {/*** TextView的实际高度*/private int …...

Sealos Devbox 发布,珍爱生命,远离 CI/CD
水滴攻击太阳系用的是最原始的攻击方式:撞击!却又如此有效率。 当我们搞了一堆容器、编排、CI/CD、DevOps,发明了一大堆没什么用的名词之后,最终发现这些操作都是花里胡哨,让开发者越陷越深。 最终你会发现一个真理&…...

数据结构——遍历二叉树
目录 什么是遍历二叉树 根据遍历序列确定二叉树 例题(根据先序中序以及后序中序求二叉树) 遍历的算法实现 先序遍历 中序遍历 后序遍历 遍历算法的分析 二叉树的层次遍历 二叉树遍历算法的应用 二叉树的建立 复制二叉树 计算二叉树深度 计算二…...

【Ubuntu】在Ubuntu上安装IDEA
【Ubuntu】在Ubuntu上安装IDEA 零、前言 最近换了Ubuntu系统,但是还得是要写代码,这样就不可避免地用到IDEA,接下来介绍一下如何在Ubuntu上安装IDEA。 壹、下载 这一步应该很容易的,直接打开IDEA的下载页面,点击下…...

解决:gpg: 从公钥服务器接收失败:服务器故障
当你添加密钥时报错,可以按照下面的步骤,依次输入。 # 停止 Network Manager 服务 sudo service network-manager stop# 删除 Network Manager 的状态文件 sudo rm /var/lib/NetworkManager/NetworkManager.state# 重新启动 Network Manager 服务 sudo …...

支持向量机SVM
目录 1 SVM直觉理解2. 软硬间隔3. 升维转换及核技巧入门 参考资料 1 SVM直觉理解 通过一条直线将两类数据分开,并且当有新的数据加入时,通过该条直线就能判别其属于哪一类 为了区分两类数据,N为数据的样本数,M为维度数…...
斯坦福UE4 C++课学习补充25:AI感知组件
文章目录 一、引入感知组件并绑定委托二、优化角色旋转 一、引入感知组件并绑定委托 PawnSensingComponent是UE中用于感知其他 Pawn(或 Actor)存在的一个组件,常用于 AI 角色的视觉、听觉等感知功能。它为 AI 提供了基础的感知能力ÿ…...
大模型 memory 记忆 缓存的应用
在探讨大模型的“memory”(记忆)功能时,我们通常会涉及缓存、存储以及如何有效管理和利用这些记忆来增强模型的性能。以下是对大模型memory记忆、缓存及相关概念的详细分析: 一、大模型的记忆功能 大模型,特别是大型…...
perl 给特定文件加上特定内容
perl 给特定文件加上特定内容 给所有的输入文件,加上特定的内容 本例中,给所有的输入文件内加入## Copyright xxx 如果检测到已经有## Copyright字样的行,那么不添加,具体代码如下。 可以使用该脚本,给所有的verilog文…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...