天天看点

『学了就忘』Linux系统管理 — 86、查看系统资源相关命令

目录

1、vmstat命令

2、dmesg命令

3、free命令

4、查看CPU信息

5、查看本机登陆用户信息

(1)w命令

(2)who命令

6、uptime命令

7、查看系统与内核相关信息

<code>vmstat</code>命令是一个监控(查看)系统资源的命令。

示例:

提示: 因为我们这是Linux虚拟机,<code>vmstat</code>命令的输出项中很多数据都是0,真实环境的生产服务器并不是这样的。

输出项说明:

<code>procs</code>:进程信息字段。

输出项

说明

<code>r</code>

等待运行的进程数,数量越大,系统越繁忙。

<code>b</code>

不可被唤醒的进程数量,数量越大,系统越繁忙。

<code>memory</code>:内存信息字段。

<code>swpd</code>

虚拟内存的使用情况,单位KB。

<code>free</code>

空闲的内存容量,单位KB。

<code>buff</code>

缓冲的内存容量,单位KB。(加速数据的写入)

<code>cache</code>

缓存的内存容量,单位KB。(加速数据的读取)

<code>swap</code>:交换分区的信息字段。

<code>si</code>

从磁盘中交换到内存中数据的数量,单位KB。

<code>so</code>

从内存中交换到磁盘中数据的数量,单位KB。

此两个数越大,证明数据需要经常在磁盘和内存之间交换,系统性能越差。

<code>io</code>:磁盘读写信息段。

<code>bi</code>

从块设备读入数据的总量,单位是块。

<code>bo</code>

写到块设备的数据的总量,单位是块。

此两个数越大,代表系统的I/0越繁忙。

<code>system</code>:系统信息字段。

<code>in</code>

每秒被中断的进程次数。

<code>cs</code>

每秒钟进行的事件切换次数。

此两个数越大,代表系统与接口设备的通信非常繁忙。

CPU:CPU信息字段。

这里的信息和<code>top</code>命令中看到的信息类似。

<code>us</code>

非内核进程消耗CPU运算时间的百分比。

<code>sy</code>

内核进程消耗CPU运算时间的百分比。

<code>id</code>

空闲CPU的百分比。

<code>wa</code>

等待I/0所消耗的CPU百分比。

<code>st</code>

被虚拟机所盗用的CPU占比。

<code>dmesg</code>显示开机时内核检测信息。

在Linux系统开机的时候,Linux内核会有一些自检信息,这些信息可以通过<code>dmesg</code>命令重复的调用。

<code>free</code>命令查看Linux系统的内存使用状态。

输出项解释:

第一行:

<code>total</code>是总内存数。

<code>used</code>是已经使用的内存数。

<code>free</code>是空闲的内存数。

<code>shared</code>是多个进程共享的内存总数。

<code>buffers</code>是缓冲内存数,默认单位是KB(加速数据的写入)。

<code>cached</code>是缓存内存数,默认单位是KB(加速数据的读取)。

第二行:

<code>-/+ buffers/cache: 138M 1.7G</code>,其中138M是<code>- /buffers/cache</code>,1.78GB是<code>+ /buffers/cache</code>。

<code>- /buffers/cache</code>的内存数,相当于第一行的<code>used - buffers - cached</code>。

也就是说系统运行占用了240M的内容,但是<code>buffers</code>和<code>cached</code>两个缓存占用的空间是36M和65M。

而<code>buffers</code>和<code>cached</code>两个缓存是能被使用的,所以不应该算入系统占用内存中,所以计算机内存实际占用的数值为,内存占用总数减去两个缓存数,就是被系统实际占用的内存数。

<code>+ /buffers/cache</code>的内存数,相当于第一行的<code>free + buffers + cached</code>。

和上面同理,系统实际的空闲内存空间为,空闲空间free加上两个缓存空间的数值,就是系统实际空闲空间的内存数。

第三行:

<code>total</code>是swap的总数。

<code>used</code>是已经使用的swap数。

<code>free</code>是空闲的swap数。

以上数值默认单位是KB。

说明: Swap(临时内存空间)在当前虚拟机中,因为访问量人数是极少的,在这种情况下,Swap都不会被占用,因为内存消耗很小。 但是在实际的生成环境中,Swap是非常重要的,可以给服务器性能的提升带来很大的帮助。

CPU的主要信息保存在<code>/proc/cpuinfo</code>这个文件当中,我们只要查看这个文件,就可以知道CPU的相关信息。

命令如下:

拓展:

在<code>proc</code>目录中其实是有一组可以查看硬件信息的文件。

如下图所示:

『学了就忘』Linux系统管理 — 86、查看系统资源相关命令

如我们上边练习查看的CPU相关信息在<code>cpuinfo</code>文件中,

如果你需要查看系统中内存的信息,在<code>meminfo</code>文件中查看,

以后你想要查看相关硬件信息,都可以来<code>proc</code>目录中查看。

如果我们想要知道Linux服务器上目前已经登录的用户信息,可以使用<code>w</code>或<code>who</code>命令来进行查询。

<code>w</code>命令格式如下:

<code>w</code>命令输出项说明:

第一行

其实和<code>top</code>命令的第一行非常类似,主要显示了:

<code>08:09:36</code>:系统当前时间。

<code>up 1:55</code>:开机多久(up)。

<code>3 users</code>:有多少用户登陆(users)。

<code>load average: 0.33, 0.19, 0.22</code>:1分钟、5分钟、15分钟前的平均负载(load average)。

第二行

是项目的说明:

<code>USER</code>:登陆的用户名。

<code>TTY</code>:登陆终端。

<code>FROM</code>:从哪个IP地址登陆。

<code>LOGIN@</code>:登陆时间。

<code>IDLE</code>:用户闲置时间。

<code>JCPU</code>:指的是和该终端连接的所有进程占用的CPU运算时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间。

<code>PCPU</code>:是指当前进程所占用的CPU运算时间。

<code>WHAT</code>:当前正在运行的命令。

第三行开始每行代表一个用户。

<code>who</code>命令比<code>w</code>命令稍微简单一点,也可以用来查看系统中已经登录的用户。

<code>who</code>命令格式如下:

<code>uptime</code>命令的作用就是显示系统的启动时间和平均负载,也就是<code>top</code>命令的第一行。

其实<code>w</code>命令也能看到这一行的数据,具体原意使用哪个命令看个人习惯。

命令格式如下:

<code>top</code>命令其实是很耗资源的,如果我只想看其中一部分信息的时候,就比如说<code>top</code>命令的第一行信息,我们就可以使用<code>w</code>命令或者<code>uptime</code>命令代替。

我们使用<code>uname</code>命令查看内核的相关信息,

如果我们想要判断当前系统的位数,可以通过<code>file</code>命令来判断系统文件(主要是系统命令)的位数,来推断系统的位数。

如果我们想要查询当前Linux系统的发行版本,可以使用<code>lsb_release -a</code>命令查看。