今日、私は「writeback」メカニズムについてたくさん読んで実験をしてみたかったです。
編集:インターネットからダウンロードしたファイルはDirty
統計に表示されます。
コメントに基づいて、これが本当かどうかを確認するためにインターネットからファイルをダウンロードしてみましたdd
。
実際に。wget
Dirty
/proc/meminfo
Dirty
ファイルがダウンロードされると、サイズは数百KBから5 MBに変更されます。そのまま残る最低10秒(時には20秒以上)間隔が5秒未満であると予想していたため(20秒以上)、まだ興味深いですvm.dirty_writeback_centisecs
。
Writeback
(私の知る限り)0kBにしてください。
時計を実行するには:
Every 1.0s: grep -e Dirty -e Writeback /proc/meminfo ubuntu-18: Tue Apr 20 13:32:31 2021
Dirty: 5044 kB
Writeback: 0 kB
WritebackTmp: 0 kB
ダウンロードファイル:
root@ubuntu-18:~# wget https://www.stats.govt.nz/assets/Uploads/Annual-enterprise-survey/Annual-enterprise-survey-2019-financial-year-provisional/Download-data/annual-enterprise-survey-2019-financial-year-provisional-csv.csv
...
2021-04-20 13:27:11 (2.03 MB/s) - ‘annual-enterprise-survey-2019-financial-year-provisional-csv.csv’ saved [5134576/5134576]
生成されたファイル - ファイルが実際に大きくない場合、dd
統計には影響しません。Dirty
以下を使用して10MBおよび100MBのファイルを作成しましたdd
。/proc/meminfo
Dirty
dd if=/dev/zero of=file.txt count=100 bs=1M
# watching /proc/meminfo while before, during, and after `dd` is executed
Every 1.0s: grep -e Dirty -e Writeback /proc/meminfo ubuntu-18: Tue Apr 20 08:06:35 2021
Dirty: 280 kB
Writeback: 0 kB
WritebackTmp: 0 kB
この行動の理由はありますか?私の考えでは、これらの設定()によってvm.dirty_writeback_centisecs
ダーティメモリがディスクに書き戻されるまでに最大5秒かかります。
sysctl -a | grep dirty
vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 10
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000
vm.dirty_ratio = 20
vm.dirty_writeback_centisecs = 500
vm.dirtytime_expire_seconds = 43200
1GBファイルを作成しようとすると、Dirty
メモリサイズが増えることがわかりますが、dd
実行時のみです。dd
タスクが完了するとすぐに非常に小さい値に落ちます。
小さいファイルサイズと大きなファイルサイズで何度も試しました。
私はこれらすべてをUbuntuがインストールされているHetzner Cloud VMマシンで実行しています。
root@ubuntu-18:~# uname -a
Linux ubuntu-18 5.4.0-40-generic #44-Ubuntu SMP Tue Jun 23 00:01:04 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
root@ubuntu-18:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.2 LTS
Release: 20.04
Codename: focal
リソース
簡単に確認したリソース(一部は私が見逃しているか理解していない説明があるかもしれません):
- https://www.thomas-krenn.com/en/wiki/Linux_Page_Cache_Basics
- https://ncona.com/2018/05/linux-page-cache/
- https://www.kernel.org/doc/html/latest/admin-guide/sysctl/vm.html
- 書き込みストレージキャッシュ(「ダーティ」)はdirty_Background_ratioよりはるかに小さいものに制限されているようです。その限界は何ですか?この制限はどのように計算されますか?
- 同期操作の進行状況を確認できますか?
- https://superuser.com/questions/479379/how-long-can-file-system-writes-be-cached-with-ext4