请问 springMVC 的每秒处理速度能达到多少?

2015-03-31 11:12:08 +08:00
 justlikemaki

本人正在为公司开发一套消息转发系统,但是经过多次测试,程序的处理速度只能达到25次每秒,屏蔽了写表和写log等操作也是如此。有一个固定时间消耗在100ms左右。不管是单用户多次请求还是多用户多次请求都是每秒处理25个请求。请教各位java达人,帮忙分析下原因出在哪里?

4502 次点击
所在节点    编程
22 条回复
Septembers
2015-03-31 11:45:23 +08:00
抛开业务谈性能是扯淡
Septembers
2015-03-31 11:48:17 +08:00
消息转发 是不是可以考虑引入Servlet 3的async特性?
justlikemaki
2015-03-31 11:54:09 +08:00
@Septembers 处理业务的时间就是那个固定耗时100毫秒左右嘛。还有你提到的异步处理,在我们的业务上实现不了,它的整个流程必须是联通的。
feilaoda
2015-03-31 11:54:12 +08:00
万亿每秒
otakustay
2015-03-31 12:17:31 +08:00
业务处理100ms,也就是说1s可以做10次处理,你能做到25req/s,说明你的服务器差不多有4核,或者这100ms里有不少的IO处理?

另外,100ms的业务还是请优化下吧
sujin190
2015-03-31 12:35:04 +08:00
@justlikemaki 异步处理似乎不是这个意思吧
sujin190
2015-03-31 12:36:10 +08:00
100ms确实有点慢,线程开的不够?
est
2015-03-31 13:06:05 +08:00
这都能分析出原因就见鬼了。

每个请求都是输出100w位的 /dev/urandom ,我就不行谁能优化下去。
justlikemaki
2015-03-31 14:21:52 +08:00
@sujin190 100ms的这个确实处理不了,因为这里是调别人的接口
justlikemaki
2015-03-31 14:24:18 +08:00
@est 请问是什么意思呢?
saximoer
2015-03-31 14:28:32 +08:00
@justlikemaki 中间又远程调用了别人的接口???实在不行就每一步调用的你打日志记录时间
看看哪一块耗时较大
justlikemaki
2015-03-31 14:30:55 +08:00
@saximoer 。。就是调接口这个时间啊
cfan8
2015-03-31 14:59:15 +08:00
线程池大小改改?可能线程数量少了
justlikemaki
2015-03-31 15:05:08 +08:00
@cfan8 jdbc线程池设的最大100
cfan8
2015-03-31 15:08:50 +08:00
@justlikemaki 如果你用的不是异步IO的话,整个链上的每一步线程池都会有影响。Spring的对象池最好也看一下。
我之前做SSH性能还是很高的,一台还算牛逼的服务器带两个虚拟机做负载均衡,并发能上2W,不太可能是Spring的问题。
justlikemaki
2015-03-31 15:34:32 +08:00
@cfan8 异步io?是改tomcat么?Spring的对象池是什么啊?新手不太懂啊。
justlikemaki
2015-03-31 15:35:23 +08:00
@cfan8 怎么看对象池啊?
sujin190
2015-03-31 17:25:54 +08:00
@justlikemaki 我明白了,远程http?java不懂,Python的推荐tornado,或是gevent,不过异步io应该可以解决你的问题
justlikemaki
2015-03-31 18:00:47 +08:00
@sujin190 谢谢,我也终于知道你们说的异步io是什么了!
atom
2015-03-31 18:07:58 +08:00
下载一个试用版的JProfiler跑跑看,胜过这里空对空

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/180523

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX