当前位置: 首页 > 编程日记 > 正文

linux常用运维工具uptime、iostat、vmstat、sar

目录

一、uptime

二、iostat

三、vmstat

四、sar


一、uptime

uptime可以告诉你系统已经运行了多久。uptime命令回显一行信息,包括:系统运行了多久,目前有多少用户在登录,过去1、5、15分钟系统平均负载。这些内容和命令w回显的第一行完全一样。
系统平均负载指的是,过去一段时间内(1、5、15分钟)处于runnable或uninterruptable状态的进程数的平均值。处于runnable状态的进程正在使用或等待使用CPU。处于uninterruptable状态的进程等待IO。
系统中的平均负载没有对CPU数量进行标准化。因此在1个CPU系统中,平均负载为1意味着CPU一直在加载。而在4个CPU的系统中,这意味着75%的时间是空闲的。

w15:55:07 up 1 day, 20:44,  1 user,  load average: 0.42, 0.42, 0.39
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.250.7    15:50    3.00s  1:14m  0.01s wuptime15:55:10 up 1 day, 20:44,  1 user,  load average: 0.42, 0.42, 0.39

二、iostat

iostat命令生成两个报告:CPU利用率报告、设备利用率报告

iostat
Linux 3.10.0-1160.15.2.el7.x86_64 (ibjvm-010)   04/08/2021      _x86_64_        (8 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle3.30    0.00    1.69    0.16    0.00   94.85Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.66         3.64         5.53     591832     899572
sdc               0.13         0.14        56.55      22339    9197761
sdb               6.29         4.57        64.14     742890   10432067
scd0              0.47        56.13         0.00    9128646          0
dm-0              0.67         3.56         5.52     579368     897484
dm-1              0.00         0.01         0.00       2204          0
dm-2              6.70         4.56        64.14     741854   10432067

CPU利用率报告,可以用iostat -c单独显示。对于多进程系统,CPU利用率是全局所有CPU的平均值。报告分为6列。

  • %user:用户级(应用)的CPU使用百分比
  • %nice:带有nice优先级的 用户级(应用)的CPU使用百分比
  • %system:系统级(内核)的CPU使用百分比
  • %iowait:系统发生磁盘I/O操作时,CPU空闲时间的百分比
  • %steal:当虚拟层为一个虚拟处理器提供服务时,虚拟CPU或CPU被迫花费的等待时间的百分比
  • %idle:系统没有发生磁盘I/O操作时,CPU空闲时间的百分比

设备利用率报告,可以用iostat -d单独显示。
该报告以物理设备或分区为基础提供统计信息。
可以在命令行中输入要显示统计信息的块设备和分区。
如果没有输入设备或分区,则显示系统所使用的每个设备的统计信息,并提供内核维护这些设备的统计信息。
如果命令行中给出了ALL关键字,那么就显示系统定义的每个设备的统计数据,包括那些从未使用过的设备。
默认情况下,传输速率以1K块的形式显示。如果设置了环境变量POSIXLY_CORRECT,在这种情况下使用512字节的块。
根据使用的标志,报告显示不同字段,介绍默认的几个,其他man iostat:

  • Device:设备名称
  • tps:每秒发送到该设备的传输数,一次传输指的是向该设备的一次I/O请求。多次逻辑上的请求会合并成一次I/O请求,因此每次I/O请求的传输规模不确定
  • Blk_read/s (kB_read/s, MB_read/s):该设备读取的数据量,以每秒的块数(千字节、兆字节)表示。块相当于扇区,因此其大小为512字节。
  • Blk_wrtn/s (kB_wrtn/s, MB_wrtn/s):该设备写入的数据量,单位为块数(千字节、兆字节)。
  • Blk_read (kB_read, MB_read):该设备,读取的块总数(千字节、兆字节)。
  • Blk_wrtn (kB_wrtn, MB_wrtn):该设备,写入的块的总数(千字节、兆字节)。

三、vmstat

报告虚拟内存统计信息。回显内容很多,具体怎么参考使用需要经验积累。一般swap不应使用,内存不应使用率过高。cpu等待I/O不应太多,空闲太少说明cpu太忙。

vmstat -w
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------r  b         swpd         free         buff        cache   si   so    bi    bo   in   cs  us  sy  id  wa  st2  0            0      2485064         2224      1613348    0    0     8    16   31   20   3   2  95   0   0vmstat -wa
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------r  b         swpd         free        inact       active   si   so    bi    bo   in   cs  us  sy  id  wa  st2  0            0      2484884       935644      3949916    0    0     8    16   31   20   3   2  95   0   0

回显分为多个区域,逐个说明或man vmstat
procs

  • r,处于runnable状态的进程数
  • b,等待I/O结束的进程数

memory

  • swpd,使用的虚拟内存量
  • free,空闲的内存量
  • buff,缓冲区
  • cache,高速缓存
  • inact,不活动的内存(-a显示)
  • active,活动的内存(-a显示)

swap

  • si,每秒从swap分区读入内存的数据量
  • so,每秒从内存写入swap分区的数据量

io

  • bi,每秒从块设备接收数据块数
  • bo,每秒向块设备发送数据块数

system

  • in,每秒中断数,包括时钟
  • cs,每秒上下文切换数

cpu,这一部分参考iostat,几乎可以一一对应

  • us,用户时间(应用,包括nice级别的)
  • sy,系统时间(内核)
  • id,非等待I/O的空闲时间
  • wa,等待I/O的空闲时间
  • st,虚拟机层面损耗的时间

四、sar

sar收集、报告、保存系统活动信息(system activity information),相当于每10分钟统计一次iostat -c,可以看到一段时间内CPU使用率的变化情况,内容也和iostat -c回显列一样。

sarLinux 3.10.0-1160.15.2.el7.x86_64 (ibjvm-010)   04/08/2021      _x86_64_        (8 CPU)12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM     all      3.25      0.00      1.64      0.11      0.00     95.00
12:20:01 AM     all      3.30      0.00      1.70      0.12      0.00     94.88
12:30:01 AM     all      3.30      0.00      1.68      0.11      0.00     94.91
12:40:01 AM     all      3.33      0.00      1.70      0.12      0.00     94.85
......

相关文章:

《人类简史》八、融合统一(下)——宗教的法则、历史的混沌

在前面,我们说了金钱和帝国,今天我们聊一聊宗教。宗教的话题算是比较敏感的,必定很多人是拥有自己的宗教信仰的,如果在下面的论述过程之中,让您觉得有什么不妥的地方,还希望能够理解。我并没有贬低或者蔑视…

Set集合常用方法 遍历Set集合的方法

Set接口继承Collection接口,它与List集合有一个区别就是:List集合可以保存重复的数据,而Set集合不可以。Set接口有三个常用实现类: HashSet,特点: 它不按照存储的顺序保存,具有不确定性&#…

ubuntu下使用conda出现solving environment失败

更换anaconda的源(注意是anaconda的源,不是ubuntu的源) sudo gedit ./.condarc在出现的空文档中写入 channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free- htt…

centos8编译openssl-1.0.2u、openssl-1.1.1k

目录 一、给openssl-1.0.2u打包rpm 二、编译安装openssl-1.1.1k 三、给openssl-1.1.1k打包rpm(不推荐!) 近日openssl爆出拒绝服务、证书绕过漏洞,CVE编号CVE-2021-3449、CVE-2021-3450。 解决方法: CentOS7默认ope…

jquery 1.7.2源码解析(二)构造jquery对象

构造jquery对象 jQuery对象是一个类数组对象。 一)构造函数jQuery() 构造函数的7种用法: 1.jQuery(selector [, context ]) 传入字符串参数:检查该字符串是选择器表达式还是HTML代码。如果是选择器表达式,则遍历文档查找匹配的DOM元素&#x…

