可能是由於某個進程長期得不到響應,比如nfs造成的IO中斷,應用壹直在等待響應,等的都睡著了。。所以也看不到報錯,呵呵。具體的也看不出到底是哪個進程引起的。建議就是重啟相關的java應用。或者重啟機器。
進程為什麽會被置於uninterruptible sleep狀態呢?處於uninterruptible sleep狀態的進程通常是在等待IO,比如磁盤IO,網絡IO,其他外設IO,如果進程正在等待的IO在較長的時間內都沒有響應,那麽就很會不幸地被 ps看到了,同時也就意味著很有可能有IO出了問題,可能是外設本身出了故障,也可能是比如掛載的遠程文件系統已經不可訪問了,我以前遇到的問題就是由 down掉的NFS服務器引起的。
正是因為得不到IO的相應,進程才進入了uninterruptible sleep狀態,所以要想使進程從uninterruptible sleep狀態恢復,就得使進程等待的IO恢復,比如如果是因為從遠程掛載的NFS卷不可訪問導致進程進入uninterruptible sleep狀態的,那麽可以通過恢復該NFS卷的連接來使進程的IO請求得到滿足,除此之外,要想幹掉處在D狀態進程就只能重啟整個Linux系統了。