![mount.ntfs 在不佔用CPU的情況下減慢電腦速度,顯示“磁碟睡眠”](https://rvso.com/image/1618327/mount.ntfs%20%E5%9C%A8%E4%B8%8D%E4%BD%94%E7%94%A8CPU%E7%9A%84%E6%83%85%E6%B3%81%E4%B8%8B%E6%B8%9B%E6%85%A2%E9%9B%BB%E8%85%A6%E9%80%9F%E5%BA%A6%EF%BC%8C%E9%A1%AF%E7%A4%BA%E2%80%9C%E7%A3%81%E7%A2%9F%E7%9D%A1%E7%9C%A0%E2%80%9D.png)
我的檔案系統中安裝了兩個 NTFS 分割區。其中之一託管我的項目,所以這非常重要。
我的電腦經常變得緩慢,有時甚至幾乎死機。我注意到每當發生這種情況時,該過程mount.ntfs
都會顯示disk sleep
在系統監視器 ksysguard 的 CPU 欄位中(請參閱下面的螢幕截圖)。
值得注意的是,在這些情況下,內存不是耗盡,CPU 已耗盡不是滿載運行。
對此有哪些可能的解釋以及如何解決它?
我運行 Kubuntu 19.04,64 位元。
答案1
從某種意義上說,「磁碟睡眠」並不是原因經濟放緩只是一個症狀。
目前,該進程除了等待接收對磁碟讀取/寫入請求的回應之外,沒有執行任何操作。因此,如果磁碟回應時間過長,任何嘗試讀取或寫入的進程將進入「磁碟睡眠」或「I/O 等待」狀態,直到其操作完成。
我猜系統感覺很慢,因為許多程式只是嘗試從 NTFS 分割區讀取文件,所以它們自然會等待 mount.ntfs 恢復 - 而 mount.ntfs 本身無法服務這些存取請求,因為它正在等待您的硬碟復原。
可能有以下幾個原因:
有很多發生的磁碟讀取或寫入次數(針對整個實體磁碟;不一定針對該特定分割區)。要確定這是否是原因,請從以下開始:
iotop
或iotop -Pao
查看目前執行 I/O 的各個程序;iostat -h 1
報告全部的每個實體儲存設備的 I/O 速率。
磁碟正忙於嘗試讀取損壞的區域。 (硬碟偶爾會出現磁區損壞的情況,有時重試十幾次才能讀取該磁區;有時完全無法讀取,但必須等待硬碟放棄嘗試。)
dmesg
或dmesg -w
查看磁碟是否報告任何讀取錯誤或其他硬體問題。
核心可能有缺陷,例如,在高效能「UAS」模式下透過USB 3.0連接的磁碟在過去經常會堵塞整個系統。
- 再次 dmesg,但這次尋找報告其自身鎖定的內核沒有相關的磁碟讀取錯誤。
如果您的專案很重要,即使是單身的「dmesg」中報告的錯誤意味著您應該停止一切並備份到另一個磁碟。 (實際上,如果你的項目是實際上重要的是,您應該已經做好備份。