{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

如何检查Linux的内存使用状况?

appetizerioappetizerio 回答0 收藏1
收藏问题

9条回答

GraphQuery

GraphQuery

回答于2022-06-28 09:54

第一种,在linux下查看内存使用情况的最简单方法是使用free命令,free命令可以显示系统中物理内存和交换内存的总量,还可以显示内核所用的buffer和caches总量。在我的系统中运行linux命令,显示结果在下面图中所示。

其中第一行显示系统物理内存的使用情况,第二行显示的是swap交换内存的使用情况。

total列表示系统中内存的总量,

used列表示已用内存总量,该列的值可通过如下公式获得:used = total - free - buffers – cache,free列表示空闲内存容量,

shared为共享内存已经使用的容量,

buff/cache为buffers和cache所用总量的总和,其中buffers为内核缓冲区所用的内存,cache为页缓存和slabs所用的内存容量。

available列为估算的在不需要swapping内存的情况下,可用物理内存容量。

这里free默认的显示单位是Kbytes,可以用 -b(bytes), -m(Mbytes),-k(Kbytes)或者-g(Gbytes) 来置顶要显示的单位。实际中更常用的是使用-h来显示易于阅读的输出。

在我的系统中运行free -h命令,显示结果如下图所示。

需要注意的是swap 的使用量。一般来说, swap 的used最好是0,最多不要超过20%。如果您发现 swap 的使用量超过 20% ,那么说明系统的物理内存已经严重不足了。 更多关于free的用法可以通过free -help命令查看或者man free查看更加详细的信息。

第二种,查看linux内存使用情况的方法是使用top命令,top输出的第三行和第四行显示当前系统物理内存和交换内存的使用情况,top命令还可以查看每个进程的内存使用率,在我的系统中运行top命令的显示结果如下图所示。

第三种,free和top命令显示的内存信息都是通过读取/proc/meminfo文件生成的,所以我们也可以通过查看/proc/meminfo文件来查看系统的内存使用情况。

以上介绍的方法都是在命令行环境下查看,也可以通过图形界面查看系统的内存使用情况,图形界面查看内存使用情况比较常用的工具是System Monitor。一般发行版系统都会自带这个工具。

还有一些命令也可以显示内存的使用情况,比如ps、vmstat、memstat等。但这不是这些工具的主要作用。这里不做详细阐述





评论0 赞同0
  •  加载中...
Zack

Zack

回答于2022-06-28 09:54

无图形界面的话需要使用命令查看内存,如果有桌面的话,使用桌面环境自带的任务管理器即可查看。

评论0 赞同0
  •  加载中...
weij

weij

回答于2022-06-28 09:54

我想题主的问题应该是在Linux环境下判断服务器内存是否不足

第一部分:通过top查看内存使用状况


从Top 显示来看是有8G内存,7805792k已经使用,只有256028k内存空闲。我们再通过free命令 来看:从Free 命令行来看服务器还有 free=594160k=594M 空间未使用。
需要解释一下Free 和Top 在Linux 下的不同显示问题。
Free命令显示在操作系统中使用和空闲的内存数量。
Top 显示是和Linux 对内存使用的方式关系紧密,linux 尽可能的要求
使用物理内存来提高Buffer 和Cache 对Disk 的I/O操作。Linux 将尽可能多的将I/O 操作磁盘上的信息保存在内存当中,如果服务器需要更多的内存空间,Linux 才会将一些内存使用LRU 算法清理出来,如果不需要则继续保持这些数据信息在内存中。所以我们使用Top看到的Mem: 8061820k total, 7806040k used, 255780k free很少。

第二部分:查看Swap 的状况:

Swap 空间的使用状况也能分辨出服务器内存是否已经吃紧。如果观察Swap 中的使用量一直在增加,或Swap used 为一个很大的值。那我们基本就能确定在现有的状况下内存出现问题。当然我们需要考虑此现象是偶尔发生还是一直出现),这个时候可以通过vmstat 来看当前Swap 活动的状态。

Swap 下面的Si 和So 分别显示Swap 页面交换进来和交换出去。


那如何看Swap 历史信息呢。可通过/var/log/sa目录查看。今天是8.15号,会以日期数字组成文件名找到,再通过sar -W -f指定文件解析即可。

显示从今天0点到当前的所有Swap 页面交换的数量。

评论0 赞同0
  •  加载中...
wing324

wing324

回答于2022-06-28 09:54

在操作系统领域,目前主流有三大类,Windows,MacOS以及Linux,其中Windows系统和MacOS使用者较多,Linux相对较少,一般在服务器上使用。


Linux简介

Linux是一款免费开源操作系统,诞生1991年,它的诞生给开发者和企业带来了福音。Linux主要分Debian系和Redhat系。

1、Debian系主要有Debian,Ubuntu等。

2、Redhat系主要有RedHat,Fedora,CentOs等。

开发一般建议选择Redhat系列,如CentOs。如果简单用加开发,建议选择Debian系列,如Ubuntu。


查看内存占用

Linux中我们一般使用free命令查看内存占用情况,其常用选项以及含义如下图所示:

输入free命令如下所示:


行信息

Mem: 内存的使用信息。

Swap: 交换空间的使用信息。


列信息:

total:系统总的可用物理内存大小。

used:已被使用的物理内存大小。

free:还有多少物理内存可用。

shared:被共享使用的物理内存大小。

buff/cache:被 buffer 和 cache 使用的物理内存大小。

avaliable:还可以被 应用程序 使用的物理内存大小。


总结

Linux查看内存命令一般使用free命令,但是还有许多命令可选,比如top,pmap,cat /proc/meminfo,我们只需要掌握一两种命令,在遇到问题时能快速定位解决问题即可。

评论0 赞同0
  •  加载中...
jollywing

jollywing

回答于2022-06-28 09:54

可以通过free -m命令进行查看了(其中-m 表示单位兆字节)

下面截图就是内存使用2734

评论0 赞同0
  •  加载中...
RichardXG

RichardXG

回答于2022-06-28 09:54

htop,可以查看内存占用情况、CPU占用情况、进程运行情况。

评论0 赞同0
  •  加载中...
h9911

h9911

回答于2022-06-28 09:54

free -h

评论0 赞同0
  •  加载中...
Lin_R

Lin_R

回答于2022-06-28 09:54

如果是计算机资源的使用情况,直接top命令,如果是硬盘空间有多少用了多少,就df -m。

评论0 赞同0
  •  加载中...
nanfeiyan

nanfeiyan

回答于2022-06-28 09:54

free -m 以KB为单位显示 -h 以MB为单位显示

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<