【发布时间】:2025-12-02 09:10:02
【问题描述】:
我的应用程序是Piwik Server,它接收来自放置在数百个网站上的跟踪代码的传入跟踪数据。当这些跟踪请求进来时,大部分工作负载是每秒数百次对数据库的小型写入。我正在使用带有 JDBC 和 Hibernate 的 MySQL 服务器。
我最近一直在逐渐增加我的应用程序的 maxPoolSize 设置以提高性能。似乎我设置的配置越高,应用程序的响应速度越快,磁盘队列深度越稳定。
我目前的配置:
jdbc.maxPoolSize=100
jdbc.minPoolSize=100
jdbc.maxStatements=1000
基本上,我的问题是当我增加 maxPoolSize 时应该注意哪些风险?是否有任何特定的因素或指标需要我观察来判断我是否将此设置配置得太高?显然,如果增加 maxPoolSize 是解决性能问题的灵丹妙药,那么每个人都希望将它设置得尽可能高。如果这是重复的,请提前道歉,但我找不到任何解决如何评估您的连接池是否太大的答案。
我在 AWS RDS 实例上运行 MySQL。以下是我对可能存在的问题的猜测:
避免超过 RDS 实例类型允许的最大连接数
过高的设置是否会占用服务器上的所有内存并影响性能?
线程过多会导致表锁定并增加某些查询的排队时间吗?
非常感谢您在了解需要注意的因素方面提供的任何帮助。
【问题讨论】:
标签: java mysql jdbc connection-pooling amazon-rds