『学了就忘』Linux系统管理 — 86、查看系统资源相关命令
1、vmstat命令
vmstat命令是一个监控(查看)系统资源的命令。
[root@localhost ~]# vmstat [刷新延时 刷新次数]
示例:
# 使用vmstat检测,每1秒刷新一次,共刷新3次
[root@localhost ~]# vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 1662400 37112 66828 0 0 319 19 172 115 2 5 90 3 0
0 0 0 1662400 37112 66848 0 0 0 0 74 43 0 0 100 0 0
0 0 0 1662400 37112 66848 0 0 0 0 50 40 0 0 100 0 0
提示:
因为我们这是Linux虚拟机,
vmstat命令的输出项中很多数据都是0,真实环境的生产服务器并不是这样的。
输出项说明:
procs:进程信息字段。输出项 说明 r等待运行的进程数,数量越大,系统越繁忙。 b不可被唤醒的进程数量,数量越大,系统越繁忙。 memory:内存信息字段。
输出项 说明 swpd虚拟内存的使用情况,单位KB。 free空闲的内存容量,单位KB。 buff缓冲的内存容量,单位KB。(加速数据的写入) cache缓存的内存容量,单位KB。(加速数据的读取) swap:交换分区的信息字段。
输出项 说明 si从磁盘中交换到内存中数据的数量,单位KB。 so从内存中交换到磁盘中数据的数量,单位KB。 此两个数越大,证明数据需要经常在磁盘和内存之间交换,系统性能越差。
io:磁盘读写信息段。
输出项 说明 bi从块设备读入数据的总量,单位是块。 bo写到块设备的数据的总量,单位是块。 此两个数越大,代表系统的I/0越繁忙。
system:系统信息字段。
输出项 说明 in每秒被中断的进程次数。 cs每秒钟进行的事件切换次数。 此两个数越大,代表系统与接口设备的通信非常繁忙。
- CPU:CPU信息字段。
这里的信息和top命令中看到的信息类似。输出项 说明 us非内核进程消耗CPU运算时间的百分比。 sy内核进程消耗CPU运算时间的百分比。 id空闲CPU的百分比。 wa等待I/0所消耗的CPU百分比。 st被虚拟机所盗用的CPU占比。
2、dmesg命令
dmesg显示开机时内核检测信息。
在Linux系统开机的时候,Linux内核会有一些自检信息,这些信息可以通过dmesg命令重复的调用。
# 1.查看Linux系统开机时内核检测信息
# 信息会很多,所以我们大多数时候都要过滤有效数据。
[root@localhost ~]# dmesg
# 2.查看CPU信息
[root@localhost ~]# dmesg | grep CPU
SMP: Allowing 128 CPUs, 126 hotplug CPUs
NR_CPUS:4096 nr_cpumask_bits:128 nr_cpu_ids:128 nr_node_ids:1
PERCPU: Embedded 31 pages/cpu @ffff88000c400000 s96600 r8192 d22184 u131072
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
mce: CPU supports 0 MCE banks
CPU0: Intel(R) Core(TM) i3-4160 CPU @ 3.60GHz stepping 03
CPUID marked event: 'cpu cycles' unavailable
CPUID marked event: 'instructions' unavailable
CPUID marked event: 'bus cycles' unavailable
CPUID marked event: 'cache references' unavailable
CPUID marked event: 'cache misses' unavailable
CPUID marked event: 'branch instructions' unavailable
CPUID marked event: 'branch misses' unavailable
mce: CPU supports 0 MCE banks
Brought up 2 CPUs
microcode: CPU0 sig=0x306c3, pf=0x1, revision=0x25
microcode: CPU1 sig=0x306c3, pf=0x1, revision=0x25
# 3.查询第一块网卡信息
[root@localhost ~]# dmesg | grep eth0
e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:36:1e:4e
e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
eth0: no IPv6 routers present
3、free命令
free命令查看Linux系统的内存使用状态。
[root@localhost ~]# free [-b | -k | -m | -g]
选项:
-h: 人性化显示
-b: 以字节为单位显示。
-k: 以KB为单位显示,默认就是以KB为单位显示。
-m: 以MB为单位显示。
-g: 以GB为单位显示。
示例:
[root@localhost ~]# free -h
total used free shared buffers cached
Mem: 1.8G 240M 1.6G 236K 36M 65M
-/+ buffers/cache: 138M 1.7G
Swap: 499M 0B 499M
输出项解释:
第一行:
total是总内存数。used是已经使用的内存数。free是空闲的内存数。shared是多个进程共享的内存总数。buffers是缓冲内存数,默认单位是KB(加速数据的写入)。cached是缓存内存数,默认单位是KB(加速数据的读取)。
第二行:
-/+ buffers/cache: 138M 1.7G,其中138M是- /buffers/cache,1.78GB是+ /buffers/cache。
- /buffers/cache的内存数,相当于第一行的used - buffers - cached。
也就是说系统运行占用了240M的内容,但是buffers和cached两个缓存占用的空间是36M和65M。
而buffers和cached两个缓存是能被使用的,所以不应该算入系统占用内存中,所以计算机内存实际占用的数值为,内存占用总数减去两个缓存数,就是被系统实际占用的内存数。+ /buffers/cache的内存数,相当于第一行的free + buffers + cached。
和上面同理,系统实际的空闲内存空间为,空闲空间free加上两个缓存空间的数值,就是系统实际空闲空间的内存数。
第三行:
total是swap的总数。used是已经使用的swap数。free是空闲的swap数。- 以上数值默认单位是KB。
说明:
Swap(临时内存空间)在当前虚拟机中,因为访问量人数是极少的,在这种情况下,Swap都不会被占用,因为内存消耗很小。
但是在实际的生成环境中,Swap是非常重要的,可以给服务器性能的提升带来很大的帮助。
4、查看CPU信息
CPU的主要信息保存在/proc/cpuinfo这个文件当中,我们只要查看这个文件,就可以知道CPU的相关信息。
命令如下:
[root@localhost ~]# cat /proc/cpuinfo
# 1.逻辑CPU编号
processor : 0
# 2.CPU制造厂商
vendor_id : GenuineIntel
# 3.产品的系列代号
cpu family : 6
# 4.CPU系列代号
model : 60
# 5.CPU系列的名字,编号,主频
model name : Intel(R) Core(TM) i3-4160 CPU @ 3.60GHz
# 6.更新版本
stepping : 3
microcode : 37
# 7.实际主频
cpu MHz : 3591.698
# 8.二级缓存
cache size : 3072 KB
# 9.单个CPU的标号
physical id : 0
# 10.单个CPU逻辑物理核数
siblings : 2
# 11.当前物理核在其所处CPU中的编号,这个编号不一定连续
core id : 0
# 12.该逻辑核所处CPU的物理核数
cpu cores : 2
...省略...
拓展:
在proc目录中其实是有一组可以查看硬件信息的文件。
如下图所示:

