V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
justlikemaki
V2EX  ›  编程

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

  •  
  •   justlikemaki · 2015-03-31 11:12:08 +08:00 · 4364 次点击
    这是一个创建于 3307 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    每个请求都是输出100w位的 /dev/urandom ,我就不行谁能优化下去。
    justlikemaki
        9
    justlikemaki  
    OP
       2015-03-31 14:21:52 +08:00
    @sujin190 100ms的这个确实处理不了,因为这里是调别人的接口
    justlikemaki
        10
    justlikemaki  
    OP
       2015-03-31 14:24:18 +08:00
    @est 请问是什么意思呢?
    saximoer
        11
    saximoer  
       2015-03-31 14:28:32 +08:00
    @justlikemaki 中间又远程调用了别人的接口???实在不行就每一步调用的你打日志记录时间
    看看哪一块耗时较大
    justlikemaki
        12
    justlikemaki  
    OP
       2015-03-31 14:30:55 +08:00
    @saximoer 。。就是调接口这个时间啊
    cfan8
        13
    cfan8  
       2015-03-31 14:59:15 +08:00
    线程池大小改改?可能线程数量少了
    justlikemaki
        14
    justlikemaki  
    OP
       2015-03-31 15:05:08 +08:00
    @cfan8 jdbc线程池设的最大100
    cfan8
        15
    cfan8  
       2015-03-31 15:08:50 +08:00   ❤️ 1
    @justlikemaki 如果你用的不是异步IO的话,整个链上的每一步线程池都会有影响。Spring的对象池最好也看一下。
    我之前做SSH性能还是很高的,一台还算牛逼的服务器带两个虚拟机做负载均衡,并发能上2W,不太可能是Spring的问题。
    justlikemaki
        16
    justlikemaki  
    OP
       2015-03-31 15:34:32 +08:00
    @cfan8 异步io?是改tomcat么?Spring的对象池是什么啊?新手不太懂啊。
    justlikemaki
        17
    justlikemaki  
    OP
       2015-03-31 15:35:23 +08:00
    @cfan8 怎么看对象池啊?
    sujin190
        18
    sujin190  
       2015-03-31 17:25:54 +08:00   ❤️ 1
    @justlikemaki 我明白了,远程http?java不懂,Python的推荐tornado,或是gevent,不过异步io应该可以解决你的问题
    justlikemaki
        19
    justlikemaki  
    OP
       2015-03-31 18:00:47 +08:00
    @sujin190 谢谢,我也终于知道你们说的异步io是什么了!
    atom
        20
    atom  
       2015-03-31 18:07:58 +08:00
    下载一个试用版的JProfiler跑跑看,胜过这里空对空
    mgcnrx11
        21
    mgcnrx11  
       2015-03-31 19:52:44 +08:00
    @atom 靠谱,分析必须结合实际
    justlikemaki
        22
    justlikemaki  
    OP
       2015-04-02 18:37:39 +08:00
    @cfan8 配置spring的异步老是提示<async-supported>true</async-supported>没有加这个,但是我确实加在web.xml中了啊。大神,能帮帮我么?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1586 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:50 · PVG 00:50 · LAX 09:50 · JFK 12:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.