2025W08
やりたい事
- ○○ハック
- 眼鏡
やった事
- micro-keyboardのイテレーションを回した。
- Nucbox G9のディスクにベンチマークをまわした。
学んだ事
- Bambu slicerとP1Sで、X軸方向に3mmの溝に3mm厚の物は入れられる。
- fioはO_DIRECTを使う事でキャッシュをスキップしてる。
- ZFS 2.3.0以前は、O_DIRECTを無視する。
- DebianにカスタムビルドのZFSを入れるのは、簡単。
- あるPCIeデバイスがどういう帯域で接続されているかは、
lspci -vv
で見れる。 - nvmeデバイスの生涯書き込み量はsmartctlで見れる。
- nvmeの物理セクタサイズは、
smartctl
でもnvme -H
でも見える。 - nvmeの物理セクタサイズをどう使うかは、フォーマットしなおさないといけない。
- luksレイヤにはキャッシュがある。
記録
- 20250217
- 週報を更新
- micro-keyboard
- 各所で好評らしい。
- とりあえず持ち歩く事にした。
- 12mmピッチは、置いて打つのには小さいと感じるが、手で持ち親指で押すには大きいと感じる。
- スティッキーモディファイヤが欲しい。
- ファームウエアを自作してるから、この辺は厳しい。
- Nucbox G9
- とりあえずNVMEを1枚差してDebian12でベンチマーク
- 環境
Linux debian 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm
- 結果
# ext2 on nvme | | Read(MB/s)|Write(MB/s)| |------|-----------|-----------| | Seq | 1196.000| 1120.000| | 512K | 980.000| 1057.000| | 4K | 45.600| 243.000| |4KQD32| 841.000| 516.000| # ext4 on nvme | | Read(MB/s)|Write(MB/s)| |------|-----------|-----------| | Seq | 998.000| 574.000| | 512K | 858.000| 524.000| | 4K | 41.300| 149.000| |4KQD32| 819.000| 317.000| # zfs (ashift=9) on nvme | | Read(MB/s)|Write(MB/s)| |------|-----------|-----------| | Seq | 4511.000| 2783.000| | 512K | 4231.000| 2901.000| | 4K | 180.000| 91.100| |4KQD32| 177.000| 91.800| # zfs (ashift=12) on nvme | | Read(MB/s)|Write(MB/s)| |------|-----------|-----------| | Seq | 4511.000| 2926.000| | 512K | 3954.000| 2783.000| | 4K | 181.000| 93.100| |4KQD32| 177.000| 93.800|
- 環境
- とりあえずNVMEを1枚差してDebian12でベンチマーク
- zfsのランダムが遅いのは想定してたけど、ext4が遅すぎない?
- 20250218
- Nucbox G9
- fioコマンドはopenのO_DIRECTオプションを使ってキャッシュを回避しているらしい。
- OpenZFSのO_DIRECTサポートは2.3.0(去年リリース)で入ったらしい。
- Debian12のzfsは2.1.11
ikeji@debian:~$ dpkg -l | grep zfs ii libzfs4linux 2.1.11-1+deb12u1 amd64 OpenZFS filesystem library for Linux - general support ii zfs-dkms 2.1.11-1+deb12u1 all OpenZFS filesystem kernel modules for Linux ii zfs-zed 2.1.11-1+deb12u1 amd64 OpenZFS Event Daemon ii zfsutils-linux 2.1.11-1+deb12u1 amd64 command-line tools to manage OpenZFS filesystems
- つまり、昨日の結果はARCへデータを入れるスピードになってそう。
- Debian testingでもだめで、Debian unstableで試さないといけないみたい。
- FreeBSDも試したいが、stable/14でも2.2.7
- FreeBSD Currentだと、2.3.99らしい。
- 更に調べたら、datasetレベルでARCをオフにする事は可能みたい。
ikeji@debian:/tank/data/x$ sudo zfs set primarycache=metadata tank/data ikeji@debian:/tank/data/x$ ~/fiox . | | Read(MB/s)|Write(MB/s)| |------|-----------|-----------| | Seq | 989.000| 3075.000| | 512K | 962.000| 2868.000| | 4K | 11.500| 5.974| |4KQD32| 11.600| 5.944| ikeji@debian:/tank/data/x$ sudo zfs set primarycache=all tank/data ikeji@debian:/tank/data/x$ ~/fiox . | | Read(MB/s)|Write(MB/s)| |------|-----------|-----------| | Seq | 4063.000| 3112.000| | 512K | 4000.000| 2723.000| | 4K | 185.000| 94.100| |4KQD32| 181.000| 94.800|
- シーケンシャルは、Writeは遅くならず、readだけ遅くなった?
- ランダムはがっつり遅くなった。
- fioコマンドはopenのO_DIRECTオプションを使ってキャッシュを回避しているらしい。
- micro-keyboard
- ツメをつけたのはよさそう。
- キーボードケースをうすくしすぎて、キーが押しっぱなしになった。
- ツメを片方だけにして、スライドして入れるのはどうかな?
- ツメをつけたのはよさそう。
- ミシンの使い方講座
- 監督
- はじめてなので色々と気づきがあった。
- Nucbox G9
- 20250219
- Nucbox G9
- そもそも、ちゃんとPCIe3x2でリンクアップしてるのか?
- lspciで見れそう。
ikeji@debian:~$ lspci -nn (snip) 01:00.0 Non-Volatile memory controller [0108]: Micron/Crucial Technology P2 NVMe PCIe SSD [c0a9:540a] (rev 01) (snip) ikeji@debian:~$ sudo lspci -d c0a9:540a -vv 01:00.0 Non-Volatile memory controller: Micron/Crucial Technology P2 NVMe PCIe SSD (rev 01) (prog-if 02 [NVM Express]) Subsystem: Micron/Crucial Technology P2 [Nick P2] / P3 / P3 Plus NVMe PCIe SSD (DRAM-less) (snip) LnkCap: Port #1, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L1 unlimited ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+ (snip) LnkSta: Speed 8GT/s, Width x2 (downgraded) TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- (snip)
- 8GT/sはGen3で、x4の能力があるデバイスがx2で繋ってる、と読めばいいのかな?
- lspciで見れそう。
- ファイルシステムなしでアクセスするとどうなるの?
ikeji@debian:~$ sudo ./fiod /dev/disk/by-id/nvme-CT4000P3SSD8_2309E6B4D519-part1 | | Read(MB/s)|Write(MB/s)| |------|-----------|-----------| | Seq | 1130.000| 1101.000| | 512K | 1048.000| 1046.000| | 4K | 46.300| 278.000| |4KQD32| 994.000| 897.000| ikeji@debian:~$ sudo hdparm -tT /dev/disk/by-id/nvme-CT4000P3SSD8_2309E6B4D519-part1 /dev/disk/by-id/nvme-CT4000P3SSD8_2309E6B4D519-part1: Timing cached reads: 21868 MB in 2.00 seconds = 10957.72 MB/sec Timing buffered disk reads: 4340 MB in 3.00 seconds = 1446.45 MB/sec ikeji@debian:~$ sudo dd if=/dev/zero of=/dev/disk/by-id/nvme-CT4000P3SSD8_2309E6B4D519-part1 bs=1M count=1000 oflag=direct 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.993361 s, 1.1 GB/s ikeji@debian:~$ sudo dd if=/dev/disk/by-id/nvme-CT4000P3SSD8_2309E6B4D519-part1 of=/dev/null bs=1M count=1000 iflag=direct 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.736097 s, 1.4 GB/s ikeji@debian:~$
- random writeが遅いのはext2でもこんな感じだったな。
- 昨日のARCを切った計測でも、まだdirectではなさそう。
- やはり、Debian unstableとFreeBSD currentを入れて試すか。
- ところでTBWを見る事はできる?
- smartctlの出力がHDDの時よりすっきりしてる?
ikeji@debian:~$ sudo smartctl -A /dev/disk/by-id/nvme-CT4000P3SSD8_2309E6B4D519 smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.0-31-amd64] (local build) Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org === START OF SMART DATA SECTION === SMART/Health Information (NVMe Log 0x02) Critical Warning: 0x00 Temperature: 44 Celsius Available Spare: 100% Available Spare Threshold: 5% Percentage Used: 0% Data Units Read: 396,719 [203 GB] Data Units Written: 1,154,436 [591 GB] Host Read Commands: 4,571,551 Host Write Commands: 7,650,515 Controller Busy Time: 25 Power Cycles: 7 Power On Hours: 49 Unsafe Shutdowns: 1 Media and Data Integrity Errors: 0 Error Information Log Entries: 6 Warning Comp. Temperature Time: 0 Critical Comp. Temperature Time: 0 Temperature Sensor 1: 44 Celsius Temperature Sensor 2: 59 Celsius Temperature Sensor 8: 44 Celsius
- smartctlの出力がHDDの時よりすっきりしてる?
- そもそも、ちゃんとPCIe3x2でリンクアップしてるのか?
- micro-keyboard
- ツメはいい感じに作れたが、スライドがきつすぎた。
- ツメを内側に入れるのはどうかな?
- ツメはいい感じに作れたが、スライドがきつすぎた。
- P1S
- フィラメントが切れた。
- 付属の250gの緑、eSUNの灰色1kgに続いて、bambuの灰色1KGが切れた。
- 前回切れたのは1/26だから3週間は持ったな。
- 今回はスプールから端が外れてフィラメント切れが検知された。
- 同じbambuの灰色で、リフィルのに変えた。
- 入れかえは難しくなかった。
- 端が固定されてなかった。いの?
- 同じフィラメントなら船を印刷するのはいいか。
- いや、前のフィラメントにした時に印刷してなかった。印刷しよう。
- 付属の250gの緑、eSUNの灰色1kgに続いて、bambuの灰色1KGが切れた。
- フィラメントが切れた。
- Nucbox G9
- 20250220
- micro-keyboard
- ツメを内側に入れるのはうまくいった。
- スライドがもっときつい。
- 無理矢理押し込んだら、割れた。
- ちょっと広げたが足りないみたい。
- もっかい。
- Nucbox G9
- FreeBSD stableに、openzfsを手で入れるのはできそう。
- Debian stableにopenzfsを手で入れるのはできるかな?
- マニュアルがあった
$ wget https://github.com/openzfs/zfs/releases/download/zfs-2.3.0/zfs-2.3.0.tar.gz $ tar xvf zfs-2.3.0.tar.gz $ cd zfs-2.3.0/ $ sudo apt install build-essential autoconf automake libtool gawk alien fakeroot dkms libblkid-dev uuid-dev libudev-dev libssl-dev zlib1g-dev libaio-dev libattr1-dev libelf-dev linux-headers-generic python3 python3-dev python3-setuptools python3-cffi libffi-dev python3-packaging debhelper-compat dh-python po-debconf python3-all-dev python3-sphinx libpam0g-dev dh-dkms libcurl4-openssl-dev $ ./configure $ make native-deb-utils $ rm ../openzfs-zfs-dracut_2.3.0-1_all.deb $ sudo apt install --fix-missing ../*.deb
- これでfioを走らせてみる。
| | Read(MB/s)|Write(MB/s)| |------|-----------|-----------| | Seq | 1187.000| 472.000| | 512K | 892.000| 449.000| | 4K | 12.000| 72.600| |4KQD32| 13.300| 92.800|
- 妥当そう。
- マニュアルがあった
- nvmeを4kセクタでフォーマットしないといけないらしい。
$ sudo nvme format /dev/nvme0n1 -l 1 # zfs | | Read(MB/s)|Write(MB/s)| |------|-----------|-----------| | Seq | 1195.000| 473.000| | 512K | 890.000| 450.000| | 4K | 11.700| 73.500| |4KQD32| 13.300| 94.900| # disk level | | Read(MB/s)|Write(MB/s)| |------|-----------|-----------| | Seq | 1434.000| 1148.000| | 512K | 1101.000| 1047.000| | 4K | 45.700| 270.000| |4KQD32| 971.000| 910.000|
- micro-keyboard
- 20250220
- Nucbox G9
- ディスクレベルだと、フォーマットしなおした方が早いな。
- Nucbox G9
- 20250221
- micro-keyboard
- スライドレールを広げたら入るようになった。
- とりあえずこれを持ち歩こう。
- ここまで来るのに、こんぐらいiterationした。
- Nucbox G9
- LUKS経由でディスク直
| | Read(MB/s)|Write(MB/s)| |------|-----------|-----------| | Seq | 629.000| 598.000| | 512K | 513.000| 509.000| | 4K | 37.200| 103.000| |4KQD32| 669.000| 1166.000|
- LUKS経由でzfsを使った場合。
| | Read(MB/s)|Write(MB/s)| |------|-----------|-----------| | Seq | 1213.000| 442.000| | 512K | 879.000| 407.000| | 4K | 8.250| 47.200| |4KQD32| 11.200| 57.400|
- これは何かおかしい。
- LUKS経由でディスク直
- micro-keyboard
- 20250222
- micro-keyboard
- 下半分のケースが使ってると少し開いてしまうので、止めたままになるようにツメをつけた。
- micro-keyboard
- 20250223
- microSD
- ケースがいっぱいになったので新しいケースを印刷した。
- https://makerworld.com/en/models/381873?from=search#profileId-282058
- 球体PC
- こういうのを考えた。
- インプットデバイスをどうしようか?
- microSD
意見、ご感想、コメントはフォームにどうぞ。