GEOM CACHE を使ってみる

GEOM

今回は GEOM によるディスクの読み出しキャッシュ (リードキャッシュ) について纏めてみたいと思います.
GEOM CACHE は GEOM RAID3 の読み出しが遅くなる問題の解決方法として作成されたようですが,RAID3 ボリューム以外にも利用可能です.

GEOM CACHE のイメージ

GEOM CACHE の RAID3 ボリュームのキャッシュとしたイメージはこのような形です.
前述していますが,RAID3 以外の GEOM STRIPE や MIRROR および単体のディスクに対してもこのようなキャッシュデバイスとしてつける事が可能です.

GEOM CACHE の利用・管理

GEOM CACHE は gcache というコマンドを通じて利用・管理を行います.簡単に触れますが,詳細はコマンドのオプションの詳細は FreeBSD の マニュアル「gcache」を見てください.

# gcache
usage: gcache clear [-v] prov ...
       gcache configure [-v] [-b blocksize] [-s size] name
       gcache create [-v] [-b blocksize] [-s size] name prov
       gcache destroy [-fv] name ...
       gcache dump prov ...
       gcache label [-v] [-b blocksize] [-s size] name prov
       gcache reset [-v] name ...
       gcache stop [-fv] name ...
       gcache help
       gcache list [-a] [name ...]
       gcache status [-ags] [name ...]
       gcache load [-v]
       gcache unload [-v]

GEOM 関連のコマンドは gconcat の際にも触れましたが createlabel の両方があり分かりづらいのですが,create は一時的label は恒久的と覚えるのがよいです.

create で作った場合はどうなるのか?

create で作成してマウント,再起動を行うとどのようになるのかを以下に一連の流れを記載します.

gcache create コマンドでキャッシュデバイスを作成し,RAID3 ボリュームの raid3-0 に紐づけます.
-s 1G のオプションはキャッシュサイズで,これがメモリからキャッシュ用に確保される領域になります.

GEOM CACHE は実行した段階で自動的にロードされますが,明示的に読み込みさせる事をお勧めします.

# kldload geom_cache
# gcache create -s 1G cache3-0 /dev/raid3/raid3-0

再起動時に必ず有効になるように /boot/loader.conf に明示的に記述する事をお勧めします.

# cat /boot/loader.conf
geom_cache_load="YES"

gcache status コマンドでステータスを表示できます.
以下は cache0 のステータスです.raid3-0 に紐づけられている事が確認できます.

# gcache status
          Name  Status  Components
cache/cache3-0     N/A  raid3/raid3-0

gcache list コマンドで詳細を表示する事ができます.
Size がキャッシュサイズになります.キャッシュヒットやキャッシュミス等の統計値もここに表示されます.
(マウントもしていないのに値が出るのはなぜ? という状態ですが)

# gcache list
Geom name: cache3-0
WroteBytes: 12288
Writes: 2
CacheFull: 0
CacheMisses: 4
CacheHits: 15
CacheReadBytes: 287744
CacheReads: 19
ReadBytes: 312320
Reads: 37
InvalidEntries: 0
UsedEntries: 1
Entries: 1
TailOffset: 322122481664
BlockSize: 65536
Size: 1073741824
Providers:
1. Name: cache/cache3-0
   Mediasize: 322122546176 (300G)
   Sectorsize: 1024
   Mode: r1w1e1
Consumers:
1. Name: raid3/raid3-0
   Mediasize: 322122546176 (300G)
   Sectorsize: 1024
   Mode: r1w1e1

マウントおよびマウントの結果です./mnt にマウントをしています.
これを /etc/fstab に記載した状態で再起動を行ってみます.

# mount /dev/cache/cache3-0 /mnt

# df
Filesystem          1K-blocks    Used     Avail Capacity  Mounted on
/dev/da0p2           19279260 2773948  14962972    16%    /
devfs                       1       1         0   100%    /dev
/dev/cache/cache3-0 203123604 1499460 185374256     1%    /mnt

# cat /etc/fstab
# Device        Mountpoint      FStype  Options Dump    Pass#
/dev/da0p2      /               ufs     rw      1       1
/dev/da0p3      none            swap    sw      0       0
/dev/cache/cache3-0     /mnt    ufs     rw      1       1

残念な事に (想定どおりです),デバイスが無く起動途中に失敗してしまっています.
これは create で作成した為,ディスクに GEOM CACHE の情報が記録されてい為作成したデバイスが存在しておらず,この状態となります.

恒久的に使う場合は label を利用しよう

先ほどと変わって create ではなく label で cache3-0 を作成しました.

# gcache label -s 1G cache3-0 /dev/raid3/raid3-0

create と同じように指定している為,status および list の結果は先ほどと変わりません.

# gcache list
Geom name: cache3-0
WroteBytes: 0
Writes: 0
CacheFull: 0
CacheMisses: 3
CacheHits: 14
CacheReadBytes: 74752
CacheReads: 17
ReadBytes: 87040
Reads: 26
InvalidEntries: 0
UsedEntries: 3
Entries: 3
TailOffset: 214748299264
BlockSize: 65536
Size: 1073741824
Providers:
1. Name: cache/cache3-0
   Mediasize: 214748362752 (200G)
   Sectorsize: 1024
   Mode: r0w0e0
Consumers:
1. Name: raid3/raid3-0
   Mediasize: 214748363776 (200G)
   Sectorsize: 1024
   Mode: r0w0e0

GEOM CACHE の場合,大本のデータを壊す等はないので気にせずに作業しちゃいましょう.

# mount /dev/cache/cache3-0 /mnt

# df
Filesystem          1K-blocks    Used     Avail Capacity  Mounted on
/dev/da0p2           19279260 2773948  14962972    16%    /
devfs                       1       1         0   100%    /dev
/dev/cache/cache3-0 203123604 1499460 185374256     1%    /mnt

キャッシュの効果について確認してみる (キャッシュ有効時)

キャッシュがどの程度有効なのかを試してみたいと思います.
上でキャッシュ経由でマウントを行いましたので,キャッシュありからテストします.

テストの方法ですが,FreeBSD の src を /mnt に展開します.
そのファイル群を tar cf /dev/null ./src という形で読み取りを行い,それにかかった時間や IO 等を見ていく形とします.

1回目

# date ; dump -f - -0 /dev/cache/cache3-0 > /dev/null ; date
Tue Dec  5 21:20:08 JST 2023
  DUMP: WARNING: should use -L when dumping live read-write filesystems!
  DUMP: Date of this level 0 dump: Tue Dec  5 21:20:08 2023
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/cache/cache3-0 to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 1405443 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 1402371 tape blocks
  DUMP: finished in 34 seconds, throughput 41246 KBytes/sec
  DUMP: DUMP IS DONE
Tue Dec  5 21:20:44 JST 2023

# iostat -n 4 5
       tty             da0              da1              da2              da3             cpu
 tin  tout KB/t  tps  MB/s  KB/t  tps  MB/s  KB/t  tps  MB/s  KB/t  tps  MB/s  us ni sy in id
   1   897 72.2    0   0.0  13.7   72   1.0  13.7   72   1.0   8.9   44   0.4   0  0  1  0 99
   2  1919 27.3    2   0.1  32.0  472  14.7  32.0  472  14.8   0.0    0   0.0   1  0  7  1 92
   0    43  0.0    0   0.0  32.0  878  27.4  32.0  878  27.4   0.0    0   0.0   2  0 13  1 84
   0    19  0.0    0   0.0  32.0  741  23.1  32.0  741  23.1   0.0    0   0.0   3  0 15  1 82
   0    19  0.0    0   0.0  32.0  774  24.2  32.0  774  24.2   0.0    0   0.0   3  0 16  1 80
   0    19  0.0    0   0.0  32.0  789  24.7  32.0  789  24.7   0.0    0   0.0   3  0 13  2 82
   0    19  0.0    0   0.0  32.0  780  24.4  32.0  780  24.4   0.0    0   0.0   3  0 14  1 82
   0    19  0.0    0   0.0  32.0  833  26.0  32.0  833  26.0   0.0    0   0.0   3  0 14  1 83


# gcache list
Geom name: cache3-0
WroteBytes: 0
Writes: 0
CacheFull: 0
CacheMisses: 28127
CacheHits: 373201
CacheReadBytes: 2016825344
CacheReads: 401328
ReadBytes: 2016825344
Reads: 401328
InvalidEntries: 0
UsedEntries: 3290
Entries: 3290
TailOffset: 214748299264
BlockSize: 65536
Size: 1073741824

1回目の結果は36秒となりました.CacheHits しているのはなぜ? とも思いますが…

2回目

# date ; dump -f - -0 /dev/cache/cache3-0 > /dev/null ; date
Tue Dec  5 21:21:33 JST 2023
  DUMP: WARNING: should use -L when dumping live read-write filesystems!
  DUMP: Date of this level 0 dump: Tue Dec  5 21:21:33 2023
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/cache/cache3-0 to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 1405443 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 1402371 tape blocks
  DUMP: finished in 31 seconds, throughput 45237 KBytes/sec
  DUMP: DUMP IS DONE
Tue Dec  5 21:22:07 JST 2023

# iostat -n 4 5
       tty             da0              da1              da2              da3             cpu
 tin  tout KB/t  tps  MB/s  KB/t  tps  MB/s  KB/t  tps  MB/s  KB/t  tps  MB/s  us ni sy in id
   1   893 72.0    0   0.0  14.6   75   1.1  14.6   75   1.1   8.9   43   0.4   0  0  1  0 99
   2  1925 24.0    1   0.0  32.0  378  11.8  32.0  378  11.8   0.0    0   0.0   0  0  7  1 92
   0    43  0.0    0   0.0  32.0  923  28.8  32.0  923  28.8   0.0    0   0.0   1  0 11  1 87
   0    19  0.0    0   0.0  32.0  862  26.9  32.0  862  26.9   0.0    0   0.0   3  0 16  1 80
   0    19  0.0    0   0.0  32.0  922  28.8  32.0  922  28.8   0.0    0   0.0   3  0 15  1 81
   0    19  0.0    0   0.0  32.0  927  29.0  32.0  927  29.0   0.0    0   0.0   3  0 13  1 83
   0    19 16.8    1   0.0  32.0  816  25.5  32.0  816  25.5   0.0    0   0.0   3  0 20  1 75
   0    52  4.0    0   0.0  32.0  844  26.4  32.0  844  26.4   0.0    0   0.0   3  0 18  2 76

# gcache list
Geom name: cache3-0
WroteBytes: 0
Writes: 0
CacheFull: 0
CacheMisses: 56809
CacheHits: 745847
CacheReadBytes: 4033650688
CacheReads: 802656
ReadBytes: 4033650688
Reads: 802656
InvalidEntries: 0
UsedEntries: 3342
Entries: 3342
TailOffset: 214748299264
BlockSize: 65536
Size: 1073741824

2回目の結果は 34秒でした.誤差の範囲と言えそうなレベルです.ただ,CacheHits はもっと増えていますね.

3回目

# date ; dump -f - -0 /dev/cache/cache3-0 > /dev/null ; date
Tue Dec  5 21:26:07 JST 2023
  DUMP: WARNING: should use -L when dumping live read-write filesystems!
  DUMP: Date of this level 0 dump: Tue Dec  5 21:26:07 2023
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/cache/cache3-0 to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 1405443 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 1402371 tape blocks
  DUMP: finished in 27 seconds, throughput 51939 KBytes/sec
  DUMP: DUMP IS DONE
Tue Dec  5 21:26:35 JST 2023