如我们上边练习查看的CPU相关信息在cpuinfo文件中,
如果你需要查看系统中内存的信息,在meminfo文件中查看,
以后你想要查看相关硬件信息,都可以来proc目录中查看。
5、查看本机登陆用户信息
如果我们想要知道Linux服务器上目前已经登录的用户信息,可以使用w或who命令来进行查询。
(1)w命令
w命令格式如下:
[root@localhost ~]# w
08:09:36 up 1:55, 3 users, load average: 0.33, 0.19, 0.22
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 08:09 8.00s 0.06s 0.06s -bash
root pts/0 192.168.134.1 06:16 1:17m 0.11s 0.11s -bash
root pts/1 192.168.134.1 07:31 0.00s 0.21s 0.08s w
w命令输出项说明:
- 第一行
其实和top命令的第一行非常类似,主要显示了:
08:09:36:系统当前时间。
up 1:55:开机多久(up)。
3 users:有多少用户登陆(users)。
load average: 0.33, 0.19, 0.22:1分钟、5分钟、15分钟前的平均负载(load average)。 - 第二行
是项目的说明:
USER:登陆的用户名。
TTY:登陆终端。
FROM:从哪个IP地址登陆。
LOGIN@:登陆时间。
IDLE:用户闲置时间。
JCPU:指的是和该终端连接的所有进程占用的CPU运算时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间。
PCPU:是指当前进程所占用的CPU运算时间。
WHAT:当前正在运行的命令。 - 第三行开始每行代表一个用户。
(2)who命令
who命令比w命令稍微简单一点,也可以用来查看系统中已经登录的用户。
who命令格式如下:
[root@localhost ~]# who
#用户名 登录终端 登录时间(登录来源IP地址)
root tty1 2020-07-05 08:09
root pts/0 2020-07-05 06:16 (192.168.134.1)
root pts/1 2020-07-05 07:31 (192.168.134.1)
6、uptime命令
uptime命令的作用就是显示系统的启动时间和平均负载,也就是top命令的第一行。
其实w命令也能看到这一行的数据,具体原意使用哪个命令看个人习惯。
命令格式如下:
[root@localhost ~]# uptime
08:22:27 up 2:07, 3 users, load average: 0.01, 0.03, 0.11
提示:
top命令其实是很耗资源的,如果我只想看其中一部分信息的时候,就比如说top命令的第一行信息,我们就可以使用w命令或者uptime命令代替。
7、查看系统与内核相关信息
我们使用uname命令查看内核的相关信息,
命令格式如下:
[root@localhost ~]# uname [选项]
选项:
-a: 查看系统所有相关信息。
-r: 查看内核版本。
-s: 查看内核名称。
示例:
# 信息很全,不好辨认
[root@localhost ~]# uname -a
Linux Lyl 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
# 常用
[root@localhost ~]# uname -r
2.6.32-642.el6.x86_64
# 一般不怎么用到
[root@localhost ~]# uname -s
Linux
如果我们想要判断当前系统的位数,可以通过file命令来判断系统文件(主要是系统命令)的位数,来推断系统的位数。
命令如下:
# 可以看到ELF 64-bit LSB executable, x86-64 说明是64位系统。
# 上边的uname -a命令,也是能看到系统位数的(x86_64)
[root@localhost ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
如果我们想要查询当前Linux系统的发行版本,可以使用lsb_release -a命令查看。
命令如下:
# 可以看到Description: CentOS release 6.8 (Final)
[root@localhost ~]# lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.8 (Final)
Release: 6.8
Codename: Final
『学了就忘』Linux系统管理 — 86、查看系统资源相关命令的更多相关文章
- 『学了就忘』Linux系统管理 — 81、进程管理介绍
目录 1.进程与线程的概念 2.什么是进程管理 3.进程管理的作用 4.Linux进程的几种状态 5.进程与线程的关系 (1)线程与进程的关系 (2)总结 1.进程与线程的概念 来源百度百科: 进程( ...
- 『学了就忘』Linux系统管理 — 82、Linux中进程的查看(ps命令)
目录 1.ps命令介绍 2.ps aux命令示例 3.ps -le命令示例 4.pstree命令 1.ps命令介绍 ps命令是用来静态显示系统中进程的命令. 不过这个命令有些特殊,它部分命令的选项前不 ...
- 『学了就忘』Linux系统管理 — 83、Linux中进程的查看(top命令)
目录 1.top命令介绍 2.top命令示例 3.top命令输出项解释 4.top命令常用的实例 1.top命令介绍 top命令是用来动态显示系统中进程的命令. [root@localhost ~]# ...
- 『学了就忘』Linux系统管理 — 84、Linux中进程的管理
目录 1.Linux系统中的信号 2.杀掉进程的命令 (1)kill命令 (2)killall命令 (3)pkill命令 1.Linux系统中的信号 Linux系统中可以识别的信号较多,我们可以使用命 ...
- 『学了就忘』Linux系统管理 — 85、工作管理相关命令
目录 1.工作管理简介 2.如何把命令放入后台 3.后台管理命令 (1)查看后台的工作 (2)将后台暂停的工作恢复到前台执行 (3)把后台暂停的工作恢复到后台执行 4.后台命令脱离登录终端运行 1.工 ...
- 『学了就忘』Linux软件包管理 — 46、yum命令详细介绍
目录 1.yum命令的查询操作 2.使用yum命令安装服务 3.使用yum命令升级服务 4.使用yum命令卸载服务 5.yum组管理命令 (1)查询可以安装的软件组 (2)查询软件组内包含的软件 (3 ...
- 『学了就忘』Linux基础 — 11、通过setup工具配置Linux系统IP地址
目录 1.setup命令介绍 2.使用setup命令配置IP (1)执行setup命令 (2)进入图形化配置界面 (3)选择配置IP还是DNS (4)选择要配置的网卡 (5)进入IP地址配置页面 (6 ...
- 『学了就忘』Linux基础命令 — 26、帮助命令
目录 1.man命令 (1)man命令的快捷键 (2)man命令的帮助级别(了解即可) (3)man命令的使用 2.info命令 3.help命令 4.--help选项 1.man命令 man是最常见 ...
- 『学了就忘』Linux权限管理 — 53、ACL权限详解
目录 1.什么是ACL权限 2.开启ACL 3.ACL权限的相关命令 (1)设定ACL权限 (2)查询文件的ACL权限 (3)设置文件ACL权限给用户组 (4)给文件夹和里边的文件同时赋予ACL权限 ...
随机推荐
- [hdu5245]Joyful
很难考虑矩形覆盖的问题,但可以考虑每一个点被覆盖的概率/期望(把矩形分成九部分后容斥即可),sigma起来即答案 1 #include<bits/stdc++.h> 2 using nam ...
- [bzoj1077]天平
先考虑如何求出任意两数的最大差值和最小差值,直接差分约束建图跑floyd求最短路和最长路即可然后枚举i和j,考虑dA+dB和di+dj的关系,分两种情况移项,转化成dA-di和dj-dB的关系或dA- ...
- 规格模式(Specification Pattern)
本文节选自<设计模式就该这样学> 1 规格模式的定义 规格模式(Specification Pattern)可以认为是组合模式的一种扩展.很多时候程序中的某些条件决定了业务逻辑,这些条件就 ...
- 如何删除一个win10的服务
使用场景: 之前电脑玩腾讯qq微端游戏,后来卸载残留服务一直在后台占用系统资源.那么如何关闭这个服务呢. 1.首先 管理员运行--cmd.exe 2.打开任务管理器,找到服务名称,如果服务开启可以关闭 ...
- [ Skill ] 图形化组件在注册 User Trigger 时需要注意的事情
https://www.cnblogs.com/yeungchie/ 使用 deRegUserTriggers 可以用来配置:当打开一个新窗口时,自动集成自定义的菜单.工具栏等等. 使用格式如下: d ...
- 【R】调整ggplot图例大小
图例太多时,会挤压正图,显得正图展示区域很小,这时有必要缩小图例. ################# # 减小ggplot图例 ################# library(ggplot2) ...
- 巩固javaweb第十一天
巩固内容: HTML <script> 元素 <script>标签用于加载脚本文件,如: JavaScript. <script> 元素在以后的章节中会详细描述. ...
- Rational Rose的安装及使用教程(包括菜单命令解释、操作向导说明、快捷命令说明)
一.安装教程 我安装时用的是镜像文件,所以安装前需要辅助软件来处理镜像文件.我用到的是UltraISO.UltraISO中文名叫软碟通 是一款功能强大而又方便实用的光盘映像文件的制作/编辑/转换工具, ...
- 疯了吧!这帮人居然用 Go 写“前端”?(二)
作者 | 郑嘉涛(羣青) 来源|尔达 Erda 公众号 前言 上篇我们讲了故事发生的背景,也简单阐述了组件及协议的设想: 一.丰富的通用组件库. 二.组件渲染能力,将业务组件渲染成通用组件 ...
- 虚拟机中安装centos系统的详细过程
linux-centos的安装 检查电脑是否开启虚拟化,只有开启虚拟化才能安装虚拟机 新建虚拟机 鼠标点进去,选中红框所示,回车 登录: 输入默认用户名(超级管理员 root) 密码:安装时设置的密码