sar 找出系统瓶颈的利器 目前Linux上最为全面的系统性能分析工具之一 直接 sar -dur 1 30 即可看内存 CPU和IO占用

简介:

12. sar 找出系统瓶颈的利器

sar是System Activity Reporter(系统活动情况报告)的缩写。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以 连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小。sar是目前Linux上最为全面的系统性能分析工具之一, 可以从14个大方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、串口、CPU效率、内存使用状况、进程活动及IPC有关的活动等,使 用也是较为复杂。

sar是查看操作系统报告指标的各种工具中,最为普遍和方便的;它有两种用法;

  1. 追溯过去的统计数据(默认)
  2. 周期性的查看当前数据

安装

  1. 有的linux系统下,默认可能没有安装这个包,使用apt-get install sysstat 来安装;
  2. 安装完毕,将性能收集工具的开关打开: vi /etc/default/sysstat
设置 ENABLED=”true”
  1. 启动这个工具来收集系统性能数据: /etc/init.d/sysstat start

12.1. 追溯过去的统计数据

默认情况下,sar从最近的0点0分开始显示数据;如果想继续查看一天前的报告;可以查看保存在/var/log/sysstat/下的sa日志; 使用sar工具查看:

$sar -f /var/log/sysstat/sa28 \| head sar -r -f
/var/log/sysstat/sa28
../_images/sar1.png

12.2. 查看CPU使用率

sar -u : 默认情况下显示的cpu使用率等信息就是sar -u;

../_images/sar2.png

可以看到这台机器使用了虚拟化技术,有相应的时间消耗; 各列的指标分别是:

  • %user 用户模式下消耗的CPU时间的比例;
  • %nice 通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间的比例
  • %system 系统模式下消耗的CPU时间的比例;
  • %iowait CPU等待磁盘I/O导致空闲状态消耗的时间比例;
  • %steal 利用Xen等操作系统虚拟化技术,等待其它虚拟CPU计算占用的时间比例;
  • %idle CPU空闲时间比例;

12.4. 查看内存使用状况

sar -r: 指定-r之后,可查看物理内存使用状况;

../_images/sar4.png
  • kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
  • kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
  • %memused:物理内存使用率,这个值是kbmemused和内存总量(不包括swap)的一个百分比.
  • kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
  • kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
  • %commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.

12.5. 查看页面交换发生状况

sar -W:查看页面交换发生状况

页面发生交换时,服务器的吞吐量会大幅下降;服务器状况不良时,如果怀疑因为内存不足而导致了页面交换的发生,可以使用这个命令来确认是否发生了大量的交换;

../_images/sar5.png
  • pswpin/s:每秒系统换入的交换页面(swap page)数量
  • pswpout/s:每秒系统换出的交换页面(swap page)数量

要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来;

  • 怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
  • 怀疑内存存在瓶颈,可用sar -B、sar -r 和 sar -W 等来查看
  • 怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看

转自:http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/sar.html


















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/6800437.html ,如需转载请自行联系原作者

相关文章
|
5天前
|
Linux
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
50 23
Linux系统之whereis命令的基本使用
|
2月前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
229 78
|
1月前
|
缓存 安全 Linux
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
109 23
|
2月前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
88 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
2月前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
120 13
|
2月前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
66 0
|
2月前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
3月前
|
缓存 Prometheus 监控
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
630 1
|
2月前
|
存储 监控 算法
深入探索Java虚拟机(JVM)的内存管理机制
本文旨在为读者提供对Java虚拟机(JVM)内存管理机制的深入理解。通过详细解析JVM的内存结构、垃圾回收算法以及性能优化策略,本文不仅揭示了Java程序高效运行背后的原理,还为开发者提供了优化应用程序性能的实用技巧。不同于常规摘要仅概述文章大意,本文摘要将简要介绍JVM内存管理的关键点,为读者提供一个清晰的学习路线图。
|
3月前
|
Java
JVM内存参数
-Xmx[]:堆空间最大内存 -Xms[]:堆空间最小内存,一般设置成跟堆空间最大内存一样的 -Xmn[]:新生代的最大内存 -xx[use 垃圾回收器名称]:指定垃圾回收器 -xss:设置单个线程栈大小 一般设堆空间为最大可用物理地址的百分之80

热门文章

最新文章