ファイルに書き込むときに「ダーティー」メモリが増えないのはなぜですか?

ファイルに書き込むときに「ダーティー」メモリが増えないのはなぜですか?

今日、私は「writeback」メカニズムについてたくさん読んで実験をしてみたかったです。

編集:インターネットからダウンロードしたファイルはDirty統計に表示されます。

コメントに基づいて、これが本当かどうかを確認するためにインターネットからファイルをダウンロードしてみましたdd

実際に。wgetDirty/proc/meminfo

Dirtyファイルがダウンロードされると、サイズは数百KBから5 MBに変更されます。そのまま残る最低10秒(時には20秒以上)間隔が5秒未満であると予想していたため(20秒以上)、まだ興味深いですvm.dirty_writeback_centisecsWriteback(私の知る限り)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/meminfoDirty

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

リソース

簡単に確認したリソース(一部は私が見逃しているか理解していない説明があるかもしれません):

ベストアンサー1

おすすめ記事