Map接口及其常用方法

Map集合基于键(key)和值(value)的映射,每个键只能映射一个值,也就是说key不可以重复(当然喽,重复的话就按最后一个为准)。键和值都可以是任何引用数据类型的值;且一对键值的存放是无序的。 Map常用的实现类…

C++计时函数

推荐使用chrono计时函数 #include<iostream> #include<vector> #include<algorithm> #include<chrono> using namespace std; class mycom { public:bool operator()(pair<int,int> p1,pair<int,int> p2){return p1.first < p2.first;…

最长递增子序列的两种解法

以LeetCode-300为例&#xff1a; O(n^2)解法&#xff1a; dp数组表示以i结尾的最长递增子序列的长度 class Solution { public:int lengthOfLIS(vector<int>& nums) {const int size nums.size();if (size 0) { return 0; } vector<int> dp(size, 1);int res…

【救援过程】升级openssl导致libcrypto.so.1.1动态库不可用

目录 一、故障重现 二、救援过程 一、故障重现 近日为了解决CVE-2021-3449: 拒绝服务漏洞、CVE-2021-3450: 证书校验漏洞&#xff0c;自己编译了openssl-1.1.1k。 亲测发现&#xff1a;只升级openssl的版本&#xff0c;动态库版本没有升级&#xff0c;系统可用。 升级openss…

