Linux 常用內(nèi)核參數(shù)作用與常見問題處理

一、內(nèi)核參數(shù)的查看和修改

  1. 查看內(nèi)核參數(shù)
sysctl -a
  1. 臨時(shí)修改內(nèi)核參數(shù)
    ?Linux系統(tǒng)啟動(dòng)后袭蝗,所有的內(nèi)核參數(shù)都保存在 /proc/sys 目錄下, 只需要把要修改的數(shù)值寫入對(duì)應(yīng)的文件中就行了档痪。
  2. 永久修改內(nèi)核參數(shù)
    ?直接修改 /etc/sysctl.conf 修改完成后 sysctl -p 或者重啟服務(wù)器使配置生效

二、常見問題

  1. Time wait bucket table overflow 報(bào)錯(cuò)
    ?服務(wù)器 /var/log/message 日志如下探越,執(zhí)行命令 ss -anp -o state time-wait|wc -l 統(tǒng)計(jì)處于 TIME_WAIT 狀態(tài)的 TCP 連接數(shù)狡赐,發(fā)現(xiàn)處于 TIME_WAIT 狀態(tài)的 TCP 連接非常多。
Feb 19 13:44:20 i-*** kernel: TCP: time wait bucket table overflow
Feb 19 13:44:24 i-*** kernel: printk: 432 messages suppressed.
Feb 19 13:44:34 i-*** kernel: TCP: time wait bucket table overflow
Feb 19 13:44:42 i-*** kernel: printk: 132 messages suppressed.

?參數(shù) net.ipv4.tcp_max_tw_buckets 可以調(diào)整內(nèi)核管理中 TIME_WAIT 連接的數(shù)量钦幔,當(dāng)服務(wù)器中處于 TIME_WAIT 連接的數(shù)量和需要轉(zhuǎn)換為 TIME_WAIT 狀態(tài)的連接數(shù)之和超過 net.ipv4.tcp_max_tw_buckets 的參數(shù)值時(shí)枕屉,服務(wù)器的日志中會(huì)出現(xiàn)以上錯(cuò)誤
?解決方法:調(diào)高改參數(shù)的值,或者在業(yè)務(wù)層面去改進(jìn)TCP連接

  1. 服務(wù)器中 FIN_WAIT2 狀態(tài)的 TCP 鏈接過多
    ?原因分析:HTTP服務(wù)中鲤氢,Server由于某種原因會(huì)主動(dòng)關(guān)閉連接搀庶,列如keepalive超時(shí)的情況下。作為主動(dòng)關(guān)閉連接的Server就會(huì)進(jìn)入FIN_WAIT2狀態(tài)铜异;TCP/IP協(xié)議棧中存在連接半連接的概念哥倔,F(xiàn)IN_WAIT2狀態(tài)不算超時(shí),如果client不關(guān)閉揍庄,F(xiàn)IN_WAIT2將b保持到系統(tǒng)重啟咆蒿,越來越多的FIN_WAIT2會(huì)是內(nèi)核出問題
    ?解決方法:修改 /etc/sysctl.conf 文件,加入以下內(nèi)容
net.ipv4.tcp_syncookies = 1 # 該參數(shù)表示是否打開 TCP 同步標(biāo)簽(SYN_COOKIES)蚂子,內(nèi)核必須開啟并編譯 CONFIG_SYN_COOKIES沃测,SYN_COOKIES 可以防止一個(gè)套接字在有過多試圖連接到達(dá)時(shí)引起過載。
#默認(rèn)值 0 表示關(guān)閉食茎,當(dāng)該參數(shù)被設(shè)置為 1 且 SYN_RECV 隊(duì)列滿了之后蒂破,內(nèi)核會(huì)對(duì) SYN 包的回復(fù)做一定的修改。啟用 net.ipv4.tcp_syncookies 后别渔,會(huì)忽略 net.ipv4.tcp_max_syn_backlog
 
net.ipv4.tcp_fin_timeout = 30 
net.ipv4.tcp_max_syn_backlog = 8192 # 該參數(shù)決定了系統(tǒng)中處于 SYN_RECV 狀態(tài)的 TCP 連接數(shù)量附迷。SYN_RECV 狀態(tài)指的是當(dāng)系統(tǒng)收到 SYN 后,作了 SYN+ACK 響應(yīng)后等待對(duì)方回復(fù)三次握手階段中的最后一個(gè) ACK 的階段
net.ipv4.tcp_max_tw_buckets = 5000 
  1. 服務(wù)器中出現(xiàn)大量 CLOSE_WAIT 狀態(tài)的 TCP 連接
    ?原因分析:關(guān)閉TCP連接時(shí)哎媚,TCP連接的兩端都可以發(fā)起關(guān)閉連接的請(qǐng)求喇伯,若對(duì)端發(fā)起了關(guān)閉連接,但本地沒有關(guān)閉連接拨与,那么連接就會(huì)處于CLOSE_WAIT狀態(tài)稻据。雖然該連接已經(jīng)處于半開狀態(tài),但是已經(jīng)無法和對(duì)端通信买喧,需要及時(shí)釋放掉該鏈接捻悯,可以從業(yè)務(wù)層判斷某個(gè)連接是否已經(jīng)被對(duì)端關(guān)閉。
  2. 其它常用內(nèi)核參數(shù)
