Glassfish 3.1.2 JDBC性能

时间:2014-08-04 10:47:46

标签: jdbc glassfish-3 connection-pooling performance-testing heap-size

我有一个在8 GB RAM上运行的Ubuntu盒子。规格是 Jave:java版本1.6.0_34 Glassfish版本= GlassFish Server开源版3.1.2.2(版本5) 最大堆大小为1024。

JDBC设置都设置为默认值

初始和最小池大小:8个连接 最大池大小:32个连接 池调整大小数量:2个连接 空闲超时:300
秒最长等待时间:60000毫秒

我期待高峰 1000 并发用户提交表单。在低端至少有300个并发用户。 我的典型数据库操作使用PreparedStatement和Resultset,它们在Finally块中与Connection一起关闭。该项目使用JSP,Servlet和Pojo。我还没有进入EJB和JPA。

问题1:JDBC连接 初始和最小池大小:300个连接 最大池大小:1000个连接 池调整大小数量:? 空闲超时:300秒(保持默认值?) 最长等待时间:60000毫秒(保持默认值?)

问题2:代码是否应该手动提交?这会改善性能吗?

问题3:由于数据库服务器SQL 2012是共享的,因此有两个项目共享同一个JDBC连接池。我应该把它分开来改进,因为我知道每个人都会运行自己的线程吗?

问题4:如何计算堆的大小?这是一个好习惯吗? -server -XX:+ AggressiveHeap -Xmx3500m -Xms3500m -Xss? -XX:+ DisableExplicitGC

很抱歉让它很长。

我只想了解如何扩展服务器?

1 个答案:

答案 0 :(得分:0)

我对Glassfish服务器所做的更改。

  1. 在8 GB的盒子上将最大堆大小增加到2 GB。
  2. 无法更改垃圾收集器。
  3. “连接池”设置加倍为原始值。在某一点上,它同时拥有700个并发连接,这意味着没有数据丢失。不完全确定这在数学上是如何可能的,但它由Database和Glassfish Server处理。