Linux Centos7内核参数优化(K8S内核优化)

针对系统

cat /etc/sysctl.conf
###表示系统级别的能够打开的文件句柄的数量。直接限制最大并发连接数。
###是对整个系统的限制,并不是针对用户的。
###ulimit -n 控制进程级别能够打开的文件句柄的数量。
###提供对shell及其启动的进程的可用文件句柄的控制。这是进程级别的。
1. fs.file-max = 202808  #grep -r MemTotal /proc/meminfo | awk  '{printf("%d",$2/10)}'

###当每个网络接口接受数据包的速率比内核处理速率快时,允许发送到队列的数据包的最大数。
###默认值为300
2. net.core.netdev_max_backlog = 262144
 
###调节系统同时发起的TCP连接数。高并发情况下,该值越小,越容易出现超时情况。
###默认值为128
3. net.core.somaxconn = 262144

###设定系统中最多允许存在多少TCP套接字不被关联到任何一个用户文件句柄上。
###为了防止简单的DOS攻击。如果超过这个数字,孤立链接将立即被复位并输出警告信息。
###默认值为65535
4. net.ipv4.tcp_max_orphans = 262144

###记录尚未收到客户端确认信息的连接请求的最大值(三次握手建立阶段接受SYN请求)
###设置大一些可使出现Nginx繁忙来不及接收新连接时,Linux不至于丢失客户端发起的链接请求。
###128M内存的服务器参数值为1024。
###默认值为1024
5. net.ipv4.tcp_max_syn_backlog = 262144
 
###设置内核放弃TCP连接之前向客户端发送SYN+ACK包的数据(三次握手中的第二次握手)
###当为1时,内核在放弃连接之前再发送一次SYN+ACK包。
###默认值为5
6. net.ipv4.tcp_synack_retries = 1
 
###设置内核放弃建立连接之前向客户端发送SYN包的数据。
###默认值为5
7. net.ipv4.tcp_syn_retries = 1
 
###放大本地端口范围。
###默认值为32768 61000
8. net.ipv4.ip_local_port_range = 15000 65000

###表示某个TCP连接在空闲7200秒后,内核才发起探测,探测9次(每次75秒)不成功,内核才发送RST。
###清理无效链接。对服务器而言,默认值比较大,可结合业务调整。
###默认值为75/9/7200。
9. net.ipv4.tcp_keepalive_intvl = 60
   net.ipv4.tcp_keepalive_probes = 3
   net.ipv4.tcp_keepalive_time = 1500
 
###启用Cookies来处理,可防范部分 SYN 攻击,当出现 SYN 等待队列溢出时也可继续连接。
###但开启后会使用 SHA1 验证 Cookies,理论上会增大 CPU 使用率。
###默认值为0
10. net.ipv4.tcp_syncookies = 1
 
###如果socket由服务端要求关闭,则该参数决定了保持在FIN-WAIT-2状态的时间。
###默认值为60
11. net.ipv4.tcp_fin_timeout = 30
 
###timewait的数量,最大值为262144。 如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。
###建议减小避免TIME_WAIT状态过多消耗整个服务器的资源,但也不能太小,跟后端的处理速度有关.
###如果速度快可以小,速度慢则适当加大,否则高负载会有请求无法响应或非常慢。
###默认值为180000
12. net.ipv4.tcp_max_tw_buckets = 6000
 
#设置时间戳,避免序列号的卷绕。当为0时,禁用对于TCP时间戳的支持,针对Nginx服务器来说,建议关闭。
#默认值为1
13. net.ipv4.tcp_timestamps = 0

###TCP连接中TIME-WAIT的sockets快速回收功能。
###同时开启的话,缓存每个连接最新的时间戳,若后续的请求中时间戳小于缓存的时间戳时,该请求会被视为无效,导致数据包会被丢弃。
###不建议打开
###tcp_tw_recycle默认值为0
14. net.ipv4.tcp_tw_recycle = 0
    net.ipv4.tcp_timestamps = 0
 
###允许将TIME-WAIT状态的sockets重新用于新的TCP连接
###Nginx反向代理服务器(服务器即做客户端,也做server端时)
###tcp_tw_reuse默认值为0
15. net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_timestamps = 1
 
###以下4个参数,需要根据业务逻辑和实际的硬件成本来综合考虑
###内核接收套接字缓冲区大小的最大值(以字节为单位)
###缺省设置:110592
16. net.core.rmem_default = 6291456
 
###内核发送套接字缓冲区大小的缺省值(以字节为单位)
###可参考的优化值:873200/1746400/3492800
###缺省设置:110592
17. net.core.wmem_default = 6291456
 
###内核接收套接字缓冲区大小的最大值(以字节为单位)
###缺省设置:131071
18. net.core.rmem_max = 12582912
 
###内核发送套接字缓冲区大小的最大值(以字节为单位)
###缺省设置:131071
19. net.core.wmem_max = 12582912
 
###TCP接收socket请求缓存的内存最小值、默认值、最大值
20. net.ipv4.tcp_rmem = 10240       87380   12582912
 
###TCP发送socket请求缓存的内存最小值、默认值、最大值
21. net.ipv4.tcp_wmem = 10240       87380   12582912

