服務端調整系統的引數,在/etc/sysctl.conf中:
◦net.core.somaxconn = 2048主要看這幾項:◦net.core.rmem_default = 262144
◦net.core.wmem_default = 262144
◦net.core.rmem_max = 16777216
◦net.core.wmem_max = 16777216
◦net.ipv4.tcp_rmem = 4096 4096 16777216
◦net.ipv4.tcp_wmem = 4096 4096 16777216
◦net.ipv4.tcp_mem = 786432 2097152 3145728
◦net.ipv4.tcp_max_syn_backlog = 16384
◦net.core.netdev_max_backlog = 20000
◦net.ipv4.tcp_fin_timeout = 15
◦net.ipv4.tcp_max_syn_backlog = 16384
◦net.ipv4.tcp_tw_reuse = 1
◦net.ipv4.tcp_tw_recycle = 1
◦net.ipv4.tcp_max_orphans = 131072
◦◦/sbin/sysctl -p 生效
net.ipv4.tcp_rmem 用來配置讀緩衝的大小,三個值,第乙個是這個讀緩衝的最小值,第三個是最大值,中間的是預設值。我們可以在程式中修改讀緩衝的大小,但是不能超過最小與最大。為了使每個socket所使用的記憶體數最小,我這裡設定預設值為4096。
net.ipv4.tcp_wmem 用來配置寫緩衝的大小。
讀緩衝與寫緩衝在大小,直接影響到socket在核心中記憶體的占用。
而net.ipv4.tcp_mem則是配置tcp的記憶體大小,其單位是頁,而不是位元組。當超過第二個值時,tcp進入pressure模式,此時tcp嘗試穩定其記憶體的使用,當小於第乙個值時,就退出pressure模式。當記憶體占用超過第三個值時,tcp就拒絕分配socket了,檢視dmesg,會打出很多的日誌「tcp: too many of orphaned sockets」。
另外net.ipv4.tcp_max_orphans這個值也要設定一下,這個值表示系統所能處理不屬於任何程序的socket數量,當我們需要快速建立大量連線時,就需要關注下這個值了。當不屬於任何程序的socket的數量大於這個值時,dmesg就會看到」too many of orphaned sockets」。
參考:
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...
高負載web伺服器linux核心引數調整
參考 linux系統中 sysctl 引數優化 tcp 高階選項設定 伺服器在高併發時,會建立大量連線,這就需要設定tcp相關引數來提供伺服器效能。1.檔案描述符最大數調整。修改 vi etc security limits.conf 值 在裡面新增一行 nofile 65535 儲存重啟,再用命令...
效能測試 伺服器引數調整
1 cpu負載均衡 安裝 yum installirqbalance 使用 service irqbalance 2 ulimit u 3 檢視作業系統版本 cat proc version cat etc issue cat etc redhat release 4 檢視網絡卡配置 cat pro...