读取linux的运行状态,Linux下安装使用sar工具来获取系统运行状态

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

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

1.追溯过去的统计数据(默认)

2.周期性的查看当前数据

安装

如果还没安装,安装起来的话还是非常方便的。

复制代码代码如下:

[root@localhost ~]# yum install sysstat

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirrors.grandcloud.cn

* extras: mirrors.grandcloud.cn

* updates: mirrors.grandcloud.cn

addons                                                   | 1.9 kB     00:00

base                                                     | 1.1 kB     00:00

extras                                                   | 2.1 kB     00:00

updates                                                  | 1.9 kB     00:00

updates/primary_db                                       | 255 kB     00:01

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package sysstat.i386 0:7.0.2-11.el5 set to be updated

--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package           Arch           Version                  Repository      Size

================================================================================

Installing:

sysstat           i386           7.0.2-11.el5             base           182 k

Transaction Summary

================================================================================

Install       1 Package(s)

Upgrade       0 Package(s)

Total download size: 182 k

Is this ok [y/N]: y

Downloading Packages:

sysstat-7.0.2-11.el5.i386.rpm                            | 182 kB     00:01

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

Installing     : sysstat                                                  1/1

Installed:

sysstat.i386 0:7.0.2-11.el5

Complete!

安装完毕,将性能收集工具的开关打开:

复制代码代码如下:

vi /etc/default/sysstat

ENABLED="true"

启动这个工具来收集系统性能数据:

复制代码代码如下:

/etc/init.d/sysstat start

注:Sar是后台进程sadc的前端显示工具,安装名为“sysstat”的包后,sadc就会自动从内核收集报告并保存。

下面对sar的一般用法进行总结,以备忘之。

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

怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看

怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看

怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看

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

使用sar工具查看:

复制代码代码如下:

sar -f /var/log/sysstat/sa28 | head

sar -r -f /var/log/sysstat/sa28

b4aced16481ac827941d91b3fbdcefc2.png

查看CPU使用率

复制代码代码如下:

sar -u 1 5

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

fc10cd7c11653153254342fdeef9d75d.png

可以看到这台机器使用了虚拟化技术,有相应的时间消耗;

各列的指标分别是:

%user

用户模式下消耗的CPU时间的比例;

%nice

通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间的比例

%system

系统模式下消耗的CPU时间的比例;

%iowait

CPU等待磁盘I/O导致空闲状态消耗的时间比例;

%steal

利用Xen等操作系统虚拟化技术,等待其它虚拟CPU计算占用的时间比例;

%idle

CPU空闲时间比例;

查看平均负载

复制代码代码如下:

sar -q

指定-q后,就能查看运行队列中的进程数、系统上的进程大小、平均负载等;与其它命令相比,它能查看各项指标随时间变化的情况;

1d5d86ad7aa60f235121f2459b2a7d66.png

runq-sz:运行队列的长度(等待运行的进程数)

plist-sz:进程列表中进程(processes)和线程(threads)的数量

ldavg-1:最后1分钟的系统平均负载

ldavg-5:过去5分钟的系统平均负载

ldavg-15:过去15分钟的系统平均负载

查看内存使用状况

复制代码代码如下:

sar -r

指定-r之后,可查看屋里内存使用状况;

df7837f9b13523d96695a1f4e6ee9b96.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)的一个百分比.

查看页面交换发生状况

复制代码代码如下:

sar -W

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

0636d81fc6aceb01637701276ff8a875.png

pswpin/s:每秒系统换入的交换页面(swap page)数量

pswpout/s:每秒系统换出的交换页面(swap page)数量

sar参数说明选项 功能

-A 汇总所有的报告

-a 报告文件读写使用情况

-B 报告附加的缓存的使用情况

-b 报告缓存的使用情况

-c 报告系统调用的使用情况

-d 报告磁盘的使用情况

-g 报告串口的使用情况

-h 报告关于buffer使用的统计数据

-m 报告IPC消息队列和信号量的使用情况

-n 报告命名cache的使用情况

-p 报告调页活动的使用情况

-q 报告运行队列和交换队列的平均长度

-R 报告进程的活动情况

-r 报告没有使用的内存页面和硬盘块

-u 报告CPU的利用率

-v 报告进程、i节点、文件和锁表状态

-w 报告系统交换活动状况

-y 报告TTY设备活动状况

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

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

相关文章

错过校招_我们在用户测试中容易错过的事情

错过校招What makes a tool well designed? As a designer, I’ve thought about this question for a long time, and over the past few years I’ve developed a system that I now use with every new project I approach, from small startups to large companies like L…

这些 JS 中强大的操作符,总有几个你没听说过

大家好,我是若川。今天推荐一篇相对简单些的文章。大家应该都知道了我最近组织了源码共读活动, 有小伙伴表示读源码上瘾,也很有收获。工作0-5年都可以参与。感兴趣可以加我微信 ruochuan12 私信 源码 进群。1. 数值分割符 _2. 逗号运算符 ,3.…

es6冲刺01

1、let/const 1)作用域:es5中有全局作用域、函数作用域。es6中新增了块级作用域 2)let定义的变量在所在块级作用域外失效,严格模式下失效后直接报错, 且不允许重复声明同名变量 3)const用于声明常量,声明时必须赋值&am…

linux网卡固件名,修改CentOS7网卡名称为传统名称eth0格式

