建议 Swap 使用单独的分区:

  • a swap file
  • a combination of swap partitions and swap files.

Swap 大小的计算公式:

M 等于物理内存大小(GB),S 等于 Swap 大小(GB)

当物理内存小于 2 GB 的时候,Swap 等于物理内存的 2 倍。当物理内存大于 2 GB 的时候,Swap 等于物理内存 + 2 GB

If M < 2
S = M *2
Else
S = M + 2


查看总体的使用 Swap 的情况:

[root@localhost ~]# free m

                 total             used            free            shared      buffers      cached

Mem:       1412236      603288      808948          0             37628       412636

-/+ buffers/cache:        153024      1259212

Swap:      2588624          0             2588624

free -m :查看内存情况,单位为MB。

total 内存总数

used 已经使用的内存数(我的程序使用内存数量+系统缓存使用的内数量)

free 空闲的物理内存数(是真正的空闲,未被任何程序占用)

shared 多个进程共享的内存总额

buffers 磁盘缓存(Buffer Cache)的大小(可提高系统I/O调用的性能)

cached  磁盘缓存(Page Cache)的大小(可提高系统I/O调用的性能)

-buffers/cache 表示已被我们的程序使用的内存数,计算方法:used - buffers - cached

+buffers/cache 表示还可已被我使用的内存数,计算方法:free + buffers + cached


操作系统目前可用内存总量=free + buffers + cached=808948+ 37628+  412636=1259212(即buffer与Cache 可以无限接近0,全部被程序使用)

程序使用的总内存=153024= 603288 -  37628 -412636 (used=程序内存+buffer+cache)

buffers是用来给块设备做的缓冲大小、buffers是用来存储目录里面有什么内容,权限等等

cached用来给文件做缓冲,用来记忆我们打开的文件.

 




查看是哪个进程使用了 Swap:

使用 ​​top​​ 命令,然后再按 ​​f​​,再按 ​​p​​ ,(显示swap列)

即可显示哪个进程使用了多少 Swap 空间。然后要释放的话,把那个进程重起下即可。

查看 Swap 使用的哪个分区使用 ​​/sbin/swapon -s​​ 命令。

 

[root@localhost ~]#  /sbin/swapon -s

Filename                                Type            Size        Used    Priority

/dev/sda3                               partition       2064344  0          -1

/swapfile1                              file               524280    0          -2