国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

4G內存服務器epoll并發量最大能達到多少?

2020-07-10 11:22:33
字體:
來源:轉載
供稿:網友

按照題主的意思 是根據內存去算一個最大并發的連接數. 那么首先要找出來單個連接消耗內存的地方.

第一個首先是socket buffer. read 和write 分別有一個, 默認大小在

復制代碼
代碼如下:

/proc/sys/net/ipv4/tcp_rmem (for read)
/proc/sys/net/ipv4/tcp_wmem (for write)

默認大小都是87K和16K, 最低是4K和4K, 最高是2M,2M, 實際使用默認值最低也要保留8K,8K.

然后是邏輯IO緩沖區

就是比如你監聽了recv事件 事件來了 你要有內存可用(一般都是socket建立起就分配好,斷開才會釋放的).
這個內存是自己寫socket程序時候自己控制的, 最低也要4K,4K, 實際使用8K,8K至少.

現在設定一個優化方案和使用場景, 首先假設4G內存全部為空閑(系統和其他進程也要內存的….

假如網絡包的大小都可以控制在4K以下, 假設所有連接的網絡都不會擁堵, 或者擁堵時候的總量在4K以下:
一個連接的內存消耗是4+4+4+4=16K
4G/16K=26.2萬并發

假如網絡包的大小都可以控制在8K以下, 假設所有連接的網絡都不會擁堵, 或者擁堵時候的總量在8K以下
一個socket的內存占用介于 24K ~ 32K之間, 保守的按照32K算
4G/32K=13.1萬并發, 這個在生產環境作為一個純網絡層面的內存消耗, 是可以作為參考的.

假如使用默認配置, 假如所有連接的網絡都出現嚴重擁堵, 不考慮邏輯上的發送隊列的占用,
使用默認配置是2M+2M+8+8 ~= 4M
4G/4M=1024并發 ( …
如果考慮到發送隊列也擁堵的話 自己腦補.

如果只是為了跑分 為了并發而優化, 沒有常駐的邏輯緩沖區 并且socket的網絡吞吐量很小并且負載平滑, 把socket buffer size設置系統最低.
那么是
4G/8K = 52.4萬并發 這個應該是極限值了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永福县| 屯昌县| 应用必备| 荥经县| 九龙坡区| 枣阳市| 新晃| 麻阳| 福泉市| 化州市| 颍上县| 饶阳县| 嘉义市| 安阳县| 博兴县| 玉门市| 武陟县| 黔西县| 南通市| 衡南县| 且末县| 高邮市| 璧山县| 德兴市| 德惠市| 阿拉善左旗| 肇庆市| 江阴市| 毕节市| 德阳市| 绥宁县| 娱乐| 通山县| 安国市| 宜阳县| 静乐县| 仁化县| 鸡东县| 池州市| 麟游县| 米易县|