千萬併發連線注意點

2021-07-04 20:44:10 字數 691 閱讀 5518

對於一台伺服器來說,支撐千萬併發連線是乙個挑戰,我們來看看有哪些限制,並且如何解決

首先是記憶體問題,預設設定下,系統為每個tcp連線分配4k的rmem和4k的wmem,那麼乙個連線需要8k的記憶體,1kw連線需要80g記憶體。

修改系統的這兩個配置,改為1k的rmem和wmem,則需要的記憶體為20g,實際使用中還會有其他的記憶體開銷,因此最好準備32g或更大的記憶體

sysctl -w net.ipv4.tcp_rmem=4096

sysctl -w net.ipv4.tcp_wmem=4096

然後是檔案描述問題,系統允許開啟的檔案數是有限制的,預設值很小,應當修改

sysctl -w fs.file-max=10485760

還有單程序的檔案數量限制,這個最大值只能到1048576,應當修改

echo 『* soft nofile 1048576』 >> /etc/security/limits.conf #使用者單程序的最大檔案數,使用者登入時生效

echo 『* hard nofile 1048576』 >> /etc/security/limits.conf #使用者單程序的最大檔案數,使用者登入時生效

ulimit -n 1048576 #使用者單程序的最大檔案數 當前會話生效

由於乙個程序最多能夠開啟100w個檔案,因此需要多程序來支援千萬連線,因此server需要執行多個伺服器程序。

Codis 千萬併發下調優

環境 8臺機器 32c 256g,redis 6主6 從在同一臺機器上,dashbaord 也在redis00 上。codis proxy 開8c 每台機器開2個 proxy。萬m 網路,centosos 6.5 核心 2.6.32 431.el6.x86 64。現象 sprak 70 臺機器向 c...

Python連線redis時要注意的點

一 一般連線redis情況 1 from redis import redis2 例項化redis物件 3 rdb redis host localhost port 6379,db 0 4 rdb.set name root 5 name rdb.get name 6 print name 這種情...

單機伺服器支援千萬級併發長連線的壓力測試

很早以前就聽說了c10k,c100k,c1000k等問題,每個問題的解決都是併發程式設計的乙個里程碑。隨著硬體的快速提公升,那麼10m 千萬 併發連線呢?能否做到?如何做到?會有什麼限制?小編對此很好奇,折騰了不少時間,終於有了令人興奮的答案!下面我們使用 庫自帶的例子程式,來跑出乙個單機千萬併發連...