1

應用程序運行在具有16 GB RAM和100 GB硬盤的高端Linux服務器上。我們有以下命令來運行程序。堆內存分配和性能

的nohup的java -server -Xmn512m -Xms1024m -Xmx1024m -Xss256k -verbose:GC -Xloggc:/logs/gc_log.txt MyClass的>> /output.txt

這是寫的人否則我想了解爲什麼使用-verbose:gc -Xloggc:。 當我檢查這個命令時,它收集gc日誌,但這是否會導致應用程序的性能問題? 另外我想重新審視我的內存參數,應用程序使用完整的16 GB RAM,並且CPU利用率低於5%。我們正在分析內存使用的原因。 但是我們是否可以增加內存參數值以獲得更好的性能或現有就足夠了?

回答

1

您問題的第一部分的答案是-verbose:gc意味着更多的GC日誌將被追加到-Xloggc中提供的文件中。如果CPU使用率爲5%,那麼在保持gc日誌冗長的情況下不存在問題。

對於第二部分,如果您分配了1024m堆並且應用程序需要16GB RAM,則不可能。

+0

也許這不是Java本身是採取16GB?如果OP使用SQLite,MongoDB或數據存儲的其他內存,這可能會解釋他正在觀察的內容。 –