机器与高速缓存交换

时间:2019-07-15 08:22:01

标签: memory-management centos7

为什么即使缓存了足够的内存,我的服务器也要交换?

该机器正在运行CentOS 7,并配备:
- 755 GB 的RAM
- 32 GB 交换

交换率设置为1

这是meminfo:

MemTotal:       792087296 kB
MemFree:         4465804 kB
MemAvailable:   224683056 kB
Buffers:              24 kB
Cached:         216998152 kB
SwapCached:     17792052 kB
Active:         672773100 kB
Inactive:       104668396 kB
Active(anon):   519239536 kB
Inactive(anon): 41416180 kB
Active(file):   153533564 kB
Inactive(file): 63252216 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:      33554428 kB
SwapFree:         398388 kB
Dirty:               364 kB
Writeback:             0 kB
AnonPages:      542653804 kB
Mapped:            50276 kB
Shmem:            212980 kB
Slab:            3968696 kB
SReclaimable:    3769332 kB
SUnreclaim:       199364 kB
KernelStack:       18512 kB
PageTables:      1146652 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    429598076 kB
Committed_AS:   580019976 kB
VmallocTotal:   34359738367 kB
VmallocUsed:     1885084 kB
VmallocChunk:   33948891128 kB
HardwareCorrupted:     0 kB
AnonHugePages:  264464384 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      313660 kB
DirectMap2M:    63309824 kB
DirectMap1G:    741343232 kB

有任何线索吗?

1 个答案:

答案 0 :(得分:0)

我不确定“为什么”,但是您可以尝试两种方法:

1-将可交换性设置为零。

2-完全禁用交换。

here上有很好的参考,但重点是:

  1. 使用 cat / proc / swaps 标识已配置的交换设备和文件。
  2. 使用 swapoff -a 关闭所有交换设备和文件。
  3. 删除在 / etc / fstab 中找到的所有匹配参考。

另一个注意事项,即使禁用了交换功能,有时也可以看到已释放的页面和进入的页面。可执行文件通常是内存映射的。内核知道它可以根据需要从磁盘还原这些代码页,因此可以不受惩罚地释放它们,以便释放RAM用于缓存或其他用途。