ActiveMQ最大連接數(shù)測試

2018.11.25更新

現(xiàn)在回頭看看這篇文章仔雷,其實是有問題的「鸨蹋看看閱讀量已經(jīng)到了3000借杰,感覺還是需要更正一下。

ActiveMQ的傳統(tǒng)配置使用的BIO模式进泼,也是Blocking IO模式蔗衡,在這種模式下,ActiveMQ的每一個客戶端所建立的連接乳绕,需要使用一個線程來承載绞惦,JVM的默認配置里Xss=1024,也就是每個線程需要1MB堆外內(nèi)存洋措,這樣就導致了前期測試的時候發(fā)現(xiàn)堆外內(nèi)存會影響連接數(shù)济蝉。

在高并發(fā)的情況下,使用BIO模式是很危險的。在我們的環(huán)境中已經(jīng)出現(xiàn)了堆外內(nèi)存溢出的情況王滤。所以建議都使用NIO模式贺嫂,NIO模式里不再使用線程來承載連接,而是使用連接池來承載請求雁乡。特別是連接數(shù)量上千的時候第喳。

在AMQ的官網(wǎng)里有類似的描述
If you want to scale your broker to support thousands of connections to it, you need to first find the limits of number of threads JVM process is allowed to create. Then you can set these properties to some value below that (broker need more threads to operate normally). For more information on thread usage by destinations and how to limit those, please take a look at Scaling Queues or this configuration file. For example you can add the following
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS -Dorg.apache.activemq.transport.nio.SelectorManager.corePoolSize=2000 -Dorg.apache.activemq.transport.nio.SelectorManager.maximumPoolSize=2000 -Dorg.apache.activemq.transport.nio.SelectorManager.workQueueCapacity=1024"to the startup script (${ACTIVEMQ_HOME}/bin/env for example) to have a constant pool of 2000 threads handling connections. With the setting like this, the broker should be able to accept the number of connections up to the system limits. Of course, accepting connections is just one part of the story, so there are other limits to vertically scaling the broker.

也就是首先需要調(diào)整為NIO模式,而后對NIO模式進行核心線程池踱稍、最大線程池容量和線程池隊列容量的配置墩弯。

原文

在項目前期對amq的測試過程中,我們摸索出一臺4C8G的amq可以支持的最大連接數(shù)約為6000個寞射。最近和其它的項目合作,他們進行了一次連接數(shù)的測試锌钮,得到9000個連接才會導致mq宕機的結(jié)果桥温。3000個連接的差異意味著我的測試中一定有什么不對。所以這兩天研究了一下mq的連接機制梁丘,也進行了幾次測試侵浸,現(xiàn)在需要總結(jié)一下。

2C4G的amq氛谜,env的配置里Jvm的配置我配置成了Xms4G Xmx6G掏觉。

嗯,基本上就是我一開始以為這臺機器是4C8G值漫,配錯了……

使用客戶端測試澳腹,連接池Poolconnection的方式,能支持的連接數(shù):

Xms4G Xmx6G:2823
Xms256m Xmx1G:8160

這里連接數(shù)的測試是測試到mq直接被壓垮為止杨何,也就是說在8160個連接的時候酱塔,Amq的日志顯示報錯并且amq進程停止。

也就是說jvm的內(nèi)存設(shè)置并不是越大越好的危虱。

接著測試了一下羊娃,6000個連接的時候,2C4G的amq仍然可以正常跑埃跷。

結(jié)論:AMQ的JVM堆內(nèi)存設(shè)置不是越大越好的蕊玷。

究其原因,每個往AMQ的連接弥雹,AMQ都會建立一個線程與之對應垃帅,而后定時發(fā)送心跳,因此連接數(shù)量其實就是單個進程能建立的線程數(shù)剪勿,每個線程建立時會使用jvm堆內(nèi)存外的內(nèi)存挺智,所以jvm內(nèi)存設(shè)置小,反而連接數(shù)多

百度了一下,相關(guān)說明

JVM中可生成的最大Thread數(shù)量

影響線程數(shù)量的因素有下面幾個:

  • -Xms: intial java heap size
  • -Xmx: maximum java heap size
  • -Xss: the stack size for each thread
  • 系統(tǒng)限制: 系統(tǒng)最大可開線程數(shù)

增大堆內(nèi)存(-Xms赦颇,-Xmx)會減少可創(chuàng)建的線程數(shù)量二鳄,增大線程棧內(nèi)存(-Xss,32位系統(tǒng)中此參數(shù)值最小為60K)也會減少可創(chuàng)建的線程數(shù)量媒怯。

系統(tǒng)限制:
/proc/sys/kernel/pid_max订讼,
/proc/sys/kernel/thread-max,
max_user_process(ulimit -u)扇苞,
/proc/sys/vm/max_map_count欺殿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鳖敷,隨后出現(xiàn)的幾起案子脖苏,更是在濱河造成了極大的恐慌,老刑警劉巖定踱,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棍潘,死亡現(xiàn)場離奇詭異,居然都是意外死亡崖媚,警方通過查閱死者的電腦和手機亦歉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來畅哑,“玉大人肴楷,你說我怎么就攤上這事≤牛” “怎么了赛蔫?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長泥张。 經(jīng)常有香客問我濒募,道長,這世上最難降的妖魔是什么圾结? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任瑰剃,我火速辦了婚禮,結(jié)果婚禮上筝野,老公的妹妹穿的比我還像新娘晌姚。我一直安慰自己,他們只是感情好歇竟,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布挥唠。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上馒铃,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天恋博,我揣著相機與錄音,去河邊找鬼竖哩。 笑死该抒,一個胖子當著我的面吹牛懂算,可吹牛的內(nèi)容都是我干的窿祥。 我是一名探鬼主播株憾,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晒衩!你這毒婦竟也來了嗤瞎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤听系,失蹤者是張志新(化名)和其女友劉穎贝奇,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體靠胜,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡掉瞳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了髓帽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡脑豹,死狀恐怖郑藏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瘩欺,我是刑警寧澤必盖,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站俱饿,受9級特大地震影響歌粥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拍埠,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一失驶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧枣购,春花似錦嬉探、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至分瘾,卻和暖如春胎围,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工白魂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留汽纤,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓碧聪,卻偏偏與公主長得像冒版,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子逞姿,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容