C++类class

一、定义 构造函数&#xff1a;在定义一个类对象时会自动调用&#xff0c;可用于实现一些功能&#xff0c;比如new一个内存。 构造函数&#xff0c;没有返回值也不写void函数名称与类名相同构造函数可以有参数&#xff0c;因此可以发生重载程序在调用对象时候会自动调用构造&…

pandas学习之Series结构

#!/usr/bin/env python # -*- coding:utf-8 -*- """ 系列&#xff08;值的集合&#xff09; DataFrame数据包&#xff08;系列对象的集合&#xff09; panel&#xff08;数据文件对象的集合) 一个系列对象可以保存许多数据类型&#xff0c;包括 浮点数表示浮点数…

Java中的Map集合遍历总结(详尽版)

因为Map集合中的键值对排列无序&#xff0c;所以不能用传统的for循环来遍历&#xff0c;只能使用加强循环(for-each)和迭代器进行遍历。 让我们通过例子来了解Map集合的遍历&#xff1a; package gather; import java.util.HashMap; import java.util.Iterator; import java.…

Ansible01-Ansible基础和部署

目录 一、Ansible简介 二、安装部署Ansible 2.1、在控制节点安装ansible 2.2、对Linux和Unix受管节点要求 2.3、基于 Microsoft Windows 的受管主机 2.4、受管网络设备 三、Ansible配置文件 3.1、ansible.cfg配置文件推荐做法 3.2、ansible.cfg配置文件内容 四、Ansi…

C++/C文件读取

1、C文件操作 ofstream&#xff1a;写操作ifstream&#xff1a; 读操作fstream &#xff1a; 读写操作 打开方式解释ios::in为读文件而打开文件ios::out为写文件而打开文件ios::ate初始位置&#xff1a;文件尾ios::app追加方式写文件ios::trunc如果文件存在先删除&#xff0c…

HashSet中的add()方法( 二 )(详尽版)

本篇接着上一篇&#xff1a;&#xff08;详尽版&#xff09;HashSet中的add()方法( 一 )&#xff08;详尽版&#xff09; 有些东西上一篇说过了&#xff0c;这里就不再赘述了&#xff0c;具体说一下再次添加与第一次添加的区别&#xff1a; import java.util.HashSet;public …

20155321 实验四 Android程序设计

20155321 实验四 Android程序设计 安装Android studio成功 任务一&#xff1a;Android Stuidio的安装测试&#xff1a; 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章&#xff1a; 安装 Android Stuidio完成Hello World, 要求修改res目录…

Ansible02-实施playbook

一、编写和运行playbook 1.1、编写playbook play 是针对清单中选定的主机运行的一组有序任务。playbook 是一个文本文件&#xff0c;其中包含由一个或多个按特定顺序运行的 play 组成的列表。 playbook 是以 YAML 格式编写的文本文件&#xff0c;通常使用扩展名 .yml 保存。…

linux下解压缩文件中文乱码问题的解决

在windows上压缩的文件&#xff0c;是以系统默认编码中文来压缩文件。由于zip文件中没有声明其编码&#xff0c;所以linux上的unzip一般以默认编码解压&#xff0c;中文文件名会出现乱码。 虽然2005年就有人把这报告为bug, 但是info-zip的官方网站没有把自动识别编码列入计划&a…

ROS知识点总结

