返回

提问 添加收藏

Java,单机服务器如何充分利用服务器性能,达到最大并发量?

本页包含4张图片,默认未加载,显示所有图片

snailkky 发布于 2020年03月25日 (共有12个回帖)

23号当天12点一瞬间有大量的用户涌进来,具体多少人不好说,我看TCP链接是6千左右。

我的服务器配置如下:

数据库是使用阿里云的PolarDB,8核32GB,有读写分离,最大IOPS是64000,我查看过数据库相关压力,数据库几乎没有波动,排除是数据库原因造成的,我们的业务相对简单,且大部分查询是单表查询,数据量很小。

服务器是使用阿里云的ECS,8核16G,CPU占用最高不到百分之二十,基本都在百分之五左右,内存占用也没有什么波动,CPU和内存没有充分得到利用。

我是使用的spring boot 部署,容器是tomcat,配置如下:

server.tomcat.accept-count=500
server.tomcat.max-connections=30000
server.tomcat.max-threads=2000
server.servlet.session.timeout=3600s
server.max-http-header-size=1024000

我启动的时候给JVM分配了内存,命令如下:

     nohup java -server  -Xms10240m -Xmx10240m -jar xxx.jar &

另外我使用的是nginx代理到tomcat的,当天高峰期服务瘫痪的时候,nginx部署的另外一个静态页也同时不能访问,所以我怀疑是nginx或tomcat在哪一个环节出现了问题。

以下是当天12点-16点的一些服务器监控截图:

    

点击加载图片

 

点击加载图片

点击加载图片

点击加载图片

所以我想请教一下大家,这是哪个环节的问题造成了瓶颈,有哪些优化方案?

JavaApache TomcatNginxLinux
文明上网,理性发言
下一页  页次 1/2
客户端 Android iPhone WP7