Kernel

SSD 上的大量寫入活動會影響系統性能

  • May 17, 2017

我注意到當我編寫繁重的應用程序時,整個系統都會變慢。為了進一步測試這一點,我執行它來執行(相對)低 CPU、高磁碟活動:

john -incremental > file_on_SSD

這會每秒將數万個字元串輸出到我係統磁碟上的一個文件中。

當它這樣做時,滑鼠滯後,TTY 變得無響應,應用程序“褪色”並且通常整個電腦變得無法使用。當我最終可以 Control+Cjohn時,系統會在幾秒鐘後恢復到最大強度。

這是一個極端的例子,但我有類似的問題,寫密集的活動稍微少一些,比如從快速源複製大文件或轉碼。

我的主要作業系統磁碟是一個非常快的 SSD(OCZ Agility 60GB),帶有 EXT4。如果我john使用 EXT4 將 ’ 的輸出寫入機械磁碟,我不會遇到同樣的減速,儘管速度要慢得多(SSD 每秒執行約 42,000 個字,機械執行 8,000 w/s)。吞吐量可能是相關的。機械盤也與系統無關。這只是數據。

而且我使用的是核心 2.6.35-2,但我已經註意到了這個問題,因為我得到了這個 SSD,當時我可能正在使用 .31 或大約那個時候的東西。

那麼是什麼導致了減速呢?EXT4 問題?核心問題?SSD問題?上述所有的?還有什麼?

如果您認為我需要進行額外的測試,只需發表評論告訴我該怎麼做,我會將結果附加到問題中。

這是一段時間以來的已知問題。使用像 Btrfs 這樣經過 SSD 調整的 FS 可能會有所幫助,但可能不會。

歸根結底,這是 IO 調度程序/記憶體管理系統中的錯誤。最近,有一些更新檔旨在解決這個問題。請參閱已修復:Linux 桌面響應問題?

這些更新檔最終可能會進入主線核心,但現在,如果你想修復這個問題,你可能必須編譯自己的核心。

您可以檢查一些事項以嘗試提高 Linux 下的 SSD 性能。

  1. 將掛載點設置為“noatime”。額外的活動更新訪問時間通常浪費在大多數案例上。特別是在不斷地將單行注入文件的情況下,每次訪問都會強制對文件系統進行多次更新。
  2. 檢查電梯。大多數發行版的預設電梯設置為隨機訪問旋轉碟片。SSD 不需要額外的邏輯,因此將電梯設置為 noop 可以通過讓硬體管理寫入來提高性能。
  3. 直寫式 v 回寫式記憶體。這有點深奧,但您可以檢查用於hdparm設備的記憶體方法。與直寫相比,回寫記憶體可以對 SSD 性能產生積極影響。

引用自:https://unix.stackexchange.com/questions/1293