針對(duì)系統(tǒng)
cat /etc/sysctl.conf
###表示系統(tǒng)級(jí)別的能夠打開(kāi)的文件句柄的數(shù)量。直接限制最大并發(fā)連接數(shù)。
###是對(duì)整個(gè)系統(tǒng)的限制,并不是針對(duì)用戶的。
###ulimit -n 控制進(jìn)程級(jí)別能夠打開(kāi)的文件句柄的數(shù)量。
###提供對(duì)shell及其啟動(dòng)的進(jìn)程的可用文件句柄的控制。這是進(jìn)程級(jí)別的。
1. fs.file-max = 202808 #grep -r MemTotal /proc/meminfo | awk '{printf("%d",$2/10)}'
###當(dāng)每個(gè)網(wǎng)絡(luò)接口接受數(shù)據(jù)包的速率比內(nèi)核處理速率快時(shí),允許發(fā)送到隊(duì)列的數(shù)據(jù)包的最大數(shù)。
###默認(rèn)值為300
2. net.core.netdev_max_backlog = 262144
###調(diào)節(jié)系統(tǒng)同時(shí)發(fā)起的TCP連接數(shù)。高并發(fā)情況下,該值越小,越容易出現(xiàn)超時(shí)情況。
###默認(rèn)值為128
3. net.core.somaxconn = 262144
###設(shè)定系統(tǒng)中最多允許存在多少TCP套接字不被關(guān)聯(lián)到任何一個(gè)用戶文件句柄上。
###為了防止簡(jiǎn)單的DOS攻擊。如果超過(guò)這個(gè)數(shù)字,孤立鏈接將立即被復(fù)位并輸出警告信息。
###默認(rèn)值為65535
4. net.ipv4.tcp_max_orphans = 262144
###記錄尚未收到客戶端確認(rèn)信息的連接請(qǐng)求的最大值(三次握手建立階段接受SYN請(qǐng)求)
###設(shè)置大一些可使出現(xiàn)Nginx繁忙來(lái)不及接收新連接時(shí),Linux不至于丟失客戶端發(fā)起的鏈接請(qǐng)求。
###128M內(nèi)存的服務(wù)器參數(shù)值為1024。
###默認(rèn)值為1024
5. net.ipv4.tcp_max_syn_backlog = 262144
###設(shè)置內(nèi)核放棄TCP連接之前向客戶端發(fā)送SYN+ACK包的數(shù)據(jù)(三次握手中的第二次握手)
###當(dāng)為1時(shí),內(nèi)核在放棄連接之前再發(fā)送一次SYN+ACK包。
###默認(rèn)值為5
6. net.ipv4.tcp_synack_retries = 1
###設(shè)置內(nèi)核放棄建立連接之前向客戶端發(fā)送SYN包的數(shù)據(jù)。
###默認(rèn)值為5
7. net.ipv4.tcp_syn_retries = 1
###放大本地端口范圍。
###默認(rèn)值為32768 61000
8. net.ipv4.ip_local_port_range = 15000 65000
###表示某個(gè)TCP連接在空閑7200秒后,內(nèi)核才發(fā)起探測(cè),探測(cè)9次(每次75秒)不成功,內(nèi)核才發(fā)送RST。
###清理無(wú)效鏈接。對(duì)服務(wù)器而言,默認(rèn)值比較大,可結(jié)合業(yè)務(wù)調(diào)整。
###默認(rèn)值為75/9/7200。
9. net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_time = 1500
###啟用Cookies來(lái)處理,可防范部分 SYN 攻擊,當(dāng)出現(xiàn) SYN 等待隊(duì)列溢出時(shí)也可繼續(xù)連接。
###但開(kāi)啟后會(huì)使用 SHA1 驗(yàn)證 Cookies,理論上會(huì)增大 CPU 使用率。
###默認(rèn)值為0
10. net.ipv4.tcp_syncookies = 1
###如果socket由服務(wù)端要求關(guān)閉,則該參數(shù)決定了保持在FIN-WAIT-2狀態(tài)的時(shí)間。
###默認(rèn)值為60
11. net.ipv4.tcp_fin_timeout = 30
###timewait的數(shù)量,最大值為262144。 如果超過(guò)這個(gè)數(shù)字,TIME_WAIT套接字將立刻被清除并打印警告信息。
###建議減小避免TIME_WAIT狀態(tài)過(guò)多消耗整個(gè)服務(wù)器的資源,但也不能太小,跟后端的處理速度有關(guān).
###如果速度快可以小,速度慢則適當(dāng)加大,否則高負(fù)載會(huì)有請(qǐng)求無(wú)法響應(yīng)或非常慢。
###默認(rèn)值為180000
12. net.ipv4.tcp_max_tw_buckets = 6000
#設(shè)置時(shí)間戳,避免序列號(hào)的卷繞。當(dāng)為0時(shí),禁用對(duì)于TCP時(shí)間戳的支持,針對(duì)Nginx服務(wù)器來(lái)說(shuō),建議關(guān)閉。
#默認(rèn)值為1
13. net.ipv4.tcp_timestamps = 0
###TCP連接中TIME-WAIT的sockets快速回收功能。
###同時(shí)開(kāi)啟的話,緩存每個(gè)連接最新的時(shí)間戳,若后續(xù)的請(qǐng)求中時(shí)間戳小于緩存的時(shí)間戳?xí)r,該請(qǐng)求會(huì)被視為無(wú)效,導(dǎo)致數(shù)據(jù)包會(huì)被丟棄。
###不建議打開(kāi)
###tcp_tw_recycle默認(rèn)值為0
14. net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_timestamps = 0
###允許將TIME-WAIT狀態(tài)的sockets重新用于新的TCP連接
###Nginx反向代理服務(wù)器(服務(wù)器即做客戶端,也做server端時(shí))
###tcp_tw_reuse默認(rèn)值為0
15. net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_timestamps = 1
###以下4個(gè)參數(shù),需要根據(jù)業(yè)務(wù)邏輯和實(shí)際的硬件成本來(lái)綜合考慮
###內(nèi)核接收套接字緩沖區(qū)大小的最大值(以字節(jié)為單位)
###缺省設(shè)置:110592
16. net.core.rmem_default = 6291456
###內(nèi)核發(fā)送套接字緩沖區(qū)大小的缺省值(以字節(jié)為單位)
###可參考的優(yōu)化值:873200/1746400/3492800
###缺省設(shè)置:110592
17. net.core.wmem_default = 6291456
###內(nèi)核接收套接字緩沖區(qū)大小的最大值(以字節(jié)為單位)
###缺省設(shè)置:131071
18. net.core.rmem_max = 12582912
###內(nèi)核發(fā)送套接字緩沖區(qū)大小的最大值(以字節(jié)為單位)
###缺省設(shè)置:131071
19. net.core.wmem_max = 12582912
###TCP接收socket請(qǐng)求緩存的內(nèi)存最小值、默認(rèn)值、最大值
20. net.ipv4.tcp_rmem = 10240 87380 12582912
###TCP發(fā)送socket請(qǐng)求緩存的內(nèi)存最小值、默認(rèn)值、最大值
21. net.ipv4.tcp_wmem = 10240 87380 12582912
針對(duì)用戶
cat /etc/security/limits.conf
### *表示所有用戶、soft表示可以超出,但只是警告;hard表示絕對(duì)不能超出,unlimited用于表示不限制
### 最大用戶進(jìn)程數(shù)
* soft nproc 65536
* hard nproc 65536
### 最大打開(kāi)文件描述符,默認(rèn)值為1024
* soft nofile 65536
* hard nofile 65536
### 最大鎖定內(nèi)存地址空間
### * soft memlock unlimited
### * hard memlock unlimited
針對(duì)K8S調(diào)整內(nèi)核參數(shù)
cat /data/kubernetes.conf
#此參數(shù)表示TCP發(fā)送keepalive探測(cè)消息的間隔時(shí)間(秒)
net.ipv4.tcp_keepalive_time=600
#tcp檢查間隔時(shí)間(keepalive探測(cè)包的發(fā)送間隔)
net.ipv4.tcp_keepalive_intvl=30
#tcp檢查次數(shù)(如果對(duì)方不予應(yīng)答,探測(cè)包的發(fā)送次數(shù))
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緩存條目超時(shí)
net.ipv4.neigh.default.gc_stale_time=120
#默認(rèn)為1,系統(tǒng)會(huì)嚴(yán)格校驗(yàn)數(shù)據(jù)包的反向路徑,可能導(dǎo)致丟包
net.ipv4.conf.all.rp_filter=0
#不開(kāi)啟源地址校驗(yàn)
net.ipv4.conf.default.rp_filter=0
#始終使用與目的IP地址對(duì)應(yīng)的最佳本地IP地址作為ARP請(qǐng)求的源IP地址
net.ipv4.conf.default.arp_announce=2
#始終使用與目的IP地址對(duì)應(yīng)的最佳本地IP地址作為ARP請(qǐng)求的源IP地址
net.ipv4.conf.lo.arp_announce=2
#始終使用與目的IP地址對(duì)應(yīng)的最佳本地IP地址作為ARP請(qǐng)求的源IP地址
net.ipv4.conf.all.arp_announce=2
#定義網(wǎng)絡(luò)連接可用作其源(本地)端口的最小和最大端口的限制,同時(shí)適用于TCP和UDP連接
net.ipv4.ip_local_port_range= 45001 65000
#其值為0,說(shuō)明禁止進(jìn)行IP轉(zhuǎn)發(fā);如果是1,則說(shuō)明IP轉(zhuǎn)發(fā)功能已經(jīng)打開(kāi)
net.ipv4.ip_forward=1
#配置服務(wù)器 TIME_WAIT 數(shù)量
net.ipv4.tcp_max_tw_buckets=6000
#此參數(shù)應(yīng)該設(shè)置為1,防止SYN Flood
net.ipv4.tcp_syncookies=1
#表示回應(yīng)第二個(gè)握手包(SYN+ACK包)給客戶端IP后,如果收不到第三次握手包(ACK包),進(jìn)行重試的次數(shù)(默認(rèn)為5)
net.ipv4.tcp_synack_retries=2
#是否在ip6tables鏈中過(guò)濾IPv6包
net.bridge.bridge-nf-call-ip6tables=1
#二層的網(wǎng)橋在轉(zhuǎn)發(fā)包時(shí)也會(huì)被iptables的FORWARD規(guī)則所過(guò)濾,這樣有時(shí)會(huì)出現(xiàn)L3層的iptables rules去過(guò)濾L2的幀的問(wèn)題
net.bridge.bridge-nf-call-iptables=1
#連接跟蹤表的大小,建議根據(jù)內(nèi)存計(jì)算該值CONNTRACK_MAX = RAMSIZE (in bytes) / 16384 / (x / 32),并滿足nf_conntrack_max=4*nf_conntrack_buckets,默認(rèn)262144
net.netfilter.nf_conntrack_max=2310720
#gc_thresh3 是表大小的絕對(duì)限制
#gc_thresh2 設(shè)置為等于系統(tǒng)的最大預(yù)期鄰居條目數(shù)的值
#在這種情況下,gc_thresh3 應(yīng)該設(shè)置為一個(gè)比 gc_thresh2 值高的值,例如,比 gc_thresh2 高 25%-50%,將其視為浪涌容量。
#gc_thresh1 提高到較大的值;此設(shè)置的作用是,如果表包含的條目少于 gc_thresh1,內(nèi)核將永遠(yuǎn)不會(huì)刪除(超時(shí))過(guò)時(shí)的條目。
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網(wǎng)絡(luò)設(shè)備積壓隊(duì)列長(zhǎng)度
net.core.rmem_max = 16777216 # 所有協(xié)議類型讀寫的緩存區(qū)大小
net.core.wmem_max = 16777216 # 最大的TCP數(shù)據(jù)發(fā)送窗口大小
net.ipv4.tcp_max_syn_backlog = 8096 # 第一個(gè)積壓隊(duì)列長(zhǎng)度
net.core.somaxconn = 32768 # 第二個(gè)積壓隊(duì)列長(zhǎng)度
fs.inotify.max_user_instances=8192 # 表示每一個(gè)real user ID可創(chuàng)建的inotify instatnces的數(shù)量上限,默認(rèn)128.
fs.inotify.max_user_watches=524288 # 同一用戶同時(shí)可以添加的watch數(shù)目,默認(rèn)8192。
fs.file-max=52706963 # 文件描述符的最大值
fs.nr_open=52706963 #設(shè)置最大微博號(hào)打開(kāi)數(shù)
kernel.pid_max = 4194303 #最大進(jìn)程數(shù)
net.bridge.bridge-nf-call-arptables=1 #是否在arptables的FORWARD中過(guò)濾網(wǎng)橋的ARP包
vm.swappiness=0 # 禁止使用 swap 空間,只有當(dāng)系統(tǒng) OOM 時(shí)才允許使用它
vm.overcommit_memory=1 # 不檢查物理內(nèi)存是否夠用
vm.panic_on_oom=0 # 開(kāi)啟 OOM
vm.max_map_count = 262144
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。