報(bào)表性能優(yōu)化方案之多種報(bào)表服務(wù)器內(nèi)存修改方法
Posted on 2015-09-14 14:48 FineReport——報(bào)表技術(shù)領(lǐng)跑者 閱讀(109) 評(píng)論(0) 編輯 收藏服務(wù)器內(nèi)存修改
各應(yīng)用服務(wù)器的內(nèi)存配置方法不盡相同,如下列出了常用服務(wù)器的JVM參數(shù)(-Xms,-Xmx)配置方法。
JVM參數(shù)定義:
- Xms: 初始化內(nèi)存大小
- Xmx: 可以使用的最大內(nèi)存
示例工具
以下示例工具:報(bào)表開(kāi)發(fā)工具FineReport
Tomcat服務(wù)器內(nèi)存修改
1. 問(wèn)題描述
java應(yīng)用程序運(yùn)行過(guò)程中會(huì)使用web應(yīng)用服務(wù)器的內(nèi)存,如執(zhí)行報(bào)表獲取的數(shù)據(jù),運(yùn)算的中間數(shù)據(jù)等都需要暫存在服務(wù)器內(nèi)存中。
當(dāng)沒(méi)有空內(nèi)存可用時(shí),就會(huì)出現(xiàn)內(nèi)存溢出錯(cuò)誤:java.lang.OutOfMemoryError:Java heap space。
2. 解決方案
為了避免內(nèi)存溢出的問(wèn)題,我們一方面應(yīng)適當(dāng)啟用磁盤(pán)緩存,另一方面可以根據(jù)實(shí)際情況調(diào)整服務(wù)器內(nèi)存大小。
下面說(shuō)明如何調(diào)整服務(wù)器內(nèi)存大小。
· 解壓版通過(guò)start.bat啟動(dòng)tomcat
在windows系統(tǒng)中,找到%Tomcat_Home%/bin/catalina.bat,對(duì)這個(gè)文件進(jìn)行編輯。
找到這樣一行代碼:
1. rem ----- Execute The Requested Command ---------------------------------------
在其下添加
1. set JAVA_OPTS= -Xms256M -Xmx512M
ms代表初始時(shí)內(nèi)存大小,mx代表最大,上述代碼意義為初始化時(shí)內(nèi)存設(shè)置為256m,最大內(nèi)存為512m
對(duì)于tomcat服務(wù)器來(lái)說(shuō),最大內(nèi)存一般不要超過(guò)物理內(nèi)存的80%。
linux中修改相同目錄下catalina.sh,修改方式相同。
· 安裝版通過(guò)服務(wù)啟動(dòng)tomcat
如果是用tomcat服務(wù)啟動(dòng),就需要修改注冊(cè)表,在HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Fountdation/Procrun 2.0/Parameters 里面對(duì)應(yīng)修改Java的JvmMs和JvmMx。
注:請(qǐng)謹(jǐn)慎修改注冊(cè)表。
Weblogic服務(wù)器內(nèi)存修改
1. 問(wèn)題描述
程序運(yùn)行過(guò)程中會(huì)使用web應(yīng)用服務(wù)器的內(nèi)存,如執(zhí)行報(bào)表獲取的數(shù)據(jù),運(yùn)算的中間數(shù)據(jù)等都需要暫存在服務(wù)器內(nèi)存中。
如果內(nèi)存不足發(fā)生了溢出,就會(huì)報(bào)錯(cuò)。
2. 解決方案
Weblogic服務(wù)器是通過(guò)修改bea\user_projects\domains\對(duì)應(yīng)的工程目錄下的StartWeblogicNaNd文件,如C:\bea\user_projects\domains\base_domain\ StartWeblogicNaNd,來(lái)配置Weblogic服務(wù)器虛擬內(nèi)存的。
2.1 Weblogic8.1中
編輯StartWeblogicNaNd,在set SERVER_NAME上一行增加set MEM_ARGS=-Xms256m -Xmx512m ;并在Classpath中增加;%MEM_ARGS%,保存即可
2.2 Weblogic10中
在StartWeblogicNaNd文件中call "%DOMAIN_HOME%\bin\startWebLogicNaNd" %*添加set MEM_ARGS=-Xms256m -Xmx512m,保存即可,如下圖:
Websphere服務(wù)器內(nèi)存修改
1. 問(wèn)題描述
java應(yīng)用程序運(yùn)行過(guò)程中會(huì)使用web應(yīng)用服務(wù)器的內(nèi)存,如執(zhí)行報(bào)表獲取的數(shù)據(jù),運(yùn)算的中間數(shù)據(jù)等都需要暫存在服務(wù)器內(nèi)存中。
當(dāng)沒(méi)有空內(nèi)存可用時(shí),就會(huì)出現(xiàn)內(nèi)存溢出錯(cuò)誤。
2. 解決方案
Websphere服務(wù)器內(nèi)存修改隱藏得比較深,在管理控制臺(tái)|服務(wù)器|進(jìn)程定義|Java虛擬機(jī)進(jìn)行設(shè)置。此以websphere6為例說(shuō)明:
打開(kāi)管理控制臺(tái)|服務(wù)器|應(yīng)用程序服務(wù)器選擇服務(wù)器,這里是server1:
點(diǎn)擊java和進(jìn)程管理|進(jìn)程定義:
點(diǎn)擊Java虛擬機(jī):
即可設(shè)置JVM參數(shù),設(shè)置完確定并保存:
Jboss服務(wù)器內(nèi)存修改
. 問(wèn)題描述
java應(yīng)用程序運(yùn)行過(guò)程中會(huì)使用web應(yīng)用服務(wù)器的內(nèi)存,如執(zhí)行報(bào)表獲取的數(shù)據(jù),運(yùn)算的中間數(shù)據(jù)等都需要暫存在服務(wù)器內(nèi)存中。
當(dāng)沒(méi)有空內(nèi)存可用時(shí),就會(huì)出現(xiàn)內(nèi)存溢出錯(cuò)誤。
2. 解決方案
Jboss服務(wù)器內(nèi)存修改比較簡(jiǎn)單,如Jboss4.2,只需將%Jboss_home%\bin\下的run.bat文件中的相應(yīng)內(nèi)存參數(shù)設(shè)置所需值即可,如下圖: