yae*_*ael 3 linux rhel memory swap free
我们有一台 RHEL 7 机器,只有 2G 的可用内存:
free -g
total used free shared buff/cache available
Mem: 31 28 0 0 1 2
Swap: 15 9 5
Run Code Online (Sandbox Code Playgroud)
所以我们决定用vm.swappiness = 100in/etc/sysctl.conf而不是 10将swappiness 增加到最大值,并用于sysctl -p应用设置。
一段时间后,我们再次检查状态:
free -g
total used free shared buff/cache available
Mem: 31 28 0 0 2 2
Swap: 15 9 5
Run Code Online (Sandbox Code Playgroud)
正如我们所看到的,尽管有新的 swappiness 设置,但我们看到free -g可用 RAM 保持在 2G。为什么?这里有什么问题?
我们预计会看到 15G 的已用交换。
我们还检查了:
cat /proc/sys/vm/swappiness
100
Run Code Online (Sandbox Code Playgroud)
所以一切都应该根据新设置工作,但free显示相同的情况。这是怎么回事?
该swappiness设置按预期工作。增加swappiness不会导致系统更喜欢交换其他任何东西;增加swappiness会影响页面缓存和交换之间的平衡。当内核需要使物理内存可用时,它可以丢弃通常使用两种策略之一:它可以从页面缓存中丢弃页面(因为它们的内容在磁盘上),或者它可以移动页面以交换;swappiness决定它对一种策略的偏爱程度。设置swappiness为 0(最小值)意味着内核将避免交换,直到它达到各种高水位线,并从页面缓存中逐出页面;将其设置为 100(最大值)意味着内核将同等考虑交换和驱逐页面缓存。
只有当内核需要更多内存时,您才会看到新设置有所不同:在缓存中使用的内存量减少之前,您会看到使用的交换量增加。
您不能使用swappiness获取内核以保持更多可用内存。物理内存总是最好使用而不是空闲,因此内核没有动力抢先释放物理内存(增加可用内存)。
有关更多信息,请参阅RHEL 7 性能调优指南。
| 归档时间: |
|
| 查看次数: |
2439 次 |
| 最近记录: |