varnish服务器在内存大量富余时使用交换空间的原因及解决方法

在一台Dell r710服务器上,尽管内存仍有3G可用,但系统开始使用交换空间。通过检查发现是由于NUMA内存分配不均衡导致,Node1上的内存几乎耗尽。解决方案是使用numactl命令的--interleave参数让Varnish进程在所有节点间均匀分配内存,避免不必要的硬盘交换。
摘要由CSDN通过智能技术生成

在varnish机器上发现一个比较奇怪的现象。在可用内存还有3G左右,系统已经开始使用交换空间,也就是说有数据在内存与硬盘之间换进换出了。在当前的流量下,这个对整体性能的影响虽不大。但这个问题有必要彻底查一下。以避免在高负载下可能的问题。


硬件

机器使用Dell r710,两颗CPU,每个CPU上配了8G内存,一共是16G内存。给varnish进程分配了10G。


虚虚内存相关的参数

vm.swappiness = 0


经过一段时间的苦思,我觉得这可能跟NUMA内存分配与访问模式有关。下面是对应的探索过程。


NUMA内存布局及使用情况:


[root@lion ~]# numactl --hardware

available: 2 nodes (0-1)

node 0 size: 8080 MB  (Node0总内存)

node 0 free: 3326 MB  (Node0空闲内存)

node 1 size: 8054 MB  (Node1总内存)

node 1 free: 171 MB   (Node1空闲内存)

node distances:

node   0   1

  0:  10  20

  1:  20  10


从上面可以看出,两个node的内存分配不均衡。虽然node0上还有将近3G的空闲内存,但node1只有171M空间内存,这样在node1内,仍然会将部分数据交

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值