net.core.somaxconn:這個(gè)參數(shù)用于調(diào)節(jié)系統(tǒng)同時(shí)發(fā)起的TCP連接數(shù)淤毛,在高并發(fā)的請(qǐng)求中今缚,默認(rèn)的值可能會(huì)導(dǎo)致鏈接超時(shí)或重傳。該參數(shù)指的是處于 ESTABLISHED 的數(shù)量上限钱床。若服務(wù)器業(yè)務(wù)負(fù)載很高荚斯,則有必要調(diào)高該參數(shù)
net.ipv4.tcp_max_syn_backlog:指的是還在三次握手的半連接的上限
net.ipv4.tcp_fin_timeout:定義連接保持在FINFIN-WAIT-2狀態(tài)的時(shí)間埠居,默認(rèn)60S
net.ipv4.tcp_tw_reuse:允許將TIME-WAIT 連接重新用于新的TCP連接查牌,默認(rèn)為0事期,1表示開啟
net.ipv4.tcp_rw_recycle:為1時(shí)表示開啟TCP連接中TIME-WAIT連接的快速回收
net.ipv4.tcp_syncookies:?jiǎn)⒂?SYN Cookies功能,當(dāng)出現(xiàn)SYN隊(duì)列溢出時(shí)纸颜,啟用Cookie來處理兽泣,可以防范少量SYN攻擊,默認(rèn)開啟
net.ipv4.tcp_keepalive_time:當(dāng)keepalive開啟時(shí)胁孙,TCP發(fā)送keepalive消息的頻率唠倦,默認(rèn)7200S,建議設(shè)置為600S
net.ipv4.ip_locall_port:允許系統(tǒng)打開的端口范圍涮较,即用于向外連接的端口范圍

# 禁用整個(gè)系統(tǒng)所有接口的IPv6
net.ipv6.conf.all.disable_ipv6 = 1
# 禁用某一個(gè)指定接口的IPv6(例如:eth0, lo)
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1

三稠鼻、禁用 CentOS 7 系統(tǒng)的 IPV6 接口

  1. 修改 /etc/default/grub 文件,把第六行修改為以下內(nèi)容
GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
  1. 重新生成 grub.cfg 文件
grub2-mkconfig -o /boot/grub2/grub.cfg
  1. 重啟系統(tǒng)查看 IPV6 接口是否被禁用
    IPV6 接口已被禁用
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末狂票,一起剝皮案震驚了整個(gè)濱河市候齿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闺属,老刑警劉巖慌盯,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異掂器,居然都是意外死亡亚皂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門国瓮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灭必,“玉大人,你說我怎么就攤上這事乃摹〕Р疲” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵峡懈,是天一觀的道長(zhǎng)璃饱。 經(jīng)常有香客問我,道長(zhǎng)肪康,這世上最難降的妖魔是什么荚恶? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮磷支,結(jié)果婚禮上谒撼,老公的妹妹穿的比我還像新娘。我一直安慰自己雾狈,他們只是感情好廓潜,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般辩蛋。 火紅的嫁衣襯著肌膚如雪呻畸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天悼院,我揣著相機(jī)與錄音伤为,去河邊找鬼。 笑死据途,一個(gè)胖子當(dāng)著我的面吹牛绞愚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播颖医,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼位衩,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了熔萧?” 一聲冷哼從身側(cè)響起蚂四,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哪痰,沒想到半個(gè)月后遂赠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晌杰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年跷睦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肋演。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抑诸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出爹殊,到底是詐尸還是另有隱情蜕乡,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布梗夸,位于F島的核電站层玲,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏反症。R本人自食惡果不足惜辛块,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望铅碍。 院中可真熱鬧润绵,春花似錦、人聲如沸胞谈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至卿捎,卻和暖如春配紫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背娇澎。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工笨蚁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留睹晒,地道東北人趟庄。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像伪很,于是被迫代替她去往敵國(guó)和親戚啥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容