{{ cat }}'s docs

17.2.0: 系统管理-内存管理


1. 命令:free

作用:查看内存总量和系统使用内存情况
语法:
free [-b | -k | -m | -g | -h] [-o] [-s delay ] [-c count ] [-a] [-t] [-l] [-V]

参数:

  • -b/-k/-m/-g, 用不同单位显示输出内容
  • -h, 人类友好视图
  • -t, 增加一行total统计行

PS: buffers/cache(free):空余的buffers、cache和空余的内存之和才是系统当前实际可用内存 buffers是即将要被写入磁盘的,cache是被从磁盘中读出来的

输出内容含义:

free -m
             total       used       free     shared    buffers     cached
Mem:          3726        508       3217          0         43        141
-/+ buffers/cache:        323       3402
Swap:          763          0        763

## 第1行,标题行

## 第2行
# total:物理内存容量,total=used+free 3726约=508+3217
# used:系统使用的内存,包含buffers和cached
# free:空闲内存
# shared:基本已经停用
# buffers:写入到硬盘的缓存
# cached:供系统读取的缓存

## 第3行
# 1、used-cached-buffers 508-43-141约=323,含义为除buffers和cached以外真正用掉的内存
# 2、free+cached+buffers 3217+43+141约=3402,含义为包含buffers和cached真正可用的内存

## 第4行
# swap,基本是不会使用到

2. 命令:vmstat

作用:输出虚拟memory的统计

man page description vmstat - Report virtual memory statistics

语法:vmstat [参数 内容] [延迟时间 [次数] ]

  • vmstat [-a] [-n] [-t] [-S unit] [delay [ count]]
  • vmstat [-s] [-n] [-S unit]
  • vmstat [-m] [-n] [delay [ count]]
  • vmstat [-d] [-n] [delay [ count]]
  • vmstat [-p disk partition] [-n] [delay [ count]]
  • vmstat [-f]
  • vmstat [-V]

参数:

  • -s 转为显示一个统计表,包含各种系统memory信息,此信息不会重复刷新

输出内容含义:

  • procs
    • r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;
    • b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要关注一下了
  • memory
    • swpd:虚拟内存使用量;
    • free:空闲内存;
    • buff:缓冲区(写入磁盘设备);
    • cache:缓存区(读取磁盘设备);
  • swap
    • si :由交换区进入内存的数量;
    • so :由内存进入交换区的数量;
  • io
    • bi :从块设备读取数据的量(读磁盘);
    • bo: 从块设备写入数据的量(写磁盘);
  • system
    • in:每秒钟内的中断次数,包括时钟中断;
    • cs:每秒钟内的上下文切换次数;
  • cpu
    • us:用户cpu时间;
    • sy:系统cpu时间;
    • id:空闲cpu时间;
    • wa :表示I/O等待所占用cpu时间百分比.
    • st:Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.

用法示例:

# "-s"参数会将输出结果由默认的memory status转换成一个静态报表
vmstat -s
      1030528  total memory
       491288  used memory
       239108  active memory
       189752  inactive memory
       539240  free memory
       159048  buffer memory
       258412  swap cache
      1023992  total swap
            0  used swap
      1023992  free swap
         2655 non-nice user cpu ticks
           87 nice user cpu ticks
        28642 system cpu ticks
     85839705 idle cpu ticks
       113674 IO-wait cpu ticks
         1905 IRQ cpu ticks
        36223 softirq cpu ticks
            0 stolen cpu ticks
       228627 pages paged in
       956490 pages paged out
            0 pages swapped in
            0 pages swapped out
     10512745 interrupts
      6644499 CPU context switches
   1419434147 boot time
        13994 forks

3. 文件:/proc/meminfo

作用:储存内存信息
用法举例:

# 用MB来展示结果
cat /proc/meminfo|sed -r 's/ +/ /g'|\
awk -v unit="MB" -F ' ' '{$2=$2/1024}{printf("%20s %-9d %s\n",$1,$2,unit)}'
           MemTotal: 981       MB
            MemFree: 844       MB
            Buffers: 29        MB
             Cached: 35        MB
         SwapCached: 0         MB
             Active: 33        MB
           Inactive: 41        MB
       Active(anon): 8         MB
     Inactive(anon): 0         MB
       Active(file): 24        MB
     Inactive(file): 41        MB
        Unevictable: 0         MB
            Mlocked: 0         MB
          SwapTotal: 999       MB
           SwapFree: 999       MB
              Dirty: 0         MB
          Writeback: 0         MB
          AnonPages: 8         MB
             Mapped: 6         MB
              Shmem: 0         MB
               Slab: 38        MB
       SReclaimable: 14        MB
         SUnreclaim: 23        MB
        KernelStack: 1         MB
         PageTables: 1         MB
       NFS_Unstable: 0         MB
             Bounce: 0         MB
       WritebackTmp: 0         MB
        CommitLimit: 1490      MB
       Committed_AS: 58        MB
       VmallocTotal: 33554431  MB
        VmallocUsed: 151       MB
       VmallocChunk: 33554273  MB
  HardwareCorrupted: 0         MB
      AnonHugePages: 0         MB
    HugePages_Total: 0         MB
     HugePages_Free: 0         MB
     HugePages_Rsvd: 0         MB
     HugePages_Surp: 0         MB
       Hugepagesize: 2         MB
        DirectMap4k: 6         MB
        DirectMap2M: 1018      MB
        DirectMap1G: 0         MB

Contents