命令查看Linux服务器内存、CPU、显卡、硬盘使用情况

命令查看Linux服务器内存、CPU、显卡、硬盘使用情况,第1张

大致结果类似下图:

Mem行(单位均为M):

(-/+ buffers/cache)行:

Swap行指交换分区。

实际上不要看free少就觉得内存不足了,buffers和cached都是可以在使用内存时拿来用的,应该以(-/+ buffers/cache)行的free和used来看。只要没发现swap的使用,就不用太担心,如果swap用了很多,那就要考虑增加物理内存了。

大致结果类似下图:

上方文字部分的红框为总的CPU占用百分率,下方的表格是每个进程的CPU占用率,在表格第一行可以看到红框中占用率超过了150%,这是因为服务器是多核CPU,而该进程使用了多核。

大致结果类似下图:

表格中会显示显卡的一些信息,第一行是版本信息,第二行是标题栏,第三行就是具体的显卡信息了,如果有多个显卡,会有多行,每一行的信息值对应标题栏对应位置的信息。

需要注意的一点是显存占用率和GPU占用率是两个不一样的东西,类似于内存和CPU,两个指标的占用率不一定是互相对应的。

在下面就是每个进程使用的GPU情况了。

大致结果如下图:

表格中每一行代表一个文件系统,各列意义如下:

要查看具体某个文件或者文件夹的大小的话,可以使用下面的命令:

du命令可以查看文件或文件夹的磁盘使用空间,而-h参数的意思是使用GB、MB等易读的格式。如果不带--max-depth参数,那么将循环列出文件夹下所有文件和文件夹占用的空间,带此参数,则是指定深入目录的层数。

如果要看文件夹下所有文件的大小,可以使用*:

查看作者首页

先来在阿里的ECS上top一下感受内存爆满的感觉,终端输入 top

结合 *** 作系统,计组等课程,以及多年以来windows培养给我的直觉,认为0.96G(1016272K)的总内存,使用了0.84G(880960K)的内存,使用率高达88%。然而我还啥都没干,怎么会这样呢?

仔细查看还会发现后面有一个buffers,Swap后面还有一个Cached Mem。

现在我们用free来观察下

虽然Mem显示了0.9G左右的used,但是-/+buffers/cache(减去buffers和cache的结果)可以看到,当前进程实际占用内存是0.24G(256348K),而可用空闲(free)内存为0.72G(759924K)。

可以这么理解:在linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。

如上面的例子:共1G的内存,0.9G被占用,但是buffer和cached

mem部分作为缓存,可以使用命中率的方式提高使用效率,而且这部分缓存是根据指令随时可以释放的,我们可以认为这部分内存没有实际被使用,也可以认为它是空闲的。

因此查看目前进程正在实际被使用的内存,是used-(buffers+cache),也可以认为如果swap没有大量使用,mem还是够用的,只有mem被当前进程实际占用完(没有了buffers和cache),才会使用到swap的。

再举个栗子: 这个是我在RPi一群看到的一个群友发的探针监测截图

观察内存使用状况一栏,发现物理内存功925.89M,已用911.74M,Cache化的内存是676.46M,Buffers为61.3M,现在用上述公式:

带入:

linux下查看内存信息,使用free命令,具体 *** 作和展示信息如下:

# free -m

             total       used       free     shared    buffers     cached

Mem:         15918      12821       3097          0       2601       2542

-/+ buffers/cache:       7676       8241

Swap:         3999          8       3991

其中的相关说明:

Mem:表示物理内存统计

-/+ buffers/cached:表示物理内存的缓存统计

Swap:表示硬盘上交换分区的使用情况(这里我们不去关心)

系统的总物理内存:15918MB(16GB,因为显存占用部分内存),但系统当前真正可用的内存并不是第一行free 标记的 3039MB,它仅代表未被分配的内存。

我们使用total1、used1、free1、used2、free2 等名称来代表上面统计数据的各值,1、2 分别代表第一行和第二行的数据。

total1:    表示物理内存总量。

       used1:     表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。

       free1:     未被分配的内存。

       shared1:   共享内存,一般系统不会用到,这里也不讨论。

       buffers1: 系统分配但未被使用的buffers 数量。

       cached1:   系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。

used2:     实际使用的buffers 与cache 总量,也是实际使用的内存总量。

       free2:     未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。

可以整理出如下等式:

        total1 = used1 + free1

        total1 = used2 + free2

        used1   = buffers1 + cached1 + used2

        free2   = buffers1 + cached1 + free1

buffer 与cache 的区别

        A buffer is something that has yet to be "written" to disk.

理解为buffer是准备写入磁盘。

        A cache is something that has been "read" from the disk and stored for later use.

从磁盘读出来准备给用户访问。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7444756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存