以下是一些vmstat
输出
x@x-server:~$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 223104 123116 67944 521656 0 1 3 4 16 32 1 0 99 0 0
0 0 223104 123116 67944 521656 0 0 0 0 38 74 0 0 100 0 0
0 0 223104 123116 67944 521656 0 0 0 0 31 64 0 0 100 0 0
0 0 223104 122944 67944 521560 0 0 0 0 126 145 1 0 99 0 0
0 0 223052 122820 67944 521560 64 0 72 0 83 145 0 1 98 0 0
0 0 223000 122820 67944 521560 64 0 64 0 60 114 1 0 99 1 0
0 0 223000 122820 67944 521560 0 0 0 0 44 78 0 1 100 0 0
0 0 223000 122820 67944 521560 0 0 0 0 27 56 0 0 100 0 0
0 0 223000 122820 67952 521552 0 0 0 24 82 145 0 0 100 0 0
0 0 223000 122820 67952 521560 0 0 0 0 42 86 0 1 100 0 0
0 0 222952 122696 67952 521560 32 0 32 0 75 127 1 0 100 0 0
0 0 222952 122696 67952 521560 0 0 0 0 28 58 0 0 100 0 0
0 0 222896 122448 67952 521560 48 0 48 0 90 127 1 0 99 0 0
0 0 222896 122448 67952 521560 0 0 0 0 31 63 0 1 100 0 0
0 0 222896 122448 67952 521560 0 0 0 0 31 62 0 0 100 0 0
这是free
x@x-server:~$ free -m
total used free shared buff/cache available
Mem: 1430 734 119 25 575 636
Swap: 1467 217 1250
如您所见,尽管我有大量内存(约 50%)可用,但仍有一些交换操作正在进行。为什么会这样?我该如何让它使用这些内存?
答案1
为了确定哪个进程正在使用交换内存,请使用以下命令进行检查。如果您不想要该进程,请将其终止并继续
对于 /proc/*/status 中的文件;执行 awk'/VmSwap|Name/{printf $2" " $3}END{print""}'$file;完成 |sort -k 2 -n -r |less