在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内,仍然会将部分数据交