某日在除錯superset docker容器裡面的乙個程式後,容器突然假死
docker ps 顯示容器狀態正常,但是對外服務已經不可用
docker stats 沒有反應,這個有點奇怪單個容器也能影響全部?
docker stop container_id 也沒有任何反應
docker restart container_id 也沒有任何反應
docker exec -it --user root container_id /bin/bash 也沒有任何反應
求助朋友後,朋友說是不是殭屍程序
然後用top命令檢視,發現有 zombie 3個程序
linux 程序狀態
linux process status:
r (task_running) : 可執行狀態
s (task_interruptible): 可中斷的睡眠狀態
d (task_uninterruptible): 不可中斷的睡眠狀態
t (task_stopped or task_traced): 暫停狀態或跟蹤狀態
z (task_dead - exit_zombie): 退出狀態,程序成為殭屍程序
x (task_dead - exit_dead): 退出狀態,程序即將被銷毀
繼續使用命令檢視具體資訊
ps -ef | grep "defunct"
跟進ppid檢視父程序發現是剛好是對應container_id的程序
ps -ef | grep 82248
最後kill -9 82248 後 zombie 也變成0
一切恢復正常
參考文章
mysql 導致iis 假死 IIS 假死狀態處理
iis 假死狀態處理 一 1 工作程序 分鐘 選中,值為1740 2 工作程序 請求數目 不選 原先設定為35000 3 在下列時間 工作程序 不填 4 消耗太多記憶體時 工作程序 全不選。2 3 4項可能避免了在訪問量高的時候強制 程序可能引發的伺服器響應問題,導致iis假死不響應 二 效能 只選...
docker服務假死解決方案
簡介本文內容有 1 手動清理假死的docker服務 1.1 找到假死的docker服務 執行docker ps命令找到容器id container id 1.2 先嘗試使用docker自帶的命令停止容器 docker stop container id 發現停不掉 1.3 手動查詢docker目錄下...
觀察程式的狀態,殭屍程序
利用靜態的 ps 或者是動態的 top,還能以 pstree 來查閱程式樹之間的關係 root www ps aux 觀察系統所有的程式資料 root www ps la 也是能夠觀察所有系統的資料 root www ps axjf 連同部分程式樹狀態直接背兩個比較不同的選項,乙個是只能查閱自己 b...