nginx想要支援高併發的配置一般是8核16g,最多支援的cpu是8核,多了也不能發揮其效能,要是想支援10w併發,在負載前面就要加一次lvs用4層再次負載。
要新增2個配置,檔案開啟數,程序開啟數
限制使用者資源配置檔案:/etc/security/limits.conf
nofile 是修改開啟檔案數
~]# vim /etc/security/limits.conf 新增檔案開啟數
每行的格式:
使用者名稱/@使用者組名 型別(軟限制/硬限制) 選項 值
* soft nofile 100001
* hard nofile 100002
root soft nofile 100001
root hard nofile 100002
注:soft是乙個警告值,而hard則是乙個真正意義的閥值,超過就會報錯。soft一定要比hard小。最大開啟的檔案數(以檔案描敘符,file descripter計數)
~]# ulimit -n 100001 臨時修改立馬生效,永久生效要配合修改配置檔案
nproc 修改程序連線數量
~]# vim /etc/security/limits.conf 新增程序開啟數
~]# ulimit -u 66666 臨時修改立馬生效,永久生效要配合修改配置檔案
最後可以用
~]# ulimit -a查詢
open files (-n) 1024 開啟的檔案個數限制
max user processes (-u) 27955 最大的使用者程序數限制
································網路核心修改優化································
~]# vim /etc/sysctl.conf
net.ipv4.tcp_synack_retries = 0
#防syn flood(洪水攻擊) 預設為5,表示重發5次,每次等待30~40秒,即「半連線」預設hold住大約180秒
net.ipv4.tcp_syn_retries = 1
#在核心放棄建立連線之前傳送syn包的數量。
net.ipv4.tcp_max_syn_backlog = 20480
#表示syn佇列的長度,預設為1024,加大佇列長度為8192,可以容納更多等待連線的網路連線數。
net.ipv4.tcp_syncookies = 1
#表示開啟syn cookies。當出現syn等待佇列溢位時,啟用cookies來處理,可防範少量syn攻擊,預設為0,表示關閉;
net.ipv4.tcp_tw_reuse = 1
#表示開啟重用。允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉;
net.ipv4.tcp_tw_recycle = 1
#表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉;
net.ipv4.tcp_fin_timeout = 10
#修改系統預設的 timeout 時間。 在經過這樣的調整之後,除了會進一步提公升伺服器的負載能力之外,還能夠防禦小流量程度的dos、cc和syn攻擊。
fs.file-max = 819200
#系統允許的檔案控制代碼的最大數目,因為連線需要占用檔案控制代碼
net.core.somaxconn = 65535
#用來應對突發的大併發connect 請求
net.core.rmem_max = 1024123000
#最大的tcp 資料接收緩衝(位元組)
net.core.wmem_max = 16777126
#最大的tcp 資料傳送緩衝(位元組)
net.core.netdev_max_backlog = 165536
#網路裝置接收資料報的速率比核心處理這些包的速率快時,允許送到佇列的資料報的最大數目
net.ipv4.ip_local_port_range = 10000 65535
#表示用於向外連線的埠範圍。預設情況下很小:32768到61000,改為10000到65000。(注意:這裡不要將最低值設的太低,否則可能會占用掉正常的埠!)
調整mtu最大傳輸單元:
~]# ifconfig ens33 mtu 9000
mtu,即maximum transmission unit(最大傳輸單元),此值設定tcp/ip協議傳輸資料報時的最大傳輸單元。
系統與isp之間mtu的不符就會直接導致資料在網路傳輸過程中不斷地進行分包、組包,浪費了寶貴的傳輸時間,也嚴重影響了寬頻的工作效率
注意,以下引數面對外網時,不要開啟。因為***很明顯。
#當出現 半連線 佇列溢位時向對方傳送syncookies,調大 半連線 佇列後沒必要
net.ipv4.tcp_syncookies = 0
#time_wait狀態的連線重用功能
net.ipv4.tcp_tw_reuse = 0
#時間戳選項,與前面net.ipv4.tcp_tw_reuse引數配合
net.ipv4.tcp_timestamps = 0
#time_wait狀態的連線**功能
net.ipv4.tcp_tw_recycle = 0
windows 更改最大動態埠數
最近業務遇到乙個奇怪的問題,一台iis伺服器,居然報埠不足的錯誤,分析應該是伺服器可用的動態埠數不夠了,windows預設的動態埠範圍為 1024 5000,也就是最多3977個動態埠可用,如果iis的請求量過大,有可能出現埠分配不了的情況。解決方案如下 1,提高可用的動態埠數 修改登錄檔 hkey...
hbase的檔案數和程序數優化
1 檔案數 ulimit n 可檢視linux系統的開啟檔案數限制,推薦至少10000以上,一般是10240,因為最好是1024的倍數。每個列族至少有乙個storefile,如果region載入,可能超過6個storefile,以下公式計算regionserver上開啟檔案的數量 storefile...
連線數 埠範圍 最大檔案數
1.有些linux系統最大tcp鏈結數比較小,無法支援同時併發6w量的tcp鏈結?原因 最大tcp連線數和系統允許開啟的最大檔案數,使用者允許開啟的最大檔案數,tcp網路連線可用的埠範圍有關,取上述的最小值 一般的設定規則為 系統最大檔案數 可用埠 使用者最大檔案數 修改可用埠數 檢視埠範圍 sys...