日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

修改Linux内核参数提高服务器并发能力

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 修改Linux内核参数提高服务器并发能力 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.參數設置

查看相關的參數

sysctl -a|grep tcp_keepalive
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_keepalive_time = 160

設置相關的參數

sysctl -w net.ipv4.tcp_keepalive_time = 7500

也可以直接打開

# vim/etc/sysctl.conf

加入net.ipv4.tcp_keepalive_time = 7500,然后保存退出


讓參數生效

# sysctl -p


2.參數相關的說明

/proc/sys/net/ipv4/tcp_keepalive_time
當keepalive起用的時候,TCP發送keepalive消息的頻度。缺省是2小時。
/proc/sys/net/ipv4/tcp_keepalive_intvl
當探測沒有確認時,重新發送探測的頻度。缺省是75秒。
/proc/sys/net/ipv4/tcp_keepalive_probes
在認定連接失效之前,發送多少個TCP的keepalive探測包。缺省值是9。這個值乘以tcp_keepalive_intvl之后決定了,一個連接發送了keepalive之后可以有多少時間沒有回應

tcp_keepalive_time :INTEGER
默認值是7200(2小時)
當keepalive打開的情況下,TCP發送keepalive消息的頻率。(由于目前網絡攻擊等因素,造成了利用這個進行的攻擊很頻繁,曾經也有cu的朋友提到過,說如果2邊建立了連接,然后不發送任何數據或者rst/fin消息,那么持續的時間是不是就是2小時,空連接攻擊?tcp_keepalive_time就是預防此情形的.我個人在做nat服務的時候的修改值為1800秒)

tcp_keepalive_probes:INTEGER
默認值是9
TCP發送keepalive探測以確定該連接已經斷開的次數。(注意:保持連接僅在SO_KEEPALIVE套接字選項被打開是才發送.次數默認不需要修改,當然根據情形也可以適當地縮短此值.設置為5比較合適)

tcp_keepalive_intvl:INTEGER
默認值為75
探測消息發送的頻率,乘以tcp_keepalive_probes就得到對于從開始探測以來沒有響應的連接殺除的時間。默認值為75秒,也就是沒有活動的連接將在大約11分鐘以后將被丟棄。(對于普通應用來說,這個值有一些偏大,可以根據需要改小.特別是web類服務器需要改小該值,15是個比較合適的值)
$ /proc/sys/net/ipv4/tcp_keepalive_time
$ /proc/sys/net/ipv4/tcp_keepalive_intvl
$ /proc/sys/net/ipv4/tcp_keepalive_probes
這3個參數與TCP KeepAlive有關.默認值是:
tcp_keepalive_time = 7200 seconds (2 hours)
tcp_keepalive_probes = 9
tcp_keepalive_intvl = 75 seconds
意思是如果某個TCP連接在idle 2個小時后,內核才發起probe.如果probe9次(每次75秒)不成功,內核才徹底放棄,認為該連接已失效.對服務器而言,顯然上述值太大. 可調整到:
/proc/sys/net/ipv4/tcp_keepalive_time 1800
/proc/sys/net/ipv4/tcp_keepalive_intvl 30
/proc/sys/net/ipv4/tcp_keepalive_probes 3

tcp_keepalive_intvl:探測消息發送的頻率
tcp_keepalive_probes:TCP發送keepalive探測以確定該連接已經斷開的次數
tcp_keepalive_time:當keepalive打開的情況下,TCP發送keepalive消息的頻率


默認:

# cat /proc/sys/net/ipv4/tcp_keepalive_time? 7200 ?
# cat /proc/sys/net/ipv4/tcp_keepalive_intvl? 75 ?
# cat /proc/sys/net/ipv4/tcp_keepalive_probes? 9


修改:
# echo 600 > /proc/sys/net/ipv4/tcp_keepalive_time ?
# echo 60 > /proc/sys/net/ipv4/tcp_keepalive_intvl ?
# echo 20 > /proc/sys/net/ipv4/tcp_keepalive_probes


有關內核級別的keepalive和time_wait的優化調整

vi /etc/sysctl

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_fin_timeout = 30
net.core.netdev_max_backlog =8096

修改完記的使用sysctl -p 讓它生效

以上參數的注解
/proc/sys/net/ipv4/tcp_tw_reuse
該文件表示是否允許重新應用處于TIME-WAIT狀態的socket用于新的TCP連接.

/proc/sys/net/ipv4/tcp_tw_recycle
recyse是加速TIME-WAIT sockets回收

對tcp_tw_reuse和tcp_tw_recycle的修改,可能會出現.warning, got duplicate tcp line warning, got BOGUS tcp line.上面這二個參數指的是存在這兩個完全一樣的TCP連接,這會發生在一個連接被迅速的斷開并且重新連接的情況,而且使用的端口和地址相同.但基本 上這樣的事情不會發生,無論如何,使能上述設置會增加重現機會.這個提示不會有人和危害,而且也不會降低系統性能,目前正在進行工作

/proc/sys/net/ipv4/tcp_keepalive_time
表示當keepalive起用的時候,TCP發送keepalive消息的頻度.缺省是2小時

/proc/sys/net/ipv4/tcp_fin_timeout?? 最佳值和BSD一樣為30
fin_wait1狀態是在發起端主動要求關閉tcp連接,并且主動發送fin以后,等待接收端回復ack時候的狀態.對于本端斷開的socket連接,TCP保持在FIN-WAIT-2狀態的時間.對方可能會斷開連接或一直不結束連接或不可預料的進程死亡.

/proc/sys/net/core/netdev_max_backlog
該文件指定了,在接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目.

tcp狀態

LISTEN:偵聽來自遠方的TCP端口 的連接請求
SYN-SENT:再發送連接請求后等待匹配的連接請求
SYN-RECEIVED:再收到和發送一個連接請求后等待對方對連接 請求的確認
ESTABLISHED:代表一個打開的連接
FIN-WAIT-1:等待遠程TCP連接中斷請求,或先前的連接中斷請求的確認
FIN- WAIT-2:從遠程TCP等待連接中斷請求
CLOSE-WAIT:等待從本地用戶發來的連接中斷請求
CLOSING:等待遠程TCP對 連接中斷的確認
LAST-ACK:等待原來的發向遠程TCP的連接中斷請求的確認
TIME-WAIT:等待足夠的時間以確保遠程TCP接 收到連接中斷請求的確認
CLOSED:沒有任何連接狀態


參考:

Linux內核參數——優化網絡速度

linux 內核參數優化

tcp_keepalive的設置

優化Linux下的內核TCP參數來提高服務器負載能力

Linux中keepalive的使用

linux下使用TCP存活(keepalive)定時器

Apache 的 KeepAlive 和 TCP/IP 的 TIME_WAIT


總結

以上是生活随笔為你收集整理的修改Linux内核参数提高服务器并发能力的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。