一个同时在线人数为500人的电商网站,TOMCAT设置并发数以及mysql数据库连接数

时间:2024-04-11 11:50:21

请问各位一下,如果现在有一个每天同时在线人数为500人的电商网站,使用阿里云服务器的配置如图
一个同时在线人数为500人的电商网站,TOMCAT设置并发数以及mysql数据库连接数
,用的是struts+hibernate+spring开发,使用tomcat,如果该网站上线了,那我该如何设置tomcat的连接数,以及mysql服务的最大连接数这些参数?大家有什么建议吗,或者有这方面相关的资料让我参考下吗?
tomcat 最大连接数配置修改 server.xml。Connector 标签添加 maxThreads=“500” 即可。这个默认是 200。
具体配置见官方文档:
https://tomcat.apache.org/tomcat-6.0-doc/config/http.html

事实上,tomcat 的最大连接数配的就是 tomcat 自己封装的线程池的最大线程数。这个最大连接数可能会满足你的需求,但不见得就是你的最优数目。
如果你的业务是计算密集型的:
在计算密集型应用中,线程池的大小应该等同于主机中 CPU 的数量。再添加更多线程将会打断请求的处理,因为线程的上下文切换也会延迟响应时间。一般来说,如果你进程里有 1000 + 个线程,CPU 基本很多时间都浪费在线程切换上了。所以 tomcat 默认 200 最大连接数不是没有道理的。
非阻塞型 IO 应用将会是 CPU 密集型的,因为在请求得到处理的时候没有线程等待时间。
如果你的业务是 IO 密集型的:
决定 IO 等待应用的线程池大小会由于依赖于下游系统的响应时间而变得更加复杂,因为一个线程在其他系统响应之前始终是阻塞的

所以具体要看你具体业务处理类型了。

个人建议:对于并发数要求很高的,如果计算量很大(比如很多编解码操作),多申请 CPU 核数;对于产生对象很多的,多申请内存;而对于很多 IO 操作的,带宽一定要跟上,比如你只申请了 2MB,如果你的系统和外部交互频繁,个人经验,2MB 远远不够。

另外,mysql 服务的连接数你多去看看连接池的东西。

那请问mysql服务里面最大连接数设置完,程序中我这里是不是也要对应mysql服务里的配置

一个同时在线人数为500人的电商网站,TOMCAT设置并发数以及mysql数据库连接数
我觉得这个需要完整的 performance 测试,各种情况都测试得出一个比较合适的结果,而不是直接设置多少就好