この時代に SATA2/HDDは遅い。なんで入ってたの?捨てたい・・
Model Family: Seagate Constellation ES.3
SATA Version is: SATA 3.0, 3.0 Gb/s (current: 3.0 Gb/s)
ミラーで組んでる他のものは SATA3の 6.0Gb/s 出ます。なんとまあ組んでから気がついて頭を抱えます(取り替えられるSATA/SSDは手元にはある)が・・・
しかたないというか、nvme PCIインターフェイスを挿してみた
エンタプライズ仕様の NVMeならともかく、ゲームPC用のガム板^H^H^Hにサーバデータを預ける勇気は・・・。とはいえSASなんか目じゃない速さに誘惑されて負けます。というか、一昨年 mSATA対応のTX1310M5 に 止せばいいのに WD-Blue 突っ込んだら文字通り ぜ・ん・め・つ したのが尾を引いています 。
nvmecontrol devlist
nvme0: KIOXIA-EXCERIA PLUS G3 SSD
nvme0ns1 (953869MB)
信頼性を担保するなら、NVMeを複数枚挿し・・・でしょーね。
ログやキャッシュにしてみる。
性能重視ならミラーのメンバに入れるのが筋・・・。でも「フラッシュストレージをキャッシュに使うのがいい」的な記事はある(信頼性は全然あるものだと思う)し、キャッシュに使えるNVMeならもう一枚あるので、取り敢えず今日はキャッシュにしてみましょう。何事もテストです。
- ZILデバイスは "仕様" から実メモリの1/2までで頭打ちです。
- L2ARC 面倒なので残り全部(流石に容量が大きすぎて無駄だけれど・・)
多分、2TBくらいの デバイスで、1TBをメンバに割りあての、残りをログと
キャッシュに振り分けというのがベスト?
# gpart create -s GPT nda0
nda0 created
# gpart add -t freebsd-swap -s 2G
nda0p1 added
# gpart add -t freebsd-zfs -s 16G
nda0p2 added
# gpart add -t freebsd-zfs
nda0p3 added
# zpool add pool log nvme0p2
# zpool add pool cache nvme0p3
unixbench をかける。
- 実は /tmp に記録されていた過去のデータが、再起動で消えてしまったので、取り敢えずキャッシュ設定後のデータから出してみる。
- ZIL/L2ARC 用のデバイスをHDDに差し替えられるかもこのあとテストする・・
# # # # # # # ##### ###### # # #### # #
# # ## # # # # # # # ## # # # # #
# # # # # # ## ##### ##### # # # # ######
# # # # # # ## # # # # # # # # #
# # # ## # # # # # # # ## # # # #
#### # # # # # ##### ###### # # #### # #
Version 5.1.3 Based on the Byte Magazine Unix Benchmark
Multi-CPU version Version 5 revisions by Ian Smith,
Sunnyvale, CA, USA
January 13, 2011 johantheghost at yahoo period com
------------------------------------------------------------------------------
Use directories for:
* File I/O tests (named fs***) = /tmp
* Results = /tmp
------------------------------------------------------------------------------
1 x Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10
1 x Double-Precision Whetstone 1 2 3 4 5 6 7 8 9 10
1 x Execl Throughput 1 2 3
1 x File Copy 1024 bufsize 2000 maxblocks 1 2 3
1 x File Copy 256 bufsize 500 maxblocks 1 2 3
1 x File Copy 4096 bufsize 8000 maxblocks 1 2 3
1 x Pipe Throughput 1 2 3 4 5 6 7 8 9 10
1 x Pipe-based Context Switching 1 2 3 4 5 6 7 8 9 10
1 x Process Creation 1 2 3
1 x System Call Overhead 1 2 3 4 5 6 7 8 9 10
1 x Shell Scripts (1 concurrent) 1 2 3
1 x Shell Scripts (8 concurrent) 1 2 3
40 x Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10
- 親の顔より見飽きた unixbench.. なかなか終わりません。
- 40 x Dhrystone ってのは 無駄に 2Way だからですね。
------------------------------------------------------------------------
Benchmark Run: Mon Feb 10 2025 09:16:36 - 09:45:07
40 CPUs in system; running 40 parallel copies of tests
Dhrystone 2 using register variables 638899945.1 lps (10.0 s, 7 samples)
Double-Precision Whetstone 189430.5 MWIPS (9.4 s, 7 samples)
Execl Throughput 40688.5 lps (29.7 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 60148.0 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 15625.0 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 237567.8 KBps (30.0 s, 2 samples)
Pipe Throughput 33976454.8 lps (10.0 s, 7 samples)
Pipe-based Context Switching 4409648.2 lps (10.0 s, 7 samples)
Process Creation 51637.6 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 82512.9 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 9337.6 lpm (60.1 s, 2 samples)
System Call Overhead 22989139.3 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 638899945.1 54747.2
Double-Precision Whetstone 55.0 189430.5 34441.9
Execl Throughput 43.0 40688.5 9462.4
File Copy 1024 bufsize 2000 maxblocks 3960.0 60148.0 151.9
File Copy 256 bufsize 500 maxblocks 1655.0 15625.0 94.4
File Copy 4096 bufsize 8000 maxblocks 5800.0 237567.8 409.6
Pipe Throughput 12440.0 33976454.8 27312.3
Pipe-based Context Switching 4000.0 4409648.2 11024.1
Process Creation 126.0 51637.6 4098.2
Shell Scripts (1 concurrent) 42.4 82512.9 19460.6
Shell Scripts (8 concurrent) 6.0 9337.6 15562.7
System Call Overhead 15000.0 22989139.3 15326.1
========
System Benchmarks Index Score 5389.2
zil、l2arc デバイスを取り除く
- zil デバイスを外す時にいろいろあるそうです・・・
pool: zfsrt
state: ONLINE
scan: scrub repaired 0B in 01:07:42 with 0 errors on Fri Feb 7 10:07:42 2025
config:
NAME STATE READ WRITE CKSUM
zfsrt ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
da0p4 ONLINE 0 0 0
da2p4 ONLINE 0 0 0
da3p4 ONLINE 0 0 0
logs
nda0p3 ONLINE 0 0 0
cache
nda0p4 ONLINE 0 0 0
- l2arc は さくっと取れました。
zpool remove zfsrt nda0p4
server # zpool remove zfsrt nda0p3
^Z
zsh: suspended zpool remove zfsrt nda0p3
server #
server #
- zil を撤去するのは時間がかかるので割り込んでみたら数分待たされました。
server# bg
[1] + continued zpool remove zfsrt nda0p3
server#
[1] + done zpool remove zfsrt nda0p3
server#
- 除去できました。
- バグがあったのか消せずに手間取ったそうです。
https://peta.okechan.net/blog/archives/4139
server# zpool status
pool: zfsrt
state: ONLINE
scan: scrub repaired 0B in 01:07:42 with 0 errors on Fri Feb 7 10:07:42 2025
config:
NAME STATE READ WRITE CKSUM
zfsrt ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
da0p4 ONLINE 0 0 0
da2p4 ONLINE 0 0 0
da3p4 ONLINE 0 0 0
errors: No known data errors
server# zpool scrub zfsrt
server# zpool status
pool: zfsrt
state: ONLINE
scan: scrub in progress since Mon Feb 10 09:55:35 2025
15.2G / 242G scanned at 3.04G/s, 0B / 242G issued
0B repaired, 0.00% done, no estimated completion time
config:
NAME STATE READ WRITE CKSUM
zfsrt ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
da0p4 ONLINE 0 0 0
da2p4 ONLINE 0 0 0
da3p4 ONLINE 0 0 0
errors: No known data errors
server#
- zfs 使いの心得として、なにかの作業したら scrub かけます。(でもメディアが遅くていたく後悔します)
242G / 242G scanned, 202G / 242G issued at 70.1M/s
- ↑こんな速度では、いろいろ入れ替えたいときに時間的制約で卒倒しそうになります。 骨董品はとっとと M.2/NVMeに入れ替えましょう。
- ちなみにこのサーバでは "AHCI SGPIO Enclosure" というのが認識されていて、SATAのむき出しではなく SCSI扱いになっています。ただしSES-2ユーティリティでは オプティカルデバイスでHDDは認識されず。
- あと、RDXドライブもついていますが、512Gのユニットを挿したままです。交換メディアは正価では結構なお値段だった記憶。
Benchmark Run: Mon Feb 10 2025 11:04:19 - 11:33:44
40 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 27551830.6 lps (10.1 s, 7 samples)
Double-Precision Whetstone 5364.9 MWIPS (8.9 s, 7 samples)
Execl Throughput 2025.8 lps (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 211147.7 KBps (30.1 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 53916.9 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 728882.6 KBps (30.0 s, 2 samples)
Pipe Throughput 1193103.6 lps (10.1 s, 7 samples)
Pipe-based Context Switching 65893.1 lps (10.1 s, 7 samples)
Process Creation 1899.8 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 3091.9 lpm (60.1 s, 2 samples)
Shell Scripts (8 concurrent) 2697.9 lpm (60.0 s, 2 samples)
System Call Overhead 723495.3 lps (10.1 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 27551830.6 2360.9
Double-Precision Whetstone 55.0 5364.9 975.4
Execl Throughput 43.0 2025.8 471.1
File Copy 1024 bufsize 2000 maxblocks 3960.0 211147.7 533.2
File Copy 256 bufsize 500 maxblocks 1655.0 53916.9 325.8
File Copy 4096 bufsize 8000 maxblocks 5800.0 728882.6 1256.7
Pipe Throughput 12440.0 1193103.6 959.1
Pipe-based Context Switching 4000.0 65893.1 164.7
Process Creation 126.0 1899.8 150.8
Shell Scripts (1 concurrent) 42.4 3091.9 729.2
Shell Scripts (8 concurrent) 6.0 2697.9 4496.4
System Call Overhead 15000.0 723495.3 482.3
========
System Benchmarks Index Score 674.9
------------------------------------------------------------------------
Benchmark Run: Mon Feb 10 2025 11:33:44 - 12:03:14
40 CPUs in system; running 40 parallel copies of tests
Dhrystone 2 using register variables 638463745.2 lps (10.0 s, 7 samples)
Double-Precision Whetstone 189404.0 MWIPS (9.4 s, 7 samples)
Execl Throughput 41209.7 lps (29.7 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 60242.4 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 15631.6 KBps (30.1 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 228578.5 KBps (30.1 s, 2 samples)
Pipe Throughput 34024413.1 lps (10.0 s, 7 samples)
Pipe-based Context Switching 4412099.5 lps (10.0 s, 7 samples)
Process Creation 51540.3 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 85834.7 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 9384.8 lpm (60.1 s, 2 samples)
System Call Overhead 23093901.4 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 638463745.2 54709.8
Double-Precision Whetstone 55.0 189404.0 34437.1
Execl Throughput 43.0 41209.7 9583.6
File Copy 1024 bufsize 2000 maxblocks 3960.0 60242.4 152.1
File Copy 256 bufsize 500 maxblocks 1655.0 15631.6 94.5
File Copy 4096 bufsize 8000 maxblocks 5800.0 228578.5 394.1
Pipe Throughput 12440.0 34024413.1 27350.8
Pipe-based Context Switching 4000.0 4412099.5 11030.2
Process Creation 126.0 51540.3 4090.5
Shell Scripts (1 concurrent) 42.4 85834.7 20244.0
Shell Scripts (8 concurrent) 6.0 9384.8 15641.3
System Call Overhead 15000.0 23093901.4 15395.9
========
System Benchmarks Index Score 5400.2
↑ Unixbench・・・ キャッシュ外しても ほとんど変わりませんでした。File Copy 系となると zpool/mirror の構成により 性能重視より信頼性に傾いているので...
今日の 結論 : unixbench では微妙な差しかありませんでした・・・
誤差の範囲。やはり mirror なので・・ もう一台ある zraid20 のサーバだと効果が出るかもしれません。今後のzpool いじりは、テストのサーバでやります・・・ チューニングは必要なんですが、応答が悪くて冷や汗物です。昔と違って延々とデバイスを掴んでハングアップしてしまうことはないのですが・・・
以上