久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      為什么有時docker kill殺不死運行的容器

      為什么有時docker kill殺不死運行的容器

      Docker Kill主要流程

      1、Docker引擎通過containerd使用SIGKILL發(fā)向容器主進程,等待一段時間后,如果從containerd收到容器退出消息,那么容器Kill成功。

      2、在上一步中如果等待超時,Docker引擎將跳過Containerd自己親自動手通過kill系統(tǒng)調(diào)用向容器主進程發(fā)送SIGKILL信號。如果此時kill系統(tǒng)調(diào)用返回主進程不存在,那么Docker kill成功。否則引擎將一直死等到containerd通過引擎,容器退出。

      當出現(xiàn)問題時刻,宿主機上發(fā)現(xiàn)大量的stress進程(實際是容器的進程)處于D狀態(tài),而系統(tǒng)響應(yīng)變慢。問題可以這樣解釋:

      1、Docker kill通過containerd間接向容器主進程發(fā)送SIGKill信號以后,由于系統(tǒng)響應(yīng)慢,容器內(nèi)部子進程(stress)處于D狀態(tài),那么在超時時間內(nèi)containerd沒有上報容器退出。Docker kill走到了直接發(fā)送Sigkill階段

      2、在此階段前,容器內(nèi)部主進程退出了,所以系統(tǒng)調(diào)用kill 發(fā)送SIGKILL很快就返回進程不存在了。引擎認為自己把容器殺死了,Docker kill成功返回了。

      3、在一定時間后容器子進程從D狀態(tài)中恢復,它們退出了,containerd上報容器退出,引擎清理資源,此時Docker ps看到容器才是退出狀態(tài)。

      容器主/子進程處于D狀態(tài)

      進程D狀態(tài)表示進程處于不可中斷睡眠狀態(tài),一般都是在等待IO資源。當然有些時候如果系統(tǒng)IO出現(xiàn)問題,那么將有大量的進程處于D狀態(tài)。在這種狀態(tài),信號是無法將進程喚醒;只有等待進程自己從D狀態(tài)中返回。而且在常規(guī)內(nèi)核中,如果某個進程一直處于D狀態(tài),那么理論上除了重啟系統(tǒng)那么沒有什么方法或手段將它從D中接回。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號