并发访问量大的应用,容易发生服务器崩掉的情况,那么我们该如何呢查看当前服务器的访问量呢?针对并发访问量大的时候,我们能做些什么部署,使它进行优化?那我们一起来学习一下吧。
对于优化问题,可从一下三处优化应用配置:
1、Tomcat的jvm的初始化内存大小
2、应用的数据源连接配置:reportapp.XML
3、应用的报表配置文件:reportConfig.xml
1)Windows下
在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:
java_OPTS=’-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】’
需要把这个两个参数值调大。例如:
JAVA_OPTS=’-Xms1024m -Xmx1024m’
2)newRoleReport.xml中的配置项:
maxActive=”100″
maxIdle=”30″
maxWait=”-1″
参数说明:
maxActive:同时能够从连接池中被分配的可用实例的最大数;
maxIdle:可以同时闲置在连接池中的连接的最大数;
maxWait:最大超时时间,以毫秒计,-1表示无限制;
3)reportConfig.xml中的配置项:
alwaysReloadDefine:no;cachedReportTimeout:60;maxConcurrentForReport:1000;maxWaitForReport:2000;maxWaitTimeForReport:10;maxCellNum:100000;
参数说明:
(1) alwaysReloadDefine实时载入报表,应用制作好后,设置为no;在开发模式下,设置为yes,可以在页面上看到报表实时修改后的效果。
(2) cachedParamsTimeout表示提交给报表的参数在缓存中保存的时间,以分钟为单位。如果不设此参数,缺省值是120分。
(3) cachedReportTimeout表示报表缓存保存的时间,以分钟为单位。如果不设此参数,缺省值是120分。此值应根据实际内存大小、缓存文件夹空间大小来调节,一般在1-3小时之间。
(4) maxCellNum 当前报表系统能运算的最大单元格数,能够动态控制并发数。该数值的大小取决于硬件的配置,一般来说内存越大,这些数值可以设得越大,但最多建议不要超过2000000。
(5) maxConcurrentForReport表示报表web应用中服务器可以同时计算的报表的个数,以便有效控制服务器的内存使用量。该数值的大小取决于硬件的配置,一般来说内存越大,这些数值可以设得越大,但最多建议不要超过1000。
(6) maxWaitForReport表示报表WEB应用中服务器可以等待计算的报表的个数,以便有效控制服务器的内存使用量。该数值的大小取决于硬件的配置,一般来说内存越大,这个数值可以设得越大,但最多建议不要超过2000。
(7) maxWaitTimeForReport表示内存溢出后,最长等待多久才允许新任务访问,以秒为单位,一般建议为10
如何查看服务器当前的并发访问量
服务器访问人数可以通过命令:netstat -pnt | grep :80 列出,比如此时请求服务器上一个页面,通过该命令可以查看结果,后面的ESTABLISHED表示服务器正在被访问,可以通过添加 wc -l 统计数量,最终命令是: netstat -pnt | grep :80 | wc -l 此命令可以统计服务器所有url被请求的数量
因为服务器本身占用一个连接,所以此时并发数是7个用户访问,当关闭网页后输入命令会发现还是8个用户,实际上查看详细信息都是从ESTABLISHED变成了FIN_WAIT2超时状态,因为http有一个保持连接的时间,过一会再查看用户数就为1了,此时说明所有连接都彻底断开了,访问一个页面后再访问另一个页面,之前的http超时时间将加快,所以当连续访问网站时,连接总体上还是保持稳定的。
¥699.00
¥399.00
¥299.00
¥399.00