Ext3

為什麼 kjournald 在一個幾乎靜止的文件系統上非常活躍?

  • January 25, 2013

*注意:*這是一個“記錄我的過程”問題,我將寫一個答案。令人高興的是,serverfault 已經幫助我解決了這個問題,因為寫下我的情況以便其他人能夠評估它使我意識到發生了什麼。

  1. 我在 Debian 伺服器上使用 ext3 文件系統。
  2. 儘管我的主文件系統上發生的關於files的活動非常少,但來自kjournald(通過查看iotop)的活動非常多。
  3. 此活動以周期性爆發的形式出現,將我的整體平均寫入速度提高到大約 2 MB/秒(這讓我非常擔心,因為我想要一些 SSD,而這個速度實際上足以嚴重威脅到非常慷慨的寫入耐久性目前型號)。
  4. 我已經使用noatime,nodiratime.
  5. 我已經將文件系統的日誌送出間隔從 5 秒增加到 300 秒。

到底是怎麼回事?(劇透:這是使用者空間的事情。我寫這篇文章主要是為了強調可能違反直覺的潛在問題。)

看,發生的事情是,在這台伺服器上執行的主應用程序管理著一個非常大、填充良好的目錄樹,並在該樹中寫入文件,但所有權和權限並不理想。因為讓該應用程序更改它是相當令人討厭的,並且文件需要相當快地修復它們的所有權和權限(一些延遲很好,但不是很多),我設置了一個 cron 作業,每分鐘拋出一個質量chown -Rchmod -R在大的,填充良好的目錄樹中。在此過程中,一切似乎都執行良好,所以我說,嗯,這有點矯枉過正,但它有效,我會忍受的。

然而。 事實證明,當您執行chownor時chmod,它會註冊可日記的 ext 文件系統元數據*,無論是否發生任何更改*。因此,文件系統實際上沒有或幾乎沒有任何變化,但是生成了大量的元數據,然後在日誌送出時將其從磁碟中敲出。哎呀。

因此,我將chownandchmod更改find為在更改文件之前實際查找需要更改的文件的作業,平均寫入速度從 2 MB/s 到大約 50 kB/s。耶。

引用自:https://serverfault.com/questions/472409