欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux高并發(fā)場(chǎng)景下的網(wǎng)絡(luò)參數(shù)調(diào)優(yōu)實(shí)戰(zhàn)指南

 更新時(shí)間:2025年05月11日 09:30:33   作者:碼農(nóng)阿豪@新空間  
在高并發(fā)網(wǎng)絡(luò)服務(wù)場(chǎng)景中,Linux內(nèi)核的默認(rèn)網(wǎng)絡(luò)參數(shù)往往無(wú)法滿足需求,導(dǎo)致性能瓶頸、連接超時(shí)甚至服務(wù)崩潰,本文基于真實(shí)案例分析,從參數(shù)解讀、問(wèn)題診斷到優(yōu)化實(shí)踐,手把手教你如何調(diào)優(yōu)Linux網(wǎng)絡(luò)參數(shù),支撐百萬(wàn)級(jí)并發(fā)連接,需要的朋友可以參考下

一、問(wèn)題背景:當(dāng)并發(fā)連接遇上性能瓶頸

1.1 案例環(huán)境

  • 服務(wù)器配置:
vCPU: 8核 | 內(nèi)存: 16GB | 網(wǎng)絡(luò)帶寬: 4Gbps | PPS: 80萬(wàn)
  • 觀測(cè)到的異?,F(xiàn)象:
    • TIME_WAIT連接堆積(2464個(gè))
    • 存在CLOSE_WAIT連接(4個(gè))
    • 偶發(fā)新連接建立超時(shí)

1.2 初始參數(shù)分析

通過(guò)sysctl查看到的原始配置:

net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 131072
net.ipv4.ip_local_port_range = 1024 61999

關(guān)鍵缺陷:半連接隊(duì)列小、端口范圍窄、緩沖區(qū)限制嚴(yán)。

二、深度診斷:連接狀態(tài)與內(nèi)核參數(shù)

2.1 連接狀態(tài)監(jiān)控技巧

實(shí)時(shí)統(tǒng)計(jì)TCP狀態(tài)

watch -n 1 'netstat -ant | awk '\''/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'\'''

輸出示例:

ESTABLISHED 790
TIME_WAIT 2464
SYN_RECV 32  # 半連接重點(diǎn)關(guān)注!

半連接專項(xiàng)檢查

# 查看SYN_RECV連接詳情
ss -ntp state syn-recv
# 監(jiān)控隊(duì)列溢出
netstat -s | grep -i 'listen drops'

2.2 關(guān)鍵參數(shù)解讀

參數(shù)作用默認(rèn)值問(wèn)題
tcp_max_syn_backlog半連接隊(duì)列長(zhǎng)度8192(突發(fā)流量易滿)
somaxconn全連接隊(duì)列長(zhǎng)度需與應(yīng)用backlog參數(shù)匹配
tcp_tw_reuse快速?gòu)?fù)用TIME_WAIT端口默認(rèn)關(guān)閉(導(dǎo)致端口耗盡)
tcp_rmem/tcp_wmem讀寫緩沖區(qū)大小最大值僅6MB(影響吞吐)

三、調(diào)優(yōu)方案:從參數(shù)到實(shí)踐

3.1 連接管理優(yōu)化

解決TIME_WAIT堆積

echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_tw_buckets = 262144" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf

縮短連接回收時(shí)間

echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf

3.2 隊(duì)列與緩沖區(qū)優(yōu)化

擴(kuò)大連接隊(duì)列

echo "net.ipv4.tcp_max_syn_backlog = 65535" >> /etc/sysctl.conf
echo "net.core.somaxconn = 65535" >> /etc/sysctl.conf
echo "net.core.netdev_max_backlog = 10000" >> /etc/sysctl.conf

調(diào)整內(nèi)存緩沖區(qū)

cat >> /etc/sysctl.conf <<EOF
net.ipv4.tcp_mem = 8388608 12582912 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
EOF

3.3 Keepalive與超時(shí)優(yōu)化

echo "net.ipv4.tcp_keepalive_time = 600" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_intvl = 30" >> /etc/sysctl.conf

四、驗(yàn)證與監(jiān)控

4.1 實(shí)時(shí)監(jiān)控腳本

連接狀態(tài)看板

#!/bin/bash
while true; do
  clear
  date
  echo "---- TCP狀態(tài) ----"
  netstat -ant | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
  echo "---- 半連接隊(duì)列 ----"
  ss -ltn | awk 'NR>1 {print "Listen隊(duì)列: Recv-Q="$2", Send-Q="$3}'
  echo "---- 端口使用率 ----"
  echo "已用端口: $(netstat -ant | grep -v LISTEN | awk '{print $4}' | cut -d: -f2 | sort -u | wc -l)/$((65000-1024))"
  sleep 5
done

內(nèi)核告警規(guī)則(Prometheus示例)

4.2 壓測(cè)建議

使用wrk模擬高并發(fā):

wrk -t16 -c10000 -d60s http://service:8080

