0

我有一个运行在 8 GB RAM 上的 Ubuntu 机器。规格是 Jave:java 版本 1.6.0_34 Glassfish 版本 = GlassFish Server Open Source Edition 3.1.2.2(内部版本 5)最大堆大小为 1024。

JDBC 设置全部设置为默认值

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

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

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

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

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

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

很抱歉让它变得很长。

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

4

1 回答 1

0

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

  1. 在 8 GB 盒子上将最大堆大小增加到 2 GB。
  2. 垃圾收集器没有变化。
  3. 连接池设置翻倍为原始值。在某一时刻,它管理了 700 个并发连接,这意味着没有数据丢失。不完全确定这在数学上是如何实现的,但它是由数据库和 Glassfish 服务器处理的。
于 2014-09-19T03:15:38.000 回答