我在寫Lucene的包裝器。當頻繁發出搜索請求時,可能會出現「無法爲對象堆預留足夠的空間」。我如何獲得對象堆的大小?我該如何解決這個問題?無法爲對象堆預留足夠的空間
0
A
回答
2
我相信底層問題與SO問題Could not reserve enough space for object heap的良好答案中所描述的相同。
也就是說,JVM試圖向操作系統請求堆內存,操作系統正在拒絕,因爲它已經將所有內存虛擬分配給其他進程。
我期望這是因爲發生在你頻繁地索引:
- 它增加了系統平均負荷(進程數運行/等待運行),因此
- 是增加系統的平均承諾虛擬內存資源因此
- 當新的JVM開始運行索引器時,它使得操作系統更可能說「否」。
當然,這在很大程度上是猜測...
你能做些什麼呢?
- 增加用於分頁的光盤文件或分區的大小。
- 向機器添加更多物理內存。
- 較少運行索引器和/或系統不忙時。
- 修剪索引器堆的大小。
- 將一些其他負載移到另一臺機器上。
其中一些需要謹慎處理,因爲它們可能會以各種方式影響整體系統性能。
(順便說一句,我不認爲切換到64位操作系統將一定能幫助的,肯定運行64位JVM 不會幫助...)
+0
那麼,我執行「免費-m」。事實的變化是測試服務器上只有256Mb的內存。 – Eugeny89 2011-04-05 11:40:48
相關問題
- 1. Intellij偶爾無法爲對象堆預留足夠的空間
- 2. JDeveloper無法爲對象堆預留足夠的空間
- 3. Dreaded無法爲對象堆預留足夠的空間
- 4. 64位JVM無法爲對象堆預留足夠的空間
- 5. Elasticsearch 5.2.0 - 爲2097152KB對象堆無法保留足夠的空間
- 6. 創建「無法爲對象堆預留足夠的空間」錯誤
- 7. 該系統有足夠的內存,但「無法爲對象堆預留足夠的空間」
- 8. 發生錯誤:對對象堆無法保留足夠的空間
- 9. 「VM初始化期間發生錯誤;無法爲對象堆預留足夠的空間「使用-Xmx3G
- 10. 在Intellij IDEA中經常發生Gradle錯誤「無法爲對象堆預留足夠的空間」
- 11. 如何在512M vps中運行`play` - 它報告`無法爲對象堆預留足夠的空間?
- 12. 離子錯誤 - 無法預留足夠的空間2097152KB
- 13. Tomcat問題 - 無法預留足夠的空間
- 14. 無法爲Java分配足夠的堆空間
- 15. 虛擬機初始化時發生錯誤;無法爲對象堆預留足夠的空間;無法創建Java虛擬機
- 16. 爲什麼編譯器不能在堆棧上保留足夠的空間?
- 17. JVM啓動失敗「的對象無法保留足夠的空間」與下面的錯誤結束了
- 18. 爲空JLabel預留空間
- 19. 如何解決此問題:「VM的初始化過程中出現的錯誤;對於對象堆無法保留足夠的空間」
- 20. 如何爲類對象預留向量空間?
- 21. 虛擬機初始化期間發生錯誤沒有足夠的空間用於對象堆
- 22. Android沒有足夠的存儲空間
- 23. Java JDK沒有足夠的空間
- 24. AnsiString被截斷了足夠的空間
- 25. Android。沒有足夠的空間sdcard
- 26. LWJGL - texture.bind沒有足夠的空間
- 27. 足夠堆棧溢出?
- 28. 足夠好的動態對象包裝
- 29. solr - 內存不足的java堆空間
- 30. 爲字符串的實際長度分配足夠的空間
[沒有訂的可能重複足夠的空間對象堆](http://stackoverflow.com/questions/4401396/could-not-reserve-enough-space-for-object-heap)(重複甚至具有相同的標題;)) – 2011-04-05 10:55:10
好吧,標題是一樣的,但情況不同。被引用副本中的用戶每次都會得到錯誤。雖然在這裏我們遇到了麻煩,只要我們經常使用launchind索引器 – Eugeny89 2011-04-05 11:01:35
但解決方案可能適用:碎片內存可防止創建足夠的對象堆。你的操作系統是什麼? 32位Windows系統對堆大小有一些未知的限制... – 2011-04-05 11:03:44