在/var/log/messages
中,我们经常收到下面的消息
kernel: SLUB: Unable to allocate memory on node -1 (gfp=0x8020)
在某些情况下,后跟一个分配表
kernel: cache: sigqueue(12019:454c4ebd186d964699132181ad7367c669700f7d8991c47d4bc053ed101675bc), object size: 160, buffer size: 160, default order: 0, min order: 0
kernel: node 0: slabs: 57, objs: 23313, free: 0
kernel: node 1: slabs: 35, objs: 14315, free: 0
好的,free是0,但是如何调优呢?
以下是设置信息
OS - Centos7.3
Kernel - 3.10.0-327.36.3.el7.x86_64
Docker - 1.12.6
Kubernetes - 1.5.5
我们有由kurbernetes提供支持的私有云,有10个节点;它在上个月之前一直运行良好,现在我们在每个节点上都非常频繁地收到这些警报,pod/container在过去几天也增加了。
我们在每个节点上都有足够的memory
和cpu
可用。
对这些警报进行任何微调都将非常有帮助。
附加信息:sysctl.conf
options
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.core.somaxconn = 1024
net.ipv4.tcp_syncookies = 1
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.rmem_default = 65535
net.core.wmem_default = 65535
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.ip_local_port_range = 1024 65535
vm.max_map_count = 262144
vm.swappiness=10
vm.vfs_cache_pressure=100
发布于 2019-05-05 10:41:53
发布于 2017-04-19 04:43:48
问题似乎是与kernel
,首先秋季检查交换内存是否正确分配的free -m
和mkswap -c
,如果交换没有正确分配,做它。如果交换正常,那么您可能需要更新内核。
https://stackoverflow.com/questions/43405813
复制相似问题