Threads Config Active Idle Total thread-max spare-thread-min 2 32 34128 25
这样一来,修改代码不能根本解决问题,因为人数多的时候,的确需要一定量的内存空间。所以接着考虑如何提升JVM内存空间问题,按照文章的说法,在Resin目录的bin/httpd.sh文件,修改启动选项,对args=""修改为args="-Xms512M -Xmx1526M" 无论在本机试还是在服务器试,均无效,最后多次尝试,找到启动办法,就是在将resin加入系统服务的时候,同时加入参数,代替将参数写入启动文件中: httpd.exe -install -Xms512M -Xmx1526M 。本地测试可行,到web服务器却失败,奇怪中找了另外一台服务器做测试,发觉可行,启动后能分配522M内存: resin-status
Server:
Config:
D:\resin\conf\resin.conf
Server Start:
Fri, 24 Nov 2006 11:10:19 +0800 (CST)
Server Reload:
Fri, 24 Nov 2006 11:10:19 +0800 (CST)
Total Memory:
532.80Meg
Free Memory:
499.62Meg
Invocation Hit Ratio:
91.66% (154/168)
Proxy Cache Hit Ratio:
0.00% (0/2)
Threads Config Active Idle Total thread-max spare-thread-min 11 29 40 128 25
仔细分析一下,发觉web服务器在分配内存时报错,是服务器自身不足512M空闲内容分配给Resin(具体原因不清楚,估计是Oracle数据库同时在用,所以能用的资源不多了),于是改为初始佩服64M,最大为512M: resin-status
Server:
Config:
D:\resin\conf\resin.conf
Server Start:
Fri, 24 Nov 2006 13:42:51 +0800 (CST)
Server Reload:
Fri, 24 Nov 2006 13:42:54 +0800 (CST)
Total Memory:
122.11Meg
Free Memory:
20.23Meg
Invocation Hit Ratio:
42.19% (39812/94356)
Proxy Cache Hit Ratio:
0.00% (0/22)
Threads Config Active Idle Total thread-max spare-thread-min 23 29 52 12825
内存分配问题终于解决,由表格可以看到,系统能分配给JVM的内存一百多M左右而已,不过这个数能让服务器安全的运行了一天,庆幸庆幸进一步解决。
另外,学网上例子,测试了服务器的页面连接处理情况:
public static void main(String[] args) {
test test = new test();
try {
long a = System.currentTimeMillis();
System.out.println("Starting request url:");
for (int i = 0; i < 10000; i++) {
java.net.URL url = new java.net.URL("http://www.fqf.cn:8088/list.jsp");