针对用户

cat /etc/security/limits.conf
### *表示所有用户、soft表示可以超出,但只是警告;hard表示绝对不能超出,unlimited用于表示不限制
### 最大用户进程数
* soft nproc 65536
* hard nproc 65536
### 最大打开文件描述符,默认值为1024
* soft nofile 65536
* hard nofile 65536
### 最大锁定内存地址空间
### * soft memlock unlimited
### * hard memlock unlimited

针对K8S调整内核参数

cat /data/kubernetes.conf
#此参数表示TCP发送keepalive探测消息的间隔时间(秒)
net.ipv4.tcp_keepalive_time=600 

#tcp检查间隔时间(keepalive探测包的发送间隔)
net.ipv4.tcp_keepalive_intvl=30 

#tcp检查次数(如果对方不予应答,探测包的发送次数)
net.ipv4.tcp_keepalive_probes=10  

#禁用IPv6,修为0为启用IPv6
net.ipv6.conf.all.disable_ipv6=1 

#禁用IPv6,修为0为启用IPv6
net.ipv6.conf.default.disable_ipv6=1 

#禁用IPv6,修为0为启用IPv6
net.ipv6.conf.lo.disable_ipv6=1 

#ARP缓存条目超时
net.ipv4.neigh.default.gc_stale_time=120 

#默认为1,系统会严格校验数据包的反向路径,可能导致丢包
net.ipv4.conf.all.rp_filter=0  

#不开启源地址校验
net.ipv4.conf.default.rp_filter=0 

#始终使用与目的IP地址对应的最佳本地IP地址作为ARP请求的源IP地址
net.ipv4.conf.default.arp_announce=2 

#始终使用与目的IP地址对应的最佳本地IP地址作为ARP请求的源IP地址
net.ipv4.conf.lo.arp_announce=2 

#始终使用与目的IP地址对应的最佳本地IP地址作为ARP请求的源IP地址
net.ipv4.conf.all.arp_announce=2 

#定义网络连接可用作其源(本地)端口的最小和最大端口的限制,同时适用于TCP和UDP连接
net.ipv4.ip_local_port_range= 45001 65000 

#其值为0,说明禁止进行IP转发;如果是1,则说明IP转发功能已经打开
net.ipv4.ip_forward=1 

#配置服务器 TIME_WAIT 数量
net.ipv4.tcp_max_tw_buckets=6000 

#此参数应该设置为1,防止SYN Flood
net.ipv4.tcp_syncookies=1 

#表示回应第二个握手包(SYN+ACK包)给客户端IP后,如果收不到第三次握手包(ACK包),进行重试的次数(默认为5)
net.ipv4.tcp_synack_retries=2 

#是否在ip6tables链中过滤IPv6包
net.bridge.bridge-nf-call-ip6tables=1 

#二层的网桥在转发包时也会被iptables的FORWARD规则所过滤,这样有时会出现L3层的iptables rules去过滤L2的帧的问题
net.bridge.bridge-nf-call-iptables=1 

#连接跟踪表的大小,建议根据内存计算该值CONNTRACK_MAX = RAMSIZE (in bytes) / 16384 / (x / 32),并满足nf_conntrack_max=4*nf_conntrack_buckets,默认262144
net.netfilter.nf_conntrack_max=2310720 

#gc_thresh3 是表大小的绝对限制
#gc_thresh2 设置为等于系统的最大预期邻居条目数的值
#在这种情况下,gc_thresh3 应该设置为一个比 gc_thresh2 值高的值,例如,比 gc_thresh2 高 25%-50%,将其视为浪涌容量。
#gc_thresh1 提高到较大的值;此设置的作用是,如果表包含的条目少于 gc_thresh1,内核将永远不会删除(超时)过时的条目。
net.ipv6.neigh.default.gc_thresh1=8192
net.ipv6.neigh.default.gc_thresh2=32768
net.ipv6.neigh.default.gc_thresh3=65536
 
net.core.netdev_max_backlog=16384    # 每CPU网络设备积压队列长度
net.core.rmem_max = 16777216         # 所有协议类型读写的缓存区大小
net.core.wmem_max = 16777216         # 最大的TCP数据发送窗口大小
net.ipv4.tcp_max_syn_backlog = 8096  # 第一个积压队列长度
net.core.somaxconn = 32768           # 第二个积压队列长度
fs.inotify.max_user_instances=8192   # 表示每一个real user ID可创建的inotify instatnces的数量上限,默认128.
fs.inotify.max_user_watches=524288   # 同一用户同时可以添加的watch数目,默认8192。
fs.file-max=52706963                 # 文件描述符的最大值
fs.nr_open=52706963                  #设置最大微博号打开数
kernel.pid_max = 4194303             #最大进程数
net.bridge.bridge-nf-call-arptables=1 #是否在arptables的FORWARD中过滤网桥的ARP包
vm.swappiness=0                       # 禁止使用 swap 空间,只有当系统 OOM 时才允许使用它
vm.overcommit_memory=1                # 不检查物理内存是否够用
vm.panic_on_oom=0                     # 开启 OOM
vm.max_map_count = 262144
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容