Linux伺服器高併發的引數調優

2021-10-23 20:42:19 字數 1396 閱讀 4108

一般會修改兩個檔案,/etc/sysctl.conf和/etc/security/limits.conf, 用來配置tcp/ip引數和最大檔案描述符。

修改檔案/etc/sysctl.conf,配置網路引數。

net.ipv4.tcp_wmem = 4096 87380 4161536

net.ipv4.tcp_rmem = 4096 87380 4161536

net.ipv4.tcp_mem = 786432 2097152 3145728

執行/sbin/sysctl -p即時生效。

linux核心本身有檔案描述符最大值的限制,你可以根據需要更改:

系統最大開啟檔案描述符數:/proc/sys/fs/file-max

臨時性設定:echo 1000000 > /proc/sys/fs/file-max

永久設定:修改/etc/sysctl.conf檔案,增加fs.file-max = 1000000

程序最大開啟檔案描述符數

使用ulimit -n檢視當前設定。使用ulimit -n 1000000進行臨時性設定。

要想永久生效,你可以修改vim /etc/security/limits.conf檔案,增加下面的行:

*         hard    nofile      1000000

* soft nofile 1000000

root hard nofile 1000000

root soft nofile 1000000

還有一點要注意的就是hard limit不能大於/proc/sys/fs/nr_open,因此有時你也需要修改nr_open的值。

執行echo 2000000 > /proc/sys/fs/nr_open

檢視當前系統使用的開啟檔案描述符數,可以使用下面的命令:

cat /proc/sys/fs/file-nr
其中第乙個數表示當前系統已分配使用的開啟檔案描述符數,第二個數為分配後已釋放的(目前已不再使用),第三個數等於file-max。

總結一下:

所有程序開啟的檔案描述符數不能超過/proc/sys/fs/file-max

單個程序開啟的檔案描述符數不能超過user limit中nofile的soft limit

nofile的soft limit不能超過其hard limit

nofile的hard limit不能超過/proc/sys/fs/nr_open

linux伺服器調整引數支援高併發

服務端調整系統的引數,在 etc sysctl.conf中 net.core.somaxconn 2048 net.core.rmem default 262144 net.core.wmem default 262144 net.core.rmem max 16777216 net.core.wm...

linux伺服器調整引數支援高併發

服務端調整系統的引數,在 etc sysctl.conf中 net.core.somaxconn 2048 net.core.rmem default 262144 net.core.wmem default 262144 net.core.rmem max 16777216 net.core.wm...

Linux伺服器高併發實踐經歷

作為乙個 離職早的野生程式設計師,業務方面還可以達到忽悠別人的水平,但上公升到效能層面那就是硬傷。真是天上掉餡餅,公司分配了乙個測試效能的任務,真是感覺我的天空星星都亮了。高併發主要限制因素 cpu 網路流量 記憶體 系統配置 用top看cpu利用率,按1檢視每個cpu執行緒的工作情況 這裡面會顯示...