併發訪問量大的配置

原文轉自:http://www.quiee.com.cn/archives/2131

背景說明

併發訪問量大的應用,容易發生服務器崩掉的情況,針對這種情況,我們在部署時,能做一些什麼優化呢?看下面的配置。

應用舉例

從以下三處來優化應用配置:

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;

<config>
<name>alwaysReloadDefine</name>
<value>no</value>
</config>
<config>
<name>cachedParamsTimeout</name>
<value>60</value>
</config>
<config>
<name>cachedReportTimeout</name>
<value>60</value>
</config>
<config>
<name>maxCellNum</name>
<value>100000</value>
</config>
<config>
<name>maxConcurrentForReport</name>
<value>1000</value>
</config>
<config>
<name>maxWaitForReport</name>
<value>2000</value>
</config>
<config>
<name>maxWaitTimeForReport</name>
<value>10</value>
</config>

參數說明:

(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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章