線上問題處理整理總結

1.處理磁盤空間滿的問題,查找大於某個上限的文件

  find / -xdev -size+500M -exec ls -l {} \;

2.避免停機 ,立即釋放空間的示例   echo "">catalina.out

3.查看磁盤空間文件大小按照大小進行排序:du -sh /usr | sort -nr



-----內存OOM問題分析

1.確認內存分配大小(假設pid爲6055)

jmap  -heap 6055

[root@SZB-L0032773 ~]# jmap -heap 6055
Attaching to process ID 6055, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.91-b14

using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC

Heap Configuration:
   MinHeapFreeRatio         = 40
   MaxHeapFreeRatio         = 70
   MaxHeapSize              = 1048576000 (1000.0MB)
   NewSize                  = 174456832 (166.375MB)
   MaxNewSize               = 174456832 (166.375MB)
   OldSize                  = 874119168 (833.625MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 157024256 (149.75MB)
   used     = 124465352 (118.69940948486328MB)
   free     = 32558904 (31.05059051513672MB)
   79.26504807002556% used
Eden Space:
   capacity = 139591680 (133.125MB)
   used     = 124287480 (118.52977752685547MB)
   free     = 15304200 (14.595222473144531MB)
   89.03645260233274% used
From Space:
   capacity = 17432576 (16.625MB)
   used     = 177872 (0.1696319580078125MB)
   free     = 17254704 (16.455368041992188MB)
   1.0203426045582706% used
To Space:
   capacity = 17432576 (16.625MB)
   used     = 0 (0.0MB)
   free     = 17432576 (16.625MB)
   0.0% used
concurrent mark-sweep generation:
   capacity = 874119168 (833.625MB)
   used     = 36658360 (34.96013641357422MB)
   free     = 837460808 (798.6648635864258MB)
   4.193748557633734% used

2.找最耗費內存的對象

jmap -histo:live 6055 |more



4. 線程block、線程數暴漲

jstack -l pid |wc -l

jstack -l pid |grep "BLOCKED"|wc -l

jstack -l pid |grep "Waiting on condition"|wc -l

線程block問題一般是等待io、等待網絡、等待監視器鎖等造成,可能會導致請求超時、造成造成線程數暴漲導致系統502等。

如果出現這種問題,主要是關注jstack 出來的BLOCKED、Waiting on condition、Waiting on monitor entry等狀態信息。


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