linux啓動springboot項目出現java.lang.OutOfmemoryError: PermGen Space

由於用的個人的linux服務器,配置是1核2G的內存,然後個人搭建環境跑的公司的項目。

項目能正常啓動,但是在輸入網址,進行項目訪問的時候,總是報ava.lang.OutOfmemoryError: PermGen Space內存溢出的異常

網上查要修改tomcat的配置,來將運行時候的內存減小,達到不會報錯的目的。

但由於是spring boot 項目,是內置的tomcat,沒有地方去修改tomcat的配置(個人理解,如果不對望大家指出,謝謝)

最後找到一篇非常好的博客,解決了問題。

https://blog.csdn.net/rickiyeat/article/details/78343362

 

在使用java -jar  啓動的時候 

-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m

將運行時的內存提前定義好,這樣就達到修改內置tomcat運行時內存的目的。

nohup java  -Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m -jar xxxx.jar > /dev/null 2>&1 &

最後我們查一下內存使用情況

jmap -heap pid(ps -ef|grep java查看啓動項目的pid是什麼)

Attaching to process ID 14824, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.80-b11

using thread-local object allocation.
Mark Sweep Compact GC

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 536870912 (512.0MB)
   NewSize          = 1310720 (1.25MB)
   MaxNewSize       = 17592186044415 MB
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 134217728 (128.0MB)
   MaxPermSize      = 268435456 (256.0MB)
   G1HeapRegionSize = 0 (0.0MB)

Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 161021952 (153.5625MB)
   used     = 149734416 (142.79786682128906MB)
   free     = 11287536 (10.764633178710938MB)
   92.9900638640873% used
Eden Space:
   capacity = 143130624 (136.5MB)
   used     = 143113880 (136.4840316772461MB)
   free     = 16744 (0.01596832275390625MB)
   99.98830159505208% used
From Space:
   capacity = 17891328 (17.0625MB)
   used     = 6620536 (6.313835144042969MB)
   free     = 11270792 (10.748664855957031MB)
   37.00416201636905% used
To Space:
   capacity = 17891328 (17.0625MB)
   used     = 0 (0.0MB)
   free     = 17891328 (17.0625MB)
   0.0% used
tenured generation:
   capacity = 357957632 (341.375MB)
   used     = 71209248 (67.91043090820312MB)
   free     = 286748384 (273.4645690917969MB)
   19.893205685303002% used
Perm Generation:
   capacity = 134217728 (128.0MB)
   used     = 99136528 (94.54396057128906MB)
   free     = 35081200 (33.45603942871094MB)
   73.86246919631958% used

在最後能看出 內存佔用率   Perm Generation:

73.86246919631958% used。

到這裏能正常的運行和操作項目了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章