1、ROS功能包的目录下不能有中文 2、 WorkSpace --- 自定义的工作空间|--- build:编译空间&#xff0c;用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。|--- devel:开发空间&#xff0c;用于存放编译后生成的目标文件&#xff0c;包括头文件、动态&静态链接库…

Effective Java:对于全部对象都通用的方法

前言&#xff1a; 读这本书第1条规则的时候就感觉到这是一本非常好的书。可以把我们的Java功底提升一个档次&#xff0c;我还是比較推荐的。这里我主要就关于覆盖equals、hashCode和toString方法来做一个笔记总结。希望可以与君共勉。 概述&#xff1a; 这一章主要是说明一些对…

HashSet中的add()方法( 一 )(详尽版)

让我们用例子来理解add()方法的底层代码吧&#xff0c;Let’s go&#xff1a; import java.util.HashSet;public class Test {public static void main(String[] args) {HashSet<String> names new HashSet<String>();names.add("Jim");//向HashMap集合…

Ansible03-管理变量、加密、事实

目录 一、管理变量 1.1、变量的基本用法 1.2、使用已注册变量捕获命令输出 二、管理加密 2.1、ansible-vault常用场景 三、管理事实 3.1、事实基本用法 3.2、创建自定义事实 3.3、魔法变量hostvars、group_names、groups、inventory_hostname 一、管理变量 1.1、变量…

HashSet中的add()方法( 零 )(详尽版)

我们知道在使用HashSet集合时&#xff0c;也就是在用HashMap集合&#xff0c;这是因为HashSet的底层是HashMap&#xff0c; public HashSet() {map new HashMap<>(); }在详述HashSet中的add()方法之前&#xff0c;我们要知道HashMap中的hash&#xff0c;因为在add()的底…

layui上传图片接口

mvc中 前台调用接口 url&#xff1a;"../upload/uploadfiles/" 然后开始接口 代码&#xff1a; string a ""; try { HttpFileCollection file context.Request.Files;//获取选中的文件 for (int i 0; i < file.Count; i) { string cFileName Path.G…

shell与 .sh文件与 .bash文件

一、shell和bash shell是LInux系统下的解释器&#xff0c;类似于windows下的cmd。shell对用户输入到窗口中的命令行进行解释&#xff0c;输入到内核。 bash同样是Linux系统下的解释器&#xff0c;是bash的改进版。 二、.sh文件与.bash文件 .sh文件和.bash文件都是脚本文件&a…

php session存入redis

一、 安装phpredis扩展php连接redis需要安装phpredis扩展。下载地址&#xff1a;https://github.com/phpredis/phpredis/releases&#xff0c;选用相应版本。笔者用的是php5.6.29&#xff0c;下载了phpredis-3.0.0安装出了问题&#xff0c;于是换成phpredis-2.2.8&#xff0c;正…

Ansible04-任务控制

目录 一、循环 二、条件 三、handlers 四、失败的处理 一、循环 使用 loop 关键字对一组项目迭代任务&#xff0c;循环变量 item 保存每个迭代过程中使用的值。 [studentworkstation ansible]$ vim loop.yml --- - name: Test loophosts: devgather_facts: novars:num:- …

HashSet中的add()方法( 三 )(详尽版)

上接HashSet中的add()方法( 二 )&#xff08;详尽版&#xff09; &#xff0c;前两篇说的是泛型为String类的add()方法的具体执行过程&#xff0c;此后三篇说说泛型为自定义类的add()方法的具体执行过程&#xff1a; 首先让我们来自定义一个学生类&#xff1a; public class …

mono修改配置

当前mono安装目录为:/home/mono&#xff0c;安装成功后修改配置需进入这个路径&#xff1a; cd /home/mono 1.修改TcpBinaryFrameManager.cs文件 cd /home/mono/mono-2.10.8 vim mcs/class/System.ServiceModel/System.ServiceModel.Channels.NetTcp/TcpBinaryFrameManager.cs …

[Java in NetBeans] Lesson 01. Java Programming Basics

这个课程的参考视频在youtube。 主要学到的知识点有&#xff1a; Create new project, choose Java Application.one .jar file/ package(.jar name with the same as package), one package can contains mutiple .java files.Comment mutiple lines by using "/* */&quo…