我想限制JVM使用的最大內存。請注意,這不僅僅是堆,我想限制這個過程使用的總內存。如何設置JVM的最大內存使用量?
回答
使用參數-Xms<memory>
-Xmx<memory>
。分別用於指示Megs和Gig字節的數字後面使用M
或G
。 -Xms
表示最小值和-Xmx
的最大值。
你不應該擔心棧泄漏內存(這是非常罕見的)。唯一一次可以讓堆棧失去控制的是無限的(或者非常深的)遞歸。
這只是堆。對不起,一開始沒有完全讀你的問題。
您需要使用以下命令行參數運行JVM。
-Xmx<ammount of memory>
實施例:
-Xmx1024m
這將允許的存儲器爲JVM 1GB的最大值。
上面的答案是正確的,你不能優雅地控制java進程分配多少本地內存。這取決於你的應用程序在做什麼。
也就是說,根據平臺的不同,您可能可以使用某種機制,例如ulimit來限制java或任何其他進程的大小。
只是不要指望它如果達到這個限制就會優雅地失敗。本地內存分配失敗比Java堆上的分配失敗更難處理。應用程序崩潰的可能性相當大,但取決於系統對於保持適合您的進程大小有多關鍵。
的NativeHeap可以通過-XX被increasded:MaxDirectMemorySize = 256M (默認爲128)
我從來沒有使用過。也許你會發現它很有用。
我懷疑op是否想要這樣:當你從java調用C/C++代碼時使用本地內存。 – 2013-05-20 08:59:38
如果您使用直接內存分配緩衝區,則在進行nio調用時也會使用本地內存。 (...和類加載器,以及線程信息....) – stu 2014-03-07 15:07:07
如果要限制對JVM內存(不是堆的大小) 的ulimit -v
要獲取JVM和堆內存之間的差異的想法,看看這個優秀的文章 http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the-java-process.html
- 1. 如何爲jar文件設置最大jvm內存(XMX)
- 2. 如何爲Apache Ignite v1.7設置JVM最大堆內存?
- 3. 如何在我的Java代碼中設置最大的JVM內存大小(-Xmx)?
- 4. 如何設置Redis可以使用的最大內存大小?
- 5. 設置最大內存使用C#
- 6. 設置最大內存使用率?
- 7. 如何設置Redis最大內存?
- 8. 如何設置風暴工人的JVM最大堆大小?
- 9. 如何最大限度地利用PowerShell的內存使用量
- 10. 如何讓我的程序的最大內存使用量OSX
- 11. 測量最大PHP內存使用
- 12. 如何在Bluemix中配置JVM內存設置?
- 13. Twemcache超出最大內存設置
- 14. SQL Server最大內存設置
- 15. 如何設置最大餘量?
- 16. FlyWay無法獲取JVM內存設置
- 17. Spring Boot + Gradle JVM內存設置
- 18. GC Clojure/Java/JVM內存設置
- 19. Spring引導在64位JVM上使用大量內存
- 20. JCS 2.2 - 如何設置內存/索引磁盤緩存的最大大小?
- 21. 使用Bitnami在Ubuntu上設置Solr JVM內存設置的困難AMI
- 22. 如何在glassfish v2中的節點代理上設置jvm內存設置?
- 23. 如何設置最大php內存限制
- 24. 如何配置SQL Server最大內存使用率
- 25. 最大查詢內設置
- 26. 設置最大數量
- 27. Android:設置最大音量
- 28. 如何設置一個非常大的JVM堆大小?
- 29. 如何設置最大ID?
- 30. MongoDB使用大量內存
你可能也想看看MaxPermSize。 – pmu 2009-09-30 00:36:01
他詢問JVM內存。你所說的是堆的大小。它們都不同 – vsingh 2013-01-31 19:06:42
要重新提供其他評論提到的內容,Xms和Xmx僅配置堆。雖然配置這些變量對非堆空間有間接影響,但是提出問題的人試圖確定是否有方法來配置總內存使用量(堆+非堆) – murungu 2014-03-03 16:08:48