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
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等狀態資訊。
線上故障處理
於 2016 年 12 月 09 日 處理流程 故障後處理 前段時間在團隊內整理了乙份線上事故處理的流程,修改後在這裡分享。1.1 系統 業務報警 這個是獲取故障最常用的手段。一般的系統正常運營過程中都會有一定的指標監控。如 在系統層面某種報錯出現的次數,系統常規指標,如可用記憶體,jvm gc,連...
celery 線上問題
專案中使用celery 去做非同步化處理。針對不同的訊息佇列都會啟動8個worker去消費。啟動入口是supervisor,拉起django 的指令碼。再由指令碼去拉起所有的消費程序。線上celery 容器不停的掛死。通過監控可以看到記憶體過一段時間就會到達記憶體配置值。這時候專案跑不動。htopm...
線上問題排查
問題排查方 長期改進建議 由於業務應用 bug 本身或引入第三方庫 環境原因 硬體問題等原因,線上服務出現故障 問題幾乎不可避免。例如,常見的現象包括請求超時 使用者明顯感受到系統發生卡頓等等。作為乙個合格的研發人員 技術人員 不僅要能寫得一手好 掌握如何排查問題技巧也是研發人高階必須掌握的實戰技能...