# iostat -n 4 5
       tty             da0              da1              da2              da3             cpu
 tin  tout KB/t  tps  MB/s  KB/t  tps  MB/s  KB/t  tps  MB/s  KB/t  tps  MB/s  us ni sy in id
   1   873 71.4    0   0.0  15.4   76   1.1  15.4   76   1.1   8.9   42   0.4   0  0  1  0 99
   2  1901 24.0    1   0.0  32.0  992  31.0  32.0  992  31.0   0.0    0   0.0   0  0  6  1 92
   0    43  0.0    0   0.0  32.0  946  29.5  32.0  946  29.5   0.0    0   0.0   4  0 16  1 79
   0    19  0.0    0   0.0  32.0  926  28.9  32.0  926  28.9   0.0    0   0.0   3  0 16  1 80
   0    19  0.0    0   0.0  32.0  906  28.3  32.0  906  28.3   0.0    0   0.0   4  0 18  0 78
   0    19  0.0    0   0.0  32.0  892  27.9  32.0  892  27.9   0.0    0   0.0   4  0 18  1 77
   0   107  0.0    0   0.0  32.0  829  25.9  32.0  829  25.9   0.0    0   0.0   3  0 14  1 81

# gcache list
Geom name: cache3-0
WroteBytes: 0
Writes: 0
CacheFull: 0
CacheMisses: 84275
CacheHits: 1119709
CacheReadBytes: 6050476032
CacheReads: 1203984
ReadBytes: 6050476032
Reads: 1203984
InvalidEntries: 0
UsedEntries: 3342
Entries: 3342
TailOffset: 214748299264
BlockSize: 65536
Size: 1073741824

3回目の結果は 28秒となりました.より速くなっています.何度か読み出しが行われる必要がありそうなので最後にもう一度だけやってみます.

4回目

# date ; dump -f - -0 /dev/cache/cache3-0 > /dev/null ; date
Tue Dec  5 21:29:11 JST 2023
  DUMP: WARNING: should use -L when dumping live read-write filesystems!
  DUMP: Date of this level 0 dump: Tue Dec  5 21:29:11 2023
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/cache/cache3-0 to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 1405443 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 1402371 tape blocks
  DUMP: finished in 27 seconds, throughput 51939 KBytes/sec
  DUMP: DUMP IS DONE
Tue Dec  5 21:29:40 JST 2023

# iostat -n 4 5
       tty             da0              da1              da2              da3             cpu
 tin  tout KB/t  tps  MB/s  KB/t  tps  MB/s  KB/t  tps  MB/s  KB/t  tps  MB/s  us ni sy in id
   1   862 71.2    0   0.0  16.2   78   1.2  16.2   78   1.2   8.9   41   0.4   0  0  1  0 99
   2  1925 24.0    1   0.0  32.0  921  28.8  32.0  921  28.8   0.0    0   0.0   1  0  8  0 90
   0    43  0.0    0   0.0  32.0  978  30.6  32.0  978  30.6   0.0    0   0.0   3  0 17  0 79
   0    19  0.0    0   0.0  32.0  926  28.9  32.0  926  28.9   0.0    0   0.0   3  0 15  1 82
   0    19  0.0    0   0.0  32.0  917  28.7  32.0  917  28.7   0.0    0   0.0   5  0 17  1 77
   0    19  0.0    0   0.0  32.0  904  28.2  32.0  904  28.3   0.0    0   0.0   3  0 16  1 80
   0   112  0.0    0   0.0  32.0  922  28.8  32.0  922  28.8   0.0    0   0.0   3  0 17  1 79

# gcache list
Geom name: cache3-0
WroteBytes: 0
Writes: 0
CacheFull: 0
CacheMisses: 112114
CacheHits: 1493198
CacheReadBytes: 8067301376
CacheReads: 1605312
ReadBytes: 8067301376
Reads: 1605312
InvalidEntries: 0
UsedEntries: 3342
Entries: 3342
TailOffset: 214748299264
BlockSize: 65536
Size: 1073741824

29秒と3回目より悪い結果になりました.キャッシュサイズとの関係性なのかがよく分からずですが,1回目よりは2回目以降は速くなっているのは確認できました.

キャッシュの効果について確認してみる (キャッシュ無効時)

続いて,キャッシュを挟まない場合で実施してみます.GEOM RAID3 ボリュームを直接マウントします.

