[英]Analyze Thread Dump fow web application
您好,我為我的Web應用程序進行了線程轉儲,這是使用JSTACK一次又一次地釋放內存的,但是我有點困惑,如何找到正確的罪魁禍首線程可以有人給出如何分析轉儲文件的提示。
使用JDK附帶的VisualVM。
出現OutOfMemoryError時,第一步是讀取關聯的消息。 它解釋了錯誤的原因:堆,燙發,線程,...
根據原因,您必須檢查空間的配置:-Xms和-Xmx用於堆,-XX:PermSize和-XX:MaxPermSize用於燙發(Java 7-),-XX:MaxMetaspaceSize用於元空間( Java 8 +),...配置可能太低,無法滿足您的需求。
之后,使用工具來了解內存的消耗方式。 VisualVM很棒,它提供了有關內存的指標,可以幫助您進行堆轉儲或分析內存(不在生產環境中)。 您可以在啟動腳本中添加-XX:+ HeapDumpOnOutOfMemoryError選項,以便在運行OutOfMemoryError時自動生成堆轉儲。
如果您有內存泄漏,我建議使用更高級(而非免費)的性能分析工具,例如JProfiler或YourKit。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.