[toc]
1、vmstat命令
vmstat
命令是一个监控(查看)系统资源的命令。
[root@localhost ~]# vmstat [刷新延时 刷新次数]
示例:
# 使用vmstat检测,每1秒刷新一次,共刷新3次[root@localhost ~]# vmstat 1 3procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st0 0 0 1662400 37112 66828 0 0 319 19 172 115 2 5 90 3 00 0 0 1662400 37112 66848 0 0 0 0 74 43 0 0 100 0 00 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 CPUSMP: Allowing 128 CPUs, 126 hotplug CPUsNR_CPUS:4096 nr_cpumask_bits:128 nr_cpu_ids:128 nr_node_ids:1PERCPU: Embedded 31 pages/cpu @ffff88000c400000 s96600 r8192 d22184 u131072CPU: Physical Processor ID: 0CPU: Processor Core ID: 0mce: CPU supports 0 MCE banksCPU0: Intel(R) Core(TM) i3-4160 CPU @ 3.60GHz stepping 03CPUID marked event: \'cpu cycles\' unavailableCPUID marked event: \'instructions\' unavailableCPUID marked event: \'bus cycles\' unavailableCPUID marked event: \'cache references\' unavailableCPUID marked event: \'cache misses\' unavailableCPUID marked event: \'branch instructions\' unavailableCPUID marked event: \'branch misses\' unavailablemce: CPU supports 0 MCE banksBrought up 2 CPUsmicrocode: CPU0 sig=0x306c3, pf=0x1, revision=0x25microcode: CPU1 sig=0x306c3, pf=0x1, revision=0x25# 3.查询第一块网卡信息[root@localhost ~]# dmesg | grep eth0e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:36:1e:4ee1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connectione1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Noneeth0: 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 -htotal used free shared buffers cachedMem: 1.8G 240M 1.6G 236K 36M 65M-/+ buffers/cache: 138M 1.7GSwap: 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 : 3microcode : 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 ~]# w08:09:36 up 1:55, 3 users, load average: 0.33, 0.19, 0.22USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot tty1 - 08:09 8.00s 0.06s 0.06s -bashroot pts/0 192.168.134.1 06:16 1:17m 0.11s 0.11s -bashroot 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:09root 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 ~]# uptime08: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 -aLinux 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 -r2.6.32-642.el6.x86_64# 一般不怎么用到[root@localhost ~]# uname -sLinux
如果我们想要判断当前系统的位数,可以通过
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 -aLSB 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-noarchDistributor ID: CentOSDescription: CentOS release 6.8 (Final)Release: 6.8Codename: Final