一般會修改兩個檔案,/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執行緒的工作情況 這裡面會顯示...