为了账号安全,请及时绑定邮箱和手机立即绑定

linux线上环境jetty调优方案

标签:
Java

前段时间开发了一个数据上报的系统,

1、内存调优:

打开jetty根目录下的bin/jetty.sh文件,修改配置项JAVA_OPTIONS的配置即可。我这里使用的是如下配置,大家可以进行参考:

JAVA_OPTIONS="-server -Xms6G -Xmx6G -Xmn2G -XX:SurvivorRatio=32 -XX:MaxTenuringThreshold=5 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=85 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:-ReduceInitialCardMarks -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"

我这里设置的最大内存占用为6G,最小内存占用2G。注意:这个值需要你根据自己的服务器内存来进行配置。


2、配置jetty的线程池:

当系统的内存和性能够用的时候,我们可以修改jetty的最大线程数来实现提高单台系统的最高并发,可以修改etc/jetty.xml配置文件中的如下值:这里配置的最大线程数为600

https://img1.sycdn.imooc.com//5bc040ff0001ab5210420074.jpg


3、观察线上环境性能图:

---我这里使用的是javamelody插件来进行分析

  • 内存图:通过查看该图的内存最大值为6G,也就是我们配置的最大值,且自动进行垃圾回收后,占用内存值下降明显

https://img1.sycdn.imooc.com//5bc041b80001063411760526.jpg

  • 活动线程图:从这里的活动线程图可以看到,最大值为我们配置的600,当然,这里的活动线程数为600并不代表能抗住的并发只有600,这里出现了活动线程数占用如此之多,只是因为有一次出现了kafka被运维配置错误的情况...正常情况下,并发值再高,活动线程数一般是稳定在100之下的。

    https://img1.sycdn.imooc.com//5bc0423b0001840d11710537.jpg

  • 请求统计图:这里是实时统计请求数的图,因为用户量还不是很多,这里的最高值也只有20k+,内网测试500M内存200个线程并发能达到70K+,因为线上服务器没敢轻易尝试。

    https://img1.sycdn.imooc.com//5bc0430e00017fe811990537.jpg

  • 请求并发量:这个值我一直在纠结,该系统的内网用200个线程压,吞吐量为1k+/s左右,但是江湖传闻,可以使用netstat命令来查看某个端口的并发量,故则测试环境同样用200个线程压,使用netstat命令查看并发结果如下:8K+,内网..,这个系统能抗住的并发量我到底还是没有办法压出来,只知道吞吐量为1800/s左右。当然,如果扛不住就分布式,至少现在没有出现扛不住的情况,只是希望好心人能告诉我如何测试系统能抗住的最高并发的方式,感谢!

    https://img1.sycdn.imooc.com//5bc044550001d69804520038.jpg


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
19
获赞与收藏
45

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消