1. 程式人生 > >lucene使用記憶體索引時一些問題OutOfMemoryError: Java heap space

lucene使用記憶體索引時一些問題OutOfMemoryError: Java heap space

我在做【檔案搜】網站用到的:

高速版:耗時 0.015s ,找到約 1000 個結果。
千萬份資料全部存到記憶體裡面。
模糊匹配搜尋,輸錯了一兩個字也沒事。
lucene全文檢索引擎,無需資料庫

問題1  資料庫Table 'file' is marked as crashed and should be repaired

>>>資料庫的問題,修復一下就可以了。用phpMyAdmin工具,找到這個表,點操作,點修復。

問題2 org.apache.catalina.core.StandardWrapperValve invoke
嚴重: Servlet.service() for servlet springmvc threw exception
java.lang.OutOfMemoryError: Java heap space

>>>在Eclipse裡選:Window->Preference->Installed JREs->Edit(選中jre),

在Default VM Arguments裡輸入-Xms256m -Xmx1024m,表示最小記憶體256M,最大1G,然後執行就可以了。

----------------------Linux下修改TomcatJVM記憶體大小----------------------

要新增在tomcat 的bin 下catalina.sh 裡,位置cygwin=false前 。注意引號要帶上,紅色的為新新增的.

# OS specific support.  $var _must_ be set to either true or false.
JAVA_OPTS="

-Xms512m -Xmx512m -XX:ParallelGCThreads=8 -XX:PermSize=128m -XX:MaxPermSize=256m"
cygwin=false

----------------------windows下修改Tomcat JVM記憶體大小----------------------

情況一:解壓版本的Tomcat , 要通過startup.bat啟動tomcat才能載入配置

要新增在tomcat 的bin 下catalina.bat 裡

rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%後面新增,紅色的為新新增的.

set JAVA_OPTS=-Xms512m -Xmx512m -XX:ParallelGCThreads=8 -XX:PermSize=128m -XX:MaxPermSize=256m

我改的是:set JAVA_OPTS=-Xms64m -Xmx1024m -XX:ParallelGCThreads=20 -XX:PermSize=64m -XX:MaxPermSize=1024m

執行提示PermSize  MaxPermSize 被忽略了。不管它了。

406萬條資料,佔了1G記憶體。


----------------------eclispe下修改Tomcat JVM記憶體大小----------------------

找到eclispe 中window->preferences->Java->Installed JRE ,點選右側的Edit 
按鈕,在編輯介面中的 “Default VM Arguments ”選項中,填入如下值即可。

-Xms256m -Xmx256m


-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
-vmargs 說明後面是VM的引數,所以後面的其實都是JVM的引數了
-Xms128m JVM初始分配的堆記憶體
-Xmx512m JVM最大允許分配的堆記憶體,按需分配
-XX:PermSize=64M JVM初始分配的非堆記憶體
-XX:MaxPermSize=128M JVM最大允許分配的非堆記憶體,按需分配

參考:http://www.cnblogs.com/mingforyou/archive/2012/03/03/2378143.html

http://blog.chinaunix.net/uid-29632145-id-4697079.html