开发者社区> 问答> 正文

如何提高系统的并发响应性能?? 400 报错

如何提高系统的并发响应性能?? 400 报错

最近公司在开发一款代理服务器,简单来讲就是一个代理工厂,对真实服务再次封装,起到过滤安全作用及请求格式转换等作用。

这几天一直再弄JVM性能方面的问题,几经调整下来响应与请求比始终都只能在1:10左右,打个比方

写了个java类来模拟客户端请求,最后封装好,放到loadRunner里去压其并发响应效果,但几天下来没什么大的成效

有过类似经历的,能否谈谈经验受教受教啊。

展开
收起
爱吃鱼的程序员 2020-06-03 15:46:20 585 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    用异步实现,具体可以看下netty或者xsocket,两者都有proxy的实现

    ######

    JVM调整只是一方面,最重要的还是从代码入手,使用并发包、NIO等,另外在linux上java程序的性能比在windows上好得多。

    ######

    问题补充说明下:

    操作系统:linux   内存:8G  CUP: 两块 JDK:1.5

    程序以经没什么可调整的了(我自个觉得,最主要是想从JVM这方面把它往上调,能调多少调多少),现在主要是布署在服务器上我的JVM如何调整认其响应速度更快,就目前,(非专业)我自个测下来的情况下2*24H  400个并发(最起码保证有200个足的并发下),接收请求2亿多次,响应才2千多万多点差不多三千那个样子,这个响应比太小了,能否优化JVM把这一性能再往上走进一步呢,(已试过优化JVM确实能提高,之前没优前更差),

    但就目前,本人能力和限优不下去了:

    -server -Xms2048m -Xmx2048m -Xmn768m -XX:+UseTLAB -XX:+UseParNewGC \

    目前的设置如上,朋友们可否指点指点啊!

    ######

    把JDK升级到1.6,因为支持epoll

    ######

    回头去试试

    ######

    一般来说,考虑性能问题,都先要分析清楚到底性能的瓶颈在哪里,哪几个阶段的性能不够,如何针对这几个阶段进行优化,这样大家也才好给你更具体的建议

    ######

    把JDK升级到1.6,因为支持epoll

    试了,JDK换了个1.6的性能确实有了点变化

    ######

    你先把性能瓶颈找到再考虑其他的。

    例如你这个例子,2亿多的请求,实际只响应了几千万条,说明程序的处理能力不够,资源不够。导致程序只能处理一部分的请求,多余的请求丢掉了。是每一个请求的处理时间和资源消耗太大,还是说怎么?如果一定要同步的请求和响应,那么如果你认为你程序没问题的话,也就是加资源的问题。CPU,内存,该加的加吧。

    如果不一定非要请求响应同步,可以把请求和响应异步起来,这样你的并发就可以达到一个很可关的数字。

    ######

           类似的压力己做过,现在我主要的任务是调JVM,因为其它情况下的模拟以经做,最主要原因还是想在现有的硬件配置基础上,把JVM调到最优,对于这个应用而言

           之所以才有这么些响应(应该更多一些,请求是人为做的,目的是让程序在里边做处理过滤掉没意义的部分),但按照预测,不应该这么低,在调试中,遇到JVM有崩掉情况,后发现是内存泄漏导致所至,现在主要是想把JVM调到最优化,有相关经验的可否能分享分享

    ######

    个人觉得还是找到瓶颈,有时候一句不正确的代码都有可能使你的内存用光,可以用jprofile调试下

    2020-06-03 20:58:28
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
面向失败设计 立即下载
Web服务架构变化及性能优化 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载

相关实验场景

更多