簡介
本文說明語音XML(VXML)伺服器記憶體不足的問題,並報告:
java.lang.OutOfMemoryError: PermGen space
問題
在某些情況下,VXML伺服器/Tomcat會崩潰並顯示OutOfMemoryError消息。
這些片段顯示在VXML伺服器應用程式錯誤日誌中。
Exception in thread "Message Buffering Thread Error with admin
application update,xx/xx/2013 xx:xx:xx.xxx, The error was:
There was a problem loading classes local to the application
<application Name>. The root cause was:
java.lang.OutOfMemoryError: PermGen space
com.audium.server.AudiumException: There was a problem loading
classes local to the application <applicationname>
.at com.audium.server.controller.AudiumServerConfiguration.
loadLocalClasses (AudiumServerConfiguration.java:1405)
at com.audium.server.controller.AudiumServerConfiguration.
<init>(AudiumServerConfiguration.java:212)
Caused by: java.lang.OutOfMemoryError: PermGen space
解決方案
當您運行客戶語音門戶(CVP)並遇到OutOfMemoryError消息時,請參閱以下步驟瞭解解決方法。
增加虛擬記憶體
在很多情況下,增加虛擬記憶體會有所幫助。為了增加CVP 8.5和9.0版中的虛擬記憶體,請完成以下步驟:
Windows 2003
- 導覽至:
開始>運行>重新編輯
HKLM\SOFTWARE\Apache Software Foundation\Procrun2.0\VXMLServer\
引數\Java\選項
- 新增「 — XX:MaxPermSize=256M」登錄檔項以增加虛擬記憶體PermSpace。
Windows 2008
- 導覽至:
開始>運行>重新編輯
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun2.0\VXMLServer\
引數\Java\選項
- 新增「 — XX:MaxPermSize=256M」登錄檔項以增加虛擬記憶體PermSpace。
如需詳細資訊,請參閱Cisco Unified Customer Voice Portal軟體安全建議中的多個漏洞。
聯絡開發人員服務
除了這些修復,VXML應用程式調試應由VXML應用程式開發人員處理,因為思科技術支援中心用於分析所涉及應用程式流的資源有限。如果您已按照本文檔中的步驟操作,但找不到記憶體使用過多的來源,請與developer services聯絡以檢查應用程式。
常見問題
監視VXML應用程式記憶體消耗的最佳方法是什麼?
有多種工具可用於此功能,例如VisualVM、JProfiler和Yourkit。評估VXML應用程式的任何配置檔案都會提供資料結構累積但不釋放記憶體的詳細資訊,這最終會導致OutOfMemory情況。
在(CVP)/VXML伺服器上啟動垃圾回收的頻率是多少?
垃圾收集何時運行取決於系統負載。一般規則是高負載系統或具有少量記憶體的系統經常遇到垃圾收集,而低容量系統或具有大量記憶體的系統則較少執行垃圾收集。
垃圾回收如何決定從應用程式中回收哪些記憶體?
這由Java虛擬機器(JVM)評估。 一旦丟棄對某個對象的所有引用,該對象就會成為垃圾回收的候選對象。