1、free命令

  free 命令会显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存等。

释义:

  Mem:内存使用情况。

  Swap:交换空间(虚拟内存)使用情况。

  total:系统总共可用物理内存、交换空间大小,即内存总数。

  used:已经被使用的物理内存、交换空间大小,即已使用的内存数。

  free:剩余可用物理内存、交换空间大小,即空闲的内存数。

  shared:被共享使用的物理内存大小,即当前已废弃不用。

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

          buffers:系统分配但未被使用的缓冲区
         cached:系统分配但未被使用的缓存
        (buffers和cached区别:A buffer is something that has yet to be “written” to disk.
         A cache is something that has been “read” from the disk and stored for later use(缓冲区还没有被写入磁盘。 缓存是从磁盘“读取”并存储以备后用的))

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

程序已用内存数
-(buffers/cached):used mem行 used - buffers - cached 
(反应为被程序实实在在吃掉的内存)

程序可用内存数
+(buffers/cached):free mem行  free+buffers+cached 
(可以挪用的内存总数)

常见用法:

free -h      //以更友好的方式显示,会以K、M、G为单位来显示
free -h -s 3   //以一定时间间隔重复的输出,这个命令是每3秒输出

free 命令中的信息都来自于 /proc/meminfo 文件。

如何判断系统内存不足:

如果Swap used值大于0,代表服务器物理内存已经遇到内存瓶颈了,已开始使用虚拟内存了,要么优化代码,要么加内存。

2、vmstat命令

  vmstat 是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控,是对系统的整体情况进行的统计。

 与内存使用情况相关的是memory列和swap列,我们只看这两列。

memory列

  swpd:使用的虚拟内存大小。

  free:空闲物理内存大小。

  buff:buffer cache内存大小。

  cache:page cache的内存大小。

swap列

  si:每秒从交换区读入到内存的大小,由磁盘调入内存(单位:kb/s)

  so:每秒从内存写出到交换区的大小,由内存调入磁盘(单位:kb/s)

常见用法:

vmstat 1    //每隔1s打印一次
vmstat 1 5   //每隔1秒打印一次,打印五次
vmstat -s    //显示内存相关统计信息及多种系统活动数量

3、top命令

  使用top命令,可以查看正在运行的进程和系统负载信息,包括cpu负载、内存使用、各个进程所占系统资源等,top命令以一定频率动态更新这些统计信息。

 反映系统内存使用状况的是下面这两行:

 Mem行是物理内存使用情况,分别是:物理内存总量,已使用的物理内存总量,空闲物理内存总量,用作内核缓存区的内存量。

Swap行是交换区使用情况,分别是:交换区总量,已使用的交换区总量,空闲交换区总量,缓冲的交换区总量。

 Top命令的下侧区域显示的是各个进程使用的系统资源统计信息,内存相关列如下:

  • VIRT列:进程使用的虚拟内存总量,单位kb。
  • RES列:进程使用的、未被换出的物理内存大小,单位kb。
  • SHR列:共享内存大小,单位kb。
  • %MEM 列:进程使用的物理内存百分比。

 上图S列用来判断运行状态,其中s:sleep;  r:run; Z: 僵尸(代表:进程已经死了,但还在占用进程,服务器资源未释放)

i:代表短时在切换资源

用下图画红框内容来判定系统是否负载过高(同命令uptime显示效果)

4、cat /proc/meminfo

  /proc/meminfo是了解Linux系统内存使用状况的主要接口,我们最常用的”free”、”vmstat”等命令就是通过它获取数据的。/proc/meminfo所包含的信息比”free”等命令要丰富得多,但也很复杂,不再一一解释了。感兴趣的话可以看看这篇文章:/proc/meminfo之谜 | Linux Performance,对 /proc/meminfo 有较详细的解释。

5、 ps aux命令

  ps aux 命令可以查看系统中各个进程的运行情况,包括了进程占用的内存,%MEM 列就是各个进程的内存占用百分比。

6、显示磁盘命令

Logo

更多推荐