使用CentOS7以前系统的小伙伴装完CentOS7以后发现了一个问题,那就是网卡名改变为了“en016777736”,而不是以前的eth0的简易模式了,如图:以往的CentOS7以前的系统网卡命名虽然简单方便,但也会带来一些问题,…

Baymard Institute:基于UX的最佳实践的光荣的,循证的工具

重点 (Top highlight)I realized I wanted to write this piece when I mentioned the Baymard Institute to a User Researcher with 10 years of experience and they had no idea what I was talking about. They aren’t alone! I’ve gotten plenty of raised eyebrows on…

Vue 3.2 发布了,那尤雨溪是怎么发布 Vue.js 的?

1. 前言大家好,我是若川。最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12,长期交流学习。之前写的《学习源码整体架构系列》 包含jQuery、underscore、lodash、vuex、sentry、axios、redux、koa、vue-devtools、vuex4十篇源码文章。…

wireshark使用教程 linux,Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕...

Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。与很多其他网络工具一样,Wireshark也使用pcap net…

IronPython和C#执行速度对比

其实我自己对执行速度这个问题本来并没有什么兴趣,因为以前的经验告诉我:除非是运算密集型的程序,否则脚本语言和编译型语言使用起来速度没有多大差别。但是我们公司有个人知道我的想法以后,天天在我耳边嚷嚷脚本运行速度太慢&…

基于超级账本Fabric的供应链跟踪解决方案【开源】

2019独角兽企业重金招聘Python工程师标准>>> 本项目为基于Hyperledger Fabric区块链的供应链资产跟踪解决方案,项目主要包括链码和Web应用两部分。Fabric链码采用GOLANG开发,负责维护资产的状态,后台为采用Node.js开发的Web应用&a…

同理心案例及故事分享_神经形态,视觉可及性和同理心

同理心案例及故事分享“A good UX designer has empathy”.“优秀的UX设计人员具有同理心”。 This is something every UX designer has heard at some point in their career. Empathy helps us get into the mindset of the user and build solutions that solve real probl…

纯CSS实现beautiful按钮

大家好,我是若川。邀你进源码共读群学习交流。今天分享一篇好文。可收藏~近期工作中遇到一个需求——实现一些酷炫的按钮,看到效果图之后,按钮确实漂亮,有弹跳、颜色渐变、扫光、霓虹灯,瞬间激起了我的好奇…

linux的内核有多小,Linux 内核有小bug?

今天读着读着Linux代码,竟然无意中发现Linux 0.11内核有个小bug,呵呵,人非圣贤孰能无过。// 在目录项数据块中搜索匹配指定文件名的目录项,首先让de 指向数据块,并在不超过目录中目录项数// 的条件下,循环执…

菜单窗口_菜单

菜单窗口The Hamburger Menu widget is on every other site nowadays. It has become synonymous with the web and, perhaps even more so, with web development. Have, for instance, a look at Dribbble or Codepen. There you’ll find a fair share of examples. They c…

怎么在PDF上修改文字,PDF修改文字的步骤

怎么在PDF文件上修改文字呢?其实现在的很多的PDF文件上会出现文字错误的情况,想要修改PDF文件上面的文字却不知道怎么修改,想要修改PDF文件还是比较简单的,使用专业的PDF编辑器就可以进行操作了,下面小编就为大家分享一…

读完 Vue 发布源码,小姐姐回答了 leader 的提问,并优化了项目发布流程~

大家好,我是若川。这是 源码共读 第三期活动,纪年小姐姐的第三次投稿。纪年小姐姐学习完优化了自己的项目发布流程,而且回答了leader对她的提问,来看看她的思考和实践。第三期是 Vue 3.2 发布了,那尤雨溪是怎么发布 Vu…

小程序 富文本自适应屏幕_自适应文本:跨屏幕尺寸构建可读文本

小程序 富文本自适应屏幕Many of you may already know about responsive web design. Cited from Wikipedia, responsive web design (RWD) is an approach to web design that makes web pages render well on a variety of devices and windows or screen sizes. The respon…

Vue、React 之间如何实现代码移植?

大家好,我是若川。面对前端最火的两个框架,学 React 还是 Vue ?这可能是每个前端人都曾纠结过的问题。不过,现在你不用纠结了——因为很多公司都是两个框架都有大量的应用,取决于不同团队的技术选型,特别是…

linux mariadb 乱码,配置mariadb远程访问权限,解决数据库乱码问题

配置mariadb远程访问权限:1)登录数据库:# mysql -uroot -p2)配置授权数据库用户远程访问权限,%表示所有远程IP,也可以指定IP。WITH GRANT OPTION表示mysql数据库的grant表中重新加载权限数据:GRANT ALL PRIVILEGES ON *.* TO 用户…

平面设计师和ui设计师_游戏设计师的平面设计

平面设计师和ui设计师Design is a very ancient practice, but graphic design really found its core principles post World War One. Games are also very ancient but video games are still finding their feet. I think graphic design has a few things to teach people…

java合成海报的工具类

2019独角兽企业重金招聘Python工程师标准>>> package io.renren.common.utils;import cn.hutool.core.lang.Console; import io.renren.modules.oss.cloud.OSSFactory;import javax.imageio.ImageIO; import javax.imageio.stream.ImageOutputStream; import java.a…