Hi, Batch Message is designed for the streaming case in which you could get a high throughput.
Best Regards, > 在 2018年6月15日,09:39,Jason Joo <[email protected]> 写道: > > Hello, > > We have a cluster with 2m-2s architecture. TPS is between 1000 to 6000 and > about 200 million messages in 24 hours typically. > The commit log size is about 200GB and can be cached in memory fully. > > Our server(one rocketmq each, 4 servers in this cluster): > 6 core Xeon-E5-2620 x 2 (24 thread total) > 256G ddr3 1600MHz > 240G Intel SSD 530(SSDSC2BW240H6) x 6 (Raid 1) > > To "IMPROVE" producing performance(mainly reduce network packages) we start > to use batch sending feature, and we begain to receive so much "slow log" > after that(batch is 50~70, 100~1000B per message body). > > After some tuning(osPageCacheBusyTimeOutMills, waitTimeMillsInSendQueue to > 500ms, etc) we only increasing the "time cost" printed in slow log. > > The pagecache rt in log before using batch sending: > > [PAGECACHERT] TotalPut 50650, PutMessageDistributeTime [<=0ms]:44250 > [0~10ms]:5865 [10~50ms]:514 [50~100ms]:10 [100~200ms]:11 [200~500ms]:0 > [500ms~1s]:0 [1~2s]:0 [2~3s]:0 [3~4s]:0 [4~5s]:0 [5~10s]:0 [10s~]:0 > > after: > > [PAGECACHERT] TotalPut 1970, PutMessageDistributeTime [<=0ms]:1428 > [0~10ms]:459 [10~50ms]:4 [50~100ms]:2 [100~200ms]:5 [200~500ms]:10 > [500ms~1s]:10 [1~2s]:25 [2~3s]:24 [3~4s]:3 [4~5s]:0 [5~10s]:0 [10s~]:0 > > > > After reading CommitLog i found the whole batch message is surrounded in one > lock together. So it make sense the average executing time of PUT would > increase. but we alse will receive some "in lock slow log" which will trigger > flow control for a while: > > 2018-06-14 21:02:42 WARN SendMessageThread_102 - [NOTIFYME]putMessages in > lock cost time(ms)=1373, bodyLength=49380 > AppendMessageResult=AppendMessageResult{status=PUT_OK, > wroteOffset=68238809866237, wroteBytes=54420, > msgId='0A0A63CF00002A9F00003E1016059FFD,0A0A63CF00002A9F00003E101605A37D,0A0A63CF00002A9F00003E101605A6DE,0A0A63CF00002A9F00003E101605A8C3,0A0A63CF00002A9F00003E101605ABA3,0A0A63CF00002A9F00003E101605AE81,0A0A63CF00002A9F00003E101605B066,0A0A63CF00002A9F00003E101605B24B,0A0A63CF00002A9F00003E101605B4CC,0A0A63CF00002A9F00003E101605B7F5,0A0A63CF00002A9F00003E101605BB78,0A0A63CF00002A9F00003E101605BE70,0A0A63CF00002A9F00003E101605C19F,0A0A63CF00002A9F00003E101605C4BF,0A0A63CF00002A9F00003E101605C78B,0A0A63CF00002A9F00003E101605CAE4,0A0A63CF00002A9F00003E101605CDC4,0A0A63CF00002A9F00003E101605D206,0A0A63CF00002A9F00003E101605D581,0A0A63CF00002A9F00003E101605D83B,0A0A63CF00002A9F00003E101605DB5B,0A0A63CF00002A9F00003E101605DED0,0A0A63CF00002A9F00003E101605E1AA,0A0A63CF00002A9F00003E101605E54D,0A0A63CF00002A9F00003E101605E8C7,0A0A63CF00002A9F00003E101605EB92,0A0A63CF00002A9F00003E101605EF0C,0A0A63CF00002A9F00003E101605F0D8,0A0A63CF00002A9F00003E101605F346,0A0A63CF00002A9F00003E101605F5FB,0A0A63CF00002A9F00003E101605F8D6,0A0A63CF00002A9F00003E101605FC51,0A0A63CF00002A9F00003E101605FFD1,0A0A63CF00002A9F00003E101606019D,0A0A63CF00002A9F00003E1016060509,0A0A63CF00002A9F00003E1016060816,0A0A63CF00002A9F00003E1016060B7A,0A0A63CF00002A9F00003E1016060E61,0A0A63CF00002A9F00003E10160611DF,0A0A63CF00002A9F00003E1016061558,0A0A63CF00002A9F00003E10160618A6,0A0A63CF00002A9F00003E1016061B68,0A0A63CF00002A9F00003E1016061E6B,0A0A63CF00002A9F00003E10160621E5,0A0A63CF00002A9F00003E10160624A2,0A0A63CF00002A9F00003E101606281D,0A0A63CF00002A9F00003E1016062AE3,0A0A63CF00002A9F00003E1016062E60,0A0A63CF00002A9F00003E101606313E,0A0A63CF00002A9F00003E101606343A,0A0A63CF00002A9F00003E10160637B5,0A0A63CF00002A9F00003E1016063AE3,0A0A63CF00002A9F00003E1016063E67,0A0A63CF00002A9F00003E1016064218,0A0A63CF00002A9F00003E10160644E0,0A0A63CF00002A9F00003E101606487A,0A0A63CF00002A9F00003E1016064BF4,0A0A63CF00002A9F00003E1016064E61,0A0A63CF00002A9F00003E101606512E,0A0A63CF00002A9F00003E1016065489,0A0A63CF00002A9F00003E101606574F,0A0A63CF00002A9F00003E1016065AE3,0A0A63CF00002A9F00003E1016065CC8,0A0A63CF00002A9F00003E1016065FED,0A0A63CF00002A9F00003E10160662E2,0A0A63CF00002A9F00003E10160664C7,0A0A63CF00002A9F00003E10160667F6,0A0A63CF00002A9F00003E1016066B81,0A0A63CF00002A9F00003E1016066E54,0A0A63CF00002A9F00003E1016067132', > storeTimestamp=1528981361218, logicsOffset=5784993480, pagecacheRT=1373, > msgNum=70} > 2018-06-14 21:02:42 WARN SendMessageThread_102 - not in lock eclipse > time(ms)=1374, bodyLength=49380 > 2018-06-14 21:02:42 WARN SendMessageThread_79 - not in lock eclipse > time(ms)=688, bodyLength=274 > 2018-06-14 21:02:42 WARN SendMessageThread_84 - not in lock eclipse > time(ms)=562, bodyLength=48242 > 2018-06-14 21:02:42 WARN SendMessageThread_107 - not in lock eclipse > time(ms)=839, bodyLength=274 > 2018-06-14 21:02:42 WARN SendMessageThread_97 - not in lock eclipse > time(ms)=1199, bodyLength=49469 > 2018-06-14 21:02:42 WARN SendMessageThread_111 - not in lock eclipse > time(ms)=1307, bodyLength=47329 > 2018-06-14 21:02:42 WARN SendMessageThread_91 - not in lock eclipse > time(ms)=786, bodyLength=275 > 2018-06-14 21:02:42 WARN SendMessageThread_67 - not in lock eclipse > time(ms)=807, bodyLength=575 > 2018-06-14 21:02:42 WARN SendMessageThread_65 - not in lock eclipse > time(ms)=1326, bodyLength=47294 > 2018-06-14 21:02:43 INFO FlushRealTimeService - Flush data to disk costs 2271 > ms > 2018-06-14 21:02:43 WARN SendMessageThread_116 - not in lock eclipse > time(ms)=1542, bodyLength=50039 > 2018-06-14 21:02:43 WARN SendMessageThread_119 - not in lock eclipse > time(ms)=1202, bodyLength=50024 > 2018-06-14 21:02:43 WARN SendMessageThread_55 - not in lock eclipse > time(ms)=1436, bodyLength=907 > > So the question is: > Is batch sending recommended? > It maybe "slower" compared to simple sending, should i increase the > in-lock-timeout? > how we can solve the performance problem(many REJECTREQUEST will generated in > producers), add new Master into the cluster? > > > My question > > best regards, > > Jason >
