所有文章是按github的markdown格式书写的,如此页面显示不正常,请跳转到github版

现象

生产上citus集群中的一台worker 243上,偶尔会出现sys CPU利用率异常飙高,导致CPU跑满。而当时SQL查询量和user CPU使用率均无特别变化。并且其它3台worker都没有问题。

环境

  • OS:CentOS release 6.5 x64物理机(2.6.32-431.el6.x86_64)
  • CPU: 2*8core 16核32线程, Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz
  • PostgreSQL: 9.6.2

原因

对比4台worker的内核参数配置,发现这台worker上的vm.zone_reclaim_mode值和其它3台不一致。

vm.zone_reclaim_mode = 0

其它3台worker的vm.zone_reclaim_mode值都是1

处理

将这台机器的vm.zone_reclaim_mode改为1,运行数天后,该问题未再发生。

这台机器的zone配置

[root@host243 ~]# numactl --show
policy: default
preferred node: current
physcpubind: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 
cpubind: 0 1 
nodebind: 0 1 
membind: 0 1

[root@host243 ~]# cat /proc/meminfo 
MemTotal:       132035016 kB
MemFree:        24289928 kB
Buffers:          125080 kB
Cached:         67212576 kB
SwapCached:            0 kB
Active:         69108484 kB
Inactive:        2139784 kB
Active(anon):    3456384 kB
Inactive(anon):   523868 kB
Active(file):   65652100 kB
Inactive(file):  1615916 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:      10485752 kB
SwapFree:       10485752 kB
Dirty:            764440 kB
Writeback:             0 kB
AnonPages:       3980292 kB
Mapped:            38408 kB
Shmem:              2156 kB
Slab:             940480 kB
SReclaimable:     850140 kB
SUnreclaim:        90340 kB
KernelStack:        6088 kB
PageTables:        58240 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    59172060 kB
Committed_AS:    4845456 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      483204 kB
VmallocChunk:   34289724028 kB
HardwareCorrupted:     0 kB
AnonHugePages:   2639872 kB
HugePages_Total:   16925
HugePages_Free:      148
HugePages_Rsvd:       53
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        5868 kB
DirectMap2M:     1968128 kB
DirectMap1G:    132120576 kB

疑问

通常建议设置vm.zone_reclaim_mode = 0,为什么这里行不通?

May 6, 2018