我想用mysql 5.1社区版(在win server 2008 x64上)配置tomcat服务器,以便在一台机器上运行一个大项目。我有一个gwt应用程序,我需要在一台HP服务器上运行超过300个实例。
每个实例使用一个单独的MySQL DB(db1到db300)&所以需要一个单独的连接池,这是我的db1连接池配置的一部分(类似于其他dbs):
<Resource name="jdbc/mysql/db1" auth="Container" type="javax.sql.DataSource" initialSize="5" maxActive="100" maxIdle="20" maxWait="30000" removeAbandoned="true" removeAbandonedTimeout="5" validationQuery="select now();" .../>
对于300个实例,活动连接的数量将是300 * 100 = 30000个活动连接!
现在我想知道是否可以在一台服务器上打开300个MySQL数据库的大量连接。
如果不是,那么解决方案是什么?如果是,那么将使用多少资源(RAM和CPU)?
连接汇集是最好的方式还是有另一种方式?
如果连接池是最佳选择,那么我的资源部分创建池的最佳设置是什么?
答案 0 :(得分:0)
如果300个实例中的每一个实例需要一次使用100个,则活动连接数仅为30000。如果它们处于空闲状态,它们将仅根据您的配置在1500(从initialSize)到6000(从maxIdle)之间使用。您可能希望降低这些值以处理300个实例。也许initialSize="2" maxActive="10" maxIdle="5"
就足够了?
如果你真的希望所有实例都使用那么多连接,那么一台服务器可能还不够。几乎不可能说出你需要多少RAM或CPU,这实际上取决于你正在做什么以及你期望多少活动。