# umount /mnt
# mount /dev/raid3/raid3-0 /mnt

1回目

# date; dump -f - -0 /dev/raid3/raid3-0 > /dev/null; date
Tue Dec  5 21:34:38 JST 2023
  DUMP: WARNING: should use -L when dumping live read-write filesystems!
  DUMP: Date of this level 0 dump: Tue Dec  5 21:34:38 2023
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/raid3/raid3-0 to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 1405443 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 1402371 tape blocks
  DUMP: finished in 64 seconds, throughput 21912 KBytes/sec
  DUMP: DUMP IS DONE
Tue Dec  5 21:35:43 JST 2023

# iostat -n 4 5
       tty             da0              da1              da2              da3             cpu
 tin  tout KB/t  tps  MB/s  KB/t  tps  MB/s  KB/t  tps  MB/s  KB/t  tps  MB/s  us ni sy in id
   1   845 70.5    0   0.0  17.2   80   1.3  17.2   80   1.3   8.9   39   0.3   0  0  1  0 99
   2  1941 24.0    1   0.0   4.1 3274  13.2   4.1 3274  13.2   0.0    0   0.0   1  0  8  2 89
   0    19  0.0    0   0.0   2.3 6281  14.3   2.3 6281  14.3   0.0    0   0.0   1  0 10  4 84
   0    19  0.0    0   0.0   2.4 6206  14.4   2.4 6206  14.4   0.0    0   0.0   1  0 12  3 84
   0    19  0.0    0   0.0   2.4 6242  14.8   2.4 6242  14.8   0.0    0   0.0   1  0 11  3 85
   0    19  0.0    0   0.0   2.4 6155  14.3   2.4 6155  14.3   0.0    0   0.0   1  0 10  3 86
   0    19  0.0    0   0.0   2.4 6271  14.5   2.4 6270  14.5   0.0    0   0.0   1  0 11  3 85
   0    52  0.0    0   0.0   2.3 6190  14.1   2.3 6190  14.1   0.0    0   0.0   1  0 12  3 84
   0    19  0.0    0   0.0   2.4 6267  14.5   2.4 6267  14.5   0.0    0   0.0   2  0 10  4 84

65秒かかっています.キャッシュありの初回よりも遅いです.という事はやはりキャッシュは効いているものと考えられます.
dump は vfs キャッシュが効かないようなので2回目も同様の結果になるはずです.

2回目

# date ; dump -f - -0 /dev/raid3/raid3-0 > /dev/null ; date
Tue Dec  5 21:37:59 JST 2023
  DUMP: WARNING: should use -L when dumping live read-write filesystems!
  DUMP: Date of this level 0 dump: Tue Dec  5 21:37:59 2023
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/raid3/raid3-0 to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 1405443 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 1402371 tape blocks
  DUMP: finished in 65 seconds, throughput 21574 KBytes/sec
  DUMP: DUMP IS DONE
Tue Dec  5 21:39:06 JST 2023

# iostat -n 4 5
       tty             da0              da1              da2              da3             cpu
 tin  tout KB/t  tps  MB/s  KB/t  tps  MB/s  KB/t  tps  MB/s  KB/t  tps  MB/s  us ni sy in id
   1   833 70.2    0   0.0  11.6  125   1.4  11.6  125   1.4   8.9   38   0.3   0  0  1  0 99
   2  2058 19.6    2   0.0   4.2 3217  13.2   4.2 3217  13.2   0.0    0   0.0   1  0  9  2 88
   0    19  0.0    0   0.0   2.3 5625  12.8   2.3 5625  12.8   0.0    0   0.0   2  0 14  2 82
   0    19  0.0    0   0.0   2.4 6080  14.1   2.4 6080  14.1   0.0    0   0.0   2  0 10  2 87
   0    19  0.0    0   0.0   2.4 5963  14.0   2.4 5963  14.0   0.0    0   0.0   2  0 11  2 85
   0    19  0.0    0   0.0   2.4 5865  13.5   2.4 5865  13.5   0.0    0   0.0   1  0 10  3 86
   0    19  0.0    0   0.0   2.4 6020  14.0   2.4 6020  14.0   0.0    0   0.0   2  0 11  2 85
   0    19  0.0    0   0.0   2.3 5956  13.3   2.3 5956  13.3   0.0    0   0.0   1  0 11  3 86

2回目は67秒かかりました.キャッシュの有効性は確認できたと思います.
キャッシュヒットの条件が不明ですが,それなりな効果は期待できると言っていいのではないでしょうか.

キャッシュを制御する

gcache configure コマンドでキャッシュサイズの変更,ブロックサイズの変更が可能です.
例えば,キャッシュサイズを 1G から 2G に変えた場合はこのようになります.

# gcache configure -s 2G cache3-0

# gcache list
Geom name: cache3-0
WroteBytes: 12288
Writes: 2
CacheFull: 0
CacheMisses: 124861
CacheHits: 1628979
CacheReadBytes: 8849994752
CacheReads: 1753840
ReadBytes: 8850007040
Reads: 1753849
InvalidEntries: 0
UsedEntries: 3342
Entries: 3342
TailOffset: 214748299264
BlockSize: 65536
Size: 2147483648

また,sysctl でキャッシュの制御ができるようです.
used_hi と timeout を変えると先ほどの試験の結果も変わりそうです.

# sysctl -a | grep kern.geom.cache.
kern.geom.cache.used_hi: 20
kern.geom.cache.used_lo: 5
kern.geom.cache.idletime: 5
kern.geom.cache.timeout: 10
kern.geom.cache.enable: 1
kern.geom.cache.debug: 0

sysctl の値を変えて追試してみる

ドキュメント,マニュアルに全く記載がないので想定で設定してみます.
kern.geom.cache.used_hi はきっとハイウォーターマークだと想定し,これを超えて kern.geom.cache.timeout の時間を超えたものがキャッシュからパージされてしまうのではないかと考えてみました.

ですので,以下のように設定して2回ほど dump を実行してみます.
カウンターだけリセットもしています.

# sysctl kern.geom.cache.used_hi=80
kern.geom.cache.used_hi: 20 -> 80

# sysctl kern.geom.cache.timeout=120
kern.geom.cache.timeout: 10 -> 120

# gcache reset cache3-0
# gcache list
Geom name: cache3-0
WroteBytes: 0
Writes: 0
CacheFull: 0
CacheMisses: 0
CacheHits: 0
CacheReadBytes: 0
CacheReads: 0
ReadBytes: 0
Reads: 0
InvalidEntries: 0
UsedEntries: 3342
Entries: 3342
TailOffset: 214748299264
BlockSize: 65536
Size: 2147483648

1回目

# date ; dump -f - -0 /dev/cache/cache3-0 > /dev/null ; date
Tue Dec  5 21:52:46 JST 2023
  DUMP: Date of this level 0 dump: Tue Dec  5 21:52:46 2023
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/cache/cache3-0 to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 1405443 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 1402371 tape blocks
  DUMP: finished in 25 seconds, throughput 56094 KBytes/sec
  DUMP: DUMP IS DONE
Tue Dec  5 21:53:12 JST 2023

26秒ですね.先ほどと変わらずです.キャッシュに残っているものがあるのでそれが利用された為.なのかな?

2回目

# date ; dump -f - -0 /dev/cache/cache3-0 > /dev/null ; date
Tue Dec  5 21:54:13 JST 2023
  DUMP: Date of this level 0 dump: Tue Dec  5 21:54:13 2023
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/cache/cache3-0 to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 1405443 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 1402371 tape blocks
  DUMP: finished in 25 seconds, throughput 56094 KBytes/sec
  DUMP: DUMP IS DONE
Tue Dec  5 21:54:39 JST 2023

2回目も26秒.んー… わからない…

すっきりしない結果とはなりましたが,GEOM CACHE の効果自体は確認はできました.
UFS を利用してファイルサーバーやメールスプールを提供している場合などは有効ではないでしょうか.

以上,GEOM CACHE の紹介でした.

コメント

タイトルとURLをコピーしました