読み取り速度が約40MB /秒のシングルUSB接続4TB回転ディスクを含むテストzpoolを設定しました。
このディスクのキャッシュに設定された4つの〜300GB高速SATA2内部SSDがあります。このL2ARCで約900MB /秒を読み取ることができます。
ほとんどの場合、このプールは静的な400 GBのデータセットを読み取ります。
システムには200 GB以上の利用可能なメモリがあり、私たちの目的に応じて1500 MB /秒以上で動作すると考えられています。
Every 1.0s: zpool iostat -y -v 1 1 ; zpool status -v las2: Tue Oct 16 20:20:07 2018
capacity operations bandwidth
pool alloc free read write read write
-------------------------------------------------- ----- ----- ----- ----- ----- -----
storage 417G 3.22T 239 2 29.7M 132K
usb-Seagate_M3_Portable_NM12QHQF-0:0-part1 417G 3.22T 239 2 29.7M 132K
cache - - - - - -
ata-INTEL_SSDSC2BA400G3_BTTV41450D92400HGN-part3 52.8G 291G 11 0 927K 128K
ata-INTEL_SSDSC2BA400G3_BTTV423000XA400HGN-part3 52.9G 291G 13 0 1.48M 0
ata-INTEL_SSDSC2BA400G3_BTTV423406FG400HGN-part3 52.7G 291G 8 0 324K 0
ata-INTEL_SSDSC2BA400G3_BTTV423406G6400HGN-part3 52.9G 291G 5 0 336K 0
-------------------------------------------------- ----- ----- ----- ----- ----- -----
pool: storage
state: ONLINE
scan: scrub repaired 0B in 1h56m with 0 errors on Sun Oct 14 02:20:56 2018
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
usb-Seagate_M3_Portable_NM12QHQF-0:0-part1 ONLINE 0 0 0
cache
ata-INTEL_SSDSC2BA400G3_BTTV41450D92400HGN-part3 ONLINE 0 0 0
ata-INTEL_SSDSC2BA400G3_BTTV423000XA400HGN-part3 ONLINE 0 0 0
ata-INTEL_SSDSC2BA400G3_BTTV423406FG400HGN-part3 ONLINE 0 0 0
ata-INTEL_SSDSC2BA400G3_BTTV423406G6400HGN-part3 ONLINE 0 0 0
errors: No known data errors
AIUI、読み取りはシステムメモリのARCにキャッシュされます。特定のレベルの「フル」に達すると、このデータはL2ARC(1.1TB高速SSD)に移動されます。
このプールのほぼ一定のディレクトリの1つで実行すると、デフォルトの低速tar -c . | pv > /dev/null
HDDから読み取られる速度である約40 MB /秒が表示されます。
問題は私もそれを二度目に見たことです!時には80-100MB/秒まで上がりますが、時には10MB/秒に落ちる場合もあります。私は99%の読み取りがメモリまたは高速L2ARCから来ると予想しています。
何を提供しますか?このボックスには256GBのシステムメモリがあり、そのうち200GB以上が無料なので、RAM速度を確認したいと思います。これが失敗すると、数百GBのL2ARCが未使用のままになります。
私は何が間違っていましたか?このデータを非常に高速(> 1GB /秒)でARCで読み取れないのはなぜですか?これが不可能な場合は、L2ARC(> 500MB /秒)で読むことはどうですか?ほとんどの削除されたシステムで40〜80 MB /秒が表示されるのはなぜですか?
Ubuntu bionic 18.04.1 x86_64 system.
Linux las2 4.15.0-36-generic #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
zfs-auto-snapshot/now 1.2.4-1 all [installed,local]
zfs-zed/now 0.7.5-1ubuntu16.4 amd64 [installed,local]
zfsutils-linux/now 0.7.5-1ubuntu16.4 amd64 [installed,local]
ベストアンサー1
これには2つの問題があります。
まず、データセットがメモリに収まらず、LRU(Least Recent Used)に基づいて削除されます。これは、データセット全体を実行して最初から始めた場合、探しているもののどれもARCに含まれないことを意味します。
2番目の問題は、L2ARCが思うように埋められないことです。 ARC からデータが削除されると埋められますが、塗りつぶし速度が制限されます。デフォルトの制限は8MB / Sで、2番目の読み取りにわずかな影響を与えます。この問題を解決するには、「l2arc_write_max」および「l2arc_write_boost」ZFSパラメータを確認する必要があると思います。