監(jiān)控重點(diǎn)指標(biāo):

  • SYN_RECV數(shù)量波動(dòng)
  • netstat -s中的丟包計(jì)數(shù)
  • 內(nèi)存使用率(free -m

五、避坑指南

5.1 常見誤區(qū)

  1. 盲目啟用tcp_tw_recycle
    NAT環(huán)境下會(huì)導(dǎo)致連接失敗(已從Linux 4.12移除)

  2. 緩沖區(qū)過(guò)大引發(fā)OOM
    需根據(jù)內(nèi)存調(diào)整tcp_mem

# 計(jì)算安全值(單位:頁(yè),1頁(yè)=4KB)
echo $(( $(free -m | awk '/Mem:/ {print $2}') * 1024 / 4 / 3 )) >> /proc/sys/net/ipv4/tcp_mem

5.2 參數(shù)依賴關(guān)系

  • somaxconn需≥應(yīng)用層的backlog例如Nginx需同步調(diào)整:
listen 80 backlog=65535;

六、總結(jié)

通過(guò)本文的調(diào)優(yōu)實(shí)踐,我們實(shí)現(xiàn)了:

  1. TIME_WAIT連接減少70%
  2. 最大并發(fā)連接數(shù)提升至3萬(wàn)+
  3. 網(wǎng)絡(luò)吞吐量增長(zhǎng)2倍

以上就是Linux高并發(fā)場(chǎng)景下的網(wǎng)絡(luò)參數(shù)調(diào)優(yōu)實(shí)戰(zhàn)指南的詳細(xì)內(nèi)容,更多關(guān)于Linux網(wǎng)絡(luò)參數(shù)調(diào)優(yōu)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • sshd 限制登陸的幾種方法總結(jié)

    sshd 限制登陸的幾種方法總結(jié)

    這篇文章主要介紹了sshd 限制登陸的幾種方法總結(jié)的相關(guān)資料,這里說(shuō)明幾種方法并附有實(shí)現(xiàn)命令,需要的朋友可以參考下
    2017-02-02
  • Linux下解壓.tar.xz格式文件的方法

    Linux下解壓.tar.xz格式文件的方法

    最近下載到了一份tar.xz結(jié)尾的壓縮文件,網(wǎng)上解決的方法比較少,所以決定將解決的方法總結(jié)下來(lái),這篇文章主要給大家介紹了在Linux下解壓.tar.xz格式文件的方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-05-05
  • Ubuntu14.04 opencv2.4.8和opencv3.3.1多版本共存的實(shí)現(xiàn)方法

    Ubuntu14.04 opencv2.4.8和opencv3.3.1多版本共存的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇Ubuntu14.04 opencv2.4.8和opencv3.3.1多版本共存的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Linux系統(tǒng)下 centos7下搭建ElasticSearch中間件及常用接口演示

    Linux系統(tǒng)下 centos7下搭建ElasticSearch中間件及常用接口演示

    ElasticSearch是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式多用戶能力的全文搜索引擎,基于RESTful web接口。這篇文章主要介紹了Linux系統(tǒng)下 centos7下搭建ElasticSearch中間件及常用接口演示 ,需要的朋友可以參考下
    2019-07-07
  • linux如何查看系統(tǒng)信息

    linux如何查看系統(tǒng)信息

    這篇文章主要介紹了linux如何查看系統(tǒng)信息的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • #實(shí)踐筆記#Ubuntu配置Apache+PHP+MySQL

    #實(shí)踐筆記#Ubuntu配置Apache+PHP+MySQL

    在我早先的一篇文章《#實(shí)踐筆記#本地配置PHPnow與WordPress》,已經(jīng)討論過(guò)PHPnow的本地安裝教程。但是PHPnow套件是Windows平臺(tái)下的軟件,不適用我現(xiàn)在使用的平臺(tái)
    2012-03-03
  • 如何在Linux環(huán)境為用戶添加sudo權(quán)限

    如何在Linux環(huán)境為用戶添加sudo權(quán)限

    這篇文章主要介紹了如何在Linux環(huán)境為用戶添加sudo權(quán)限,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Ubuntu LTS服務(wù)器部署Jenkins詳細(xì)介紹

    Ubuntu LTS服務(wù)器部署Jenkins詳細(xì)介紹

    這篇文章主要介紹了Ubuntu LTS服務(wù)器部署Jenkins詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • CentOS下Lighttpd Web服務(wù)器安裝與配置方法

    CentOS下Lighttpd Web服務(wù)器安裝與配置方法

    CentOS下Lighttpd Web服務(wù)器安裝與配置方法,需要的朋友可以參考下。
    2011-04-04
  • linux下安裝nginx(圖文教程)

    linux下安裝nginx(圖文教程)

    本篇文章主要介紹了linux下安裝nginx,Nginx是一款輕量級(jí)的Web服務(wù)器。有需要的朋友可以了解一下。
    2016-11-11

最新評(píng)論