備忘録的なもの

自宅サーバを N100 搭載マシンに置き換える( Beelink MINI S12 Pro )

自宅サーバとして使っていたマシンを買い替えて、ベンチマーク的なことをやってみたのでそのメモ。

去年の夏頃(?)辺りから話題になっていた N100 搭載ミニ PC を今年の正月頃に買ったのだが、 設定やデータを移すためのスクリプト類の整備だったり、 ベンチマークのためのまとまった時間を取るのが億劫で温めていたもの。

半年近く未開封で転がしてるのをいい加減もったいなくなってきてやっと手を付けた、というのが今回。

買い替え前後のマシン

買い替え前のマシンは Intel NUC の i5-7260U 搭載機でだいぶ古い。 Windows デスクトップマシンとして数年、 Linux サブ機として OS 入れ替えながら数年使った後、 最近は Wireguard のサーバ的な用途で使っていた。 何か具体的な不満があったりしたわけではないが、 単純に古くなってきてるというのと、最近の CPU なら電力効率とかも改善してるんだろうな、 という期待で新しく N100 搭載機を買った、という感じの経緯。

買い替え前後のマシンの大まかなスペックとしてはこんな感じ。

メーカー Intel Beelink
機種 BOXNUC7i5BNK MINI S12 Pro
CPU Intel Core i5-7260U Intel N100
メモリ 8GiB x 2 ( DDR4 2133MHz ) 16GiB x 1 ( DDR4 3200MHz )
ストレージ 250GiB ( SATA 3 ) 500GiB ( M.2 NVMe PCIe 3.0)
前後のマシンの外観の写真

本体サイズ的には大体一緒だが重量は今回買ったヤツの方がだいぶ軽い。 インターフェースとしては USB 3.2 Gen2 のポートが増えてたり、 USB-C のポートがなくなったり多少の違いはあるが概ね同じ。 サーバ用途というのもあって、動かしたり色々抜き差しすることもそんなに無いので、使う上での影響は特に無し。

ただ一点 AC アダプタのコンセント側部分の幅が倍くらいになったので、ここは若干使いにくくなった。 (電源タップで隣に挿しているモノによっては干渉するようになったので少し並べ替えた)

ACアダプターの外観の写真
左がこれまで使ってた NUC 用、右が今回買ったミニPC用

ベンチマーク環境

Arch Linux のセットアップと各種パッケージのインストール、 dotfiles のデプロイまでやった状態。

参考までにベンチマーク実行時点で動いていたサービス、インストールしたパッケージはこんな感じ(折りたたみ)

サービス

❯ systemctl status
● mini-s12
    State: running
    Units: 320 loaded (incl. loaded aliases)
     Jobs: 0 queued
   Failed: 0 units
    Since: Mon 2024-05-27 12:44:20 JST; 3min 24s ago
  systemd: 255.6-2-arch
   CGroup: /
           ├─init.scope
           │ └─1 /sbin/init
           ├─system.slice
           │ ├─NetworkManager.service
           │ │ └─451 /usr/bin/NetworkManager --no-daemon
           │ ├─dbus-broker.service
           │ │ ├─395 /usr/bin/dbus-broker-launch --scope system --audit
           │ │ └─401 dbus-broker --log 4 --controller 9 --machine-id f92953ef2d4c442383f2abd66880ff01 --max-bytes 536870912 --max-fds 4096 --max-matches 131072 --audit
           │ ├─sshd.service
           │ │ └─496 "sshd: /usr/bin/sshd -D [listener] 0 of 10-100 startups"
           │ ├─system-getty.slice
           │ │ └─[email protected]
           │ │   └─500 /sbin/agetty -o "-p -- \\u" --noclear - linux
           │ ├─systemd-journald.service
           │ │ └─252 /usr/lib/systemd/systemd-journald
           │ ├─systemd-logind.service
           │ │ └─404 /usr/lib/systemd/systemd-logind
           │ ├─systemd-udevd.service
           │ │ └─udev
           │ │   └─302 /usr/lib/systemd/systemd-udevd
           │ ├─systemd-userdbd.service
           │ │ ├─265 /usr/lib/systemd/systemd-userdbd
           │ │ ├─372 "systemd-userwork: waiting..."
           │ │ ├─373 "systemd-userwork: waiting..."
           │ │ └─374 "systemd-userwork: waiting..."
           │ └─wpa_supplicant.service
           │   └─503 /usr/bin/wpa_supplicant -u -s -O /run/wpa_supplicant
           └─user.slice
             └─user-1000.slice
               ├─session-1.scope
               │ ├─540 "sshd: shida [priv]"
               │ ├─557 "sshd: shida@pts/0"
               │ ├─558 -bash
               │ ├─675 systemctl status
               │ └─676 less
               └─[email protected]
                 └─init.scope
                   ├─546 /usr/lib/systemd/systemd --user
                   └─548 "(sd-pam)"

パッケージ

❯ pacman -Qs | grep '^local/'
local/acl 2.3.2-1
local/archlinux-keyring 20240520-1
local/argon2 20190702-5
local/attr 2.5.2-1
local/audit 4.0.1-3
local/autoconf 2.72-1
local/automake 1.16.5-2
local/avahi 1:0.8+r194+g3f79789-2
local/base 3-2
local/base-devel 1-1
local/bash 5.2.026-2
local/bash-completion 2.11-3
local/bc 1.07.1-4
local/binutils 2.42+r91+g6224493e457-1
local/bison 3.8.2-6
local/brotli 1.1.0-2
local/bzip2 1.0.8-6
local/ca-certificates 20220905-1
local/ca-certificates-mozilla 3.100-1
local/ca-certificates-utils 20220905-1
local/cairo 1.18.0-2
local/coreutils 9.5-1
local/cryptsetup 2.7.2-1
local/curl 8.8.0-1
local/db5.3 5.3.28-5
local/dbus 1.14.10-2
local/dbus-broker 36-2
local/dbus-broker-units 36-2
local/debugedit 5.0-6
local/default-cursors 2-1
local/device-mapper 2.03.24-1
local/diffutils 3.10-1
local/double-conversion 3.3.0-1
local/duktape 2.7.0-6
local/e2fsprogs 1.47.1-2
local/enchant 2.7.3-2
local/expat 2.6.2-1
local/fakeroot 1.34-1
local/fcitx5 5.1.9-1 (fcitx5-im)
local/fcitx5-mozc 2.26.4632.102.g4d2e3bd-2
local/file 5.45-1
local/filesystem 2024.04.07-1
local/findutils 4.9.0-3
local/flex 2.6.4-5
local/fontconfig 2:2.15.0-2
local/freetype2 2.13.2-1
local/fribidi 1.0.14-1
local/gawk 5.3.0-1
local/gc 8.2.6-1
local/gcc 14.1.1+r58+gfc9fb69ad62-1
local/gcc-libs 14.1.1+r58+gfc9fb69ad62-1
local/gdbm 1.23-2
local/gdk-pixbuf2 2.42.12-1
local/gettext 0.22.5-1
local/git 2.45.1-1
local/glib2 2.80.2-2
local/glibc 2.39+r52+gf8e4623421-1
local/gmp 6.3.0-2
local/gnupg 2.4.5-1
local/gnutls 3.8.5-1
local/gpgme 1.23.2-4
local/gpm 1.20.7.r38.ge82d1a6-5
local/graphite 1:1.3.14-3
local/grep 3.11-1
local/groff 1.23.0-5
local/guile 3.0.9-1
local/gzip 1.13-2
local/harfbuzz 8.5.0-1
local/hwdata 0.382-1
local/iana-etc 20240412-1
local/icu 75.1-1
local/inetutils 2.5-1
local/intel-ucode 20240514-1
local/iproute2 6.9.0-1
local/iptables 1:1.8.10-1
local/iputils 20240117-1
local/iso-codes 4.16.0-1
local/jansson 2.14-4
local/jbigkit 2.1-8
local/json-c 0.17-1
local/kbd 2.6.4-1
local/keyutils 1.6.3-2
local/kmod 32-1
local/krb5 1.21.2-2
local/less 1:643-2
local/libarchive 3.7.4-1
local/libassuan 2.5.7-2
local/libbpf 1.3.0-1
local/libcap 2.70-1
local/libcap-ng 0.8.5-2
local/libcups 1:2.4.8-1
local/libdaemon 0.14-5
local/libdatrie 0.2.13-4
local/libdrm 2.4.120-1
local/libedit 20230828_3.1-1
local/libelf 0.191-3
local/libevdev 1.13.1-1
local/libevent 2.1.12-4
local/libffi 3.4.6-1
local/libgcrypt 1.10.3-1
local/libglvnd 1.7.0-1
local/libgpg-error 1.49-1
local/libgudev 238-1
local/libice 1.1.1-2
local/libidn2 2.3.7-1
local/libinput 1.25.0-1
local/libisl 0.26-2
local/libjpeg-turbo 3.0.3-1
local/libksba 1.6.6-1
local/libldap 2.6.7-2
local/libluv 1.48.0_2-1
local/libmm-glib 1.22.0-1
local/libmnl 1.0.5-2
local/libmpc 1.3.1-1
local/libndp 1.8-1
local/libnetfilter_conntrack 1.0.9-2
local/libnewt 0.52.24-2
local/libnfnetlink 1.0.2-2
local/libnftnl 1.2.6-1
local/libnghttp2 1.62.1-1
local/libnghttp3 1.3.0-1
local/libnl 3.9.0-1
local/libnm 1.46.0-2
local/libnsl 2.0.1-1
local/libomxil-bellagio 0.9.3-4
local/libp11-kit 0.25.3-1
local/libpcap 1.10.4-1
local/libpciaccess 0.18.1-2
local/libpgm 5.3.128-3
local/libpipeline 1.5.7-2
local/libpng 1.6.43-1
local/libproxy 0.5.6-1
local/libpsl 0.21.5-2
local/libsasl 2.1.28-4
local/libseccomp 2.5.5-3
local/libsecret 0.21.4-1
local/libsm 1.2.4-1
local/libsodium 1.0.19-3
local/libssh2 1.11.0-1
local/libsysprof-capture 46.0-3
local/libtasn1 4.19.0-1
local/libteam 1.32-1
local/libthai 0.1.29-3
local/libtiff 4.6.0-5
local/libtirpc 1.3.4-1
local/libtool 2.5.0+1+g38c166c8-1
local/libunistring 1.2-1
local/libusb 1.0.27-1
local/libutempter 1.2.1-4
local/libuv 1.48.0-2
local/libverto 0.3.2-5
local/libvterm 0.3.3-1
local/libwacom 2.11.0-1
local/libx11 1.8.9-1
local/libxau 1.0.11-2
local/libxcb 1.17.0-1
local/libxcrypt 4.4.36-1
local/libxdamage 1.1.6-1
local/libxdmcp 1.1.5-1
local/libxext 1.3.6-1
local/libxfixes 6.0.1-1
local/libxft 2.3.8-1
local/libxi 1.8.1-1
local/libxkbcommon 1.7.0-2
local/libxkbcommon-x11 1.7.0-2
local/libxkbfile 1.1.3-1
local/libxml2 2.12.7-1
local/libxmu 1.2.1-1
local/libxrender 0.9.11-1
local/libxshmfence 1.3.2-1
local/libxt 1.3.0-1
local/libxv 1.0.12-1
local/libxvmc 1.0.14-1
local/libxxf86vm 1.1.5-1
local/licenses 20240206-1
local/linux 6.9.1.arch1-2
local/linux-api-headers 6.8-1
local/linux-firmware 20240510.b9d2bf23-1
local/linux-firmware-whence 20240510.b9d2bf23-1
local/linux-lts 6.6.31-2
local/llvm-libs 17.0.6-5
local/lm_sensors 1:3.6.0.r41.g31d1f125-2
local/lua51-lpeg 1.1.0-2
local/luajit 2.1.1713773202-1
local/lz4 1:1.9.4-3
local/lzo 2.10-5
local/m4 1.4.19-3
local/make 4.4.1-2
local/man-db 2.12.1-1
local/man-pages 6.8-1
local/md4c 0.5.2-1
local/mesa 1:24.0.8-1
local/mkinitcpio 39.1-1
local/mkinitcpio-busybox 1.36.1-1
local/mobile-broadband-provider-info 20240407-1
local/mpfr 4.2.1-3
local/msgpack-c 5.0.0-2
local/mtdev 1.1.6-2
local/ncurses 6.5-2
local/neovim 0.10.0-3
local/nettle 3.9.1-1
local/networkmanager 1.46.0-2
local/nftables 1:1.0.9-3
local/npth 1.7-1
local/nspr 4.35-2
local/nss 3.100-1
local/openssh 9.7p1-2
local/openssl 3.3.0-1
local/p11-kit 0.25.3-1
local/pacman 6.1.0-3
local/pacman-contrib 1.10.6-1
local/pacman-mirrorlist 20231001-1
local/pam 1.6.1-2
local/pambase 20230918-1
local/pango 1:1.52.2-1
local/patch 2.7.6-10
local/pciutils 3.12.0-1
local/pcre 8.45-4
local/pcre2 10.43-4
local/pcsclite 2.2.2-1
local/perl 5.38.2-1
local/perl-error 0.17029-5
local/perl-mailtools 2.21-7
local/perl-timedate 2.33-5
local/pinentry 1.3.0-1
local/pixman 0.43.4-1
local/pkgconf 2.1.1-1
local/polkit 124-2
local/popt 1.19-1
local/procps-ng 4.0.4-3
local/psmisc 23.7-1
local/qrencode 4.1.1-2
local/qt5-base 5.15.13+kde+r147-1 (qt5)
local/qt5-translations 5.15.13-1 (qt5)
local/readline 8.2.010-1
local/screen 4.9.1-2
local/screenfetch 3.9.1-3
local/sed 4.9-3
local/shadow 4.15.1-2
local/shared-mime-info 2.4-1
local/slang 2.3.3-2
local/sqlite 3.46.0-1
local/starship 1.19.0-1
local/sudo 1.9.15.p5-1
local/systemd 255.6-2
local/systemd-libs 255.6-2
local/systemd-sysvcompat 255.6-2
local/tar 1.35-2
local/texinfo 7.1-2
local/tpm2-tss 4.0.1-1
local/tree-sitter 0.22.6-1
local/tree-sitter-lua 0.1.0-2 (tree-sitter-grammars)
local/tree-sitter-query 0.3.0-1 (tree-sitter-grammars)
local/tree-sitter-vimdoc 2.5.1-2 (tree-sitter-grammars)
local/tslib 1.23-1
local/tzdata 2024a-2
local/unibilium 2.1.1-2
local/util-linux 2.40.1-1
local/util-linux-libs 2.40.1-1
local/vi 1:070224-6
local/wayland 1.22.0-1
local/which 2.21-6
local/wireguard-tools 1.0.20210914-2
local/wpa_supplicant 2:2.10-8
local/xcb-imdkit 1.0.8-1
local/xcb-proto 1.17.0-2
local/xcb-util 0.4.1-1
local/xcb-util-image 0.4.1-2
local/xcb-util-keysyms 0.4.1-4
local/xcb-util-renderutil 0.3.10-1
local/xcb-util-wm 0.4.2-1
local/xdg-utils 1.2.1-1
local/xf86-video-intel 1:2.99.917+923+gb74b67f0-2 (xorg-drivers)
local/xkeyboard-config 2.41-1
local/xorg-xprop 1.2.7-1 (xorg-apps xorg)
local/xorg-xset 1.2.5-1 (xorg-apps xorg)
local/xorgproto 2024.1-2
local/xz 5.6.1-3
local/zeromq 4.3.5-2
local/zlib 1:1.3.1-2
local/zstd 1.5.6-1

OS 設定の調整や BIOS でのチューニング等はどちらも行ってない状態。

電源と有線LAN のみ繋いで別マシンから SSH した状態で、こんな感じで UnixBench を実行。

git clone https://github.com/kdlucas/byte-unixbench
cd byte-unixbench/UnixBench
./Run

UnixBench を使ったのは今回が初めてだったが、実行方法や結果の見方については IDCF のブログが分かりやすく参考になった。

テストの設定を弄ることはできるが、今回は上記の通り特に弄らず単純な実行にした。

  • Index テスト
    • SPARCstation 20 SM61 という 1997年ごろのマシンを基準にして、その何倍の性能があるかという値らしい
    • 少しググった感じ UnixBench の結果は Index スコアで見ることが多そうだった
  • 1 並列テスト + 4 並列テスト
    • たまたまではあるが今回はどっちのマシンも論理コア数が 4 なのでこうなる(1並列+論理コア数並列)
    • 論理コア数が違う CPU で比較する場合はちゃんとどうやるか考えて設定した方が良さそう
  • グラフィックのテストも無し
    • 今のところデスクトップ運用の予定も無いため

ベンチマーク

ということで早速ベンチマーク結果

スコア

1並列テスト

テスト項目 NUC7i5BNH ( i5-7260U ) mini-s12 ( N100 ) 比率(N100 / i5-7260U)
Dhrystone 2 using register variables 3932.5 4615.2 117
Double-Precision Whetstone 1398.6 1267.6 91
Execl Throughput 730.6 1005.5 138
File Copy 1024 bufsize 2000 maxblocks 1391.2 3166.2 228
File Copy 256 bufsize 500 maxblocks 861.7 2105.5 244
File Copy 4096 bufsize 8000 maxblocks 3099.6 4991.8 161
Pipe Throughput 557.5 1414.1 254
Pipe-based Context Switching 400.2 497.6 124
Process Creation 663.9 601.7 91
Shell Scripts (1 concurrent) 1856.8 938.3 51
Shell Scripts (8 concurrent) 3860.3 3361.0 87
System Call Overhead 238.9 753.1 315
System Benchmarks Index Score 1117.4 1553.0 139
シングルテストのインデックスのグラフ

4並列テスト

テスト項目 NUC7i5BNH ( i5-7260U ) mini-s12 ( N100 ) 比率(N100 / i5-7260U)
Dhrystone 2 using register variables 8692.0 15695.7 181
Double-Precision Whetstone 4980.6 4321.2 87
Execl Throughput 1980.4 3144.1 159
File Copy 1024 bufsize 2000 maxblocks 3235.8 9937.2 307
File Copy 256 bufsize 500 maxblocks 2026.5 7038.2 347
File Copy 4096 bufsize 8000 maxblocks 7333.4 10036.2 137
Pipe Throughput 1281.6 4822.1 376
Pipe-based Context Switching 872.2 1483.9 170
Process Creation 1711.5 2566.4 150
Shell Scripts (1 concurrent) 4018.0 3438.5 86
Shell Scripts (8 concurrent) 4064.2 3651.4 90
System Call Overhead 513.7 2567.5 500
System Benchmarks Index Score 2521.8 4595.0 182
マルチテストのインデックスのグラフ
参考までに表にまとめる前の実行結果そのものも貼っておく(折りたたみ)

Intel BOXNUC7i5BNK

   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   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***) = /home/shida/work/byte-unixbench/UnixBench/tmp
      * Results                      = /home/shida/work/byte-unixbench/UnixBench/results
------------------------------------------------------------------------------


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

4 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

4 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

4 x Execl Throughput  1 2 3

4 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

4 x File Copy 256 bufsize 500 maxblocks  1 2 3

4 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

4 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

4 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

4 x Process Creation  1 2 3

4 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

4 x Shell Scripts (1 concurrent)  1 2 3

4 x Shell Scripts (8 concurrent)  1 2 3

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: nuc: GNU/Linux
   OS: GNU/Linux -- 6.8.9-arch1-2 -- #1 SMP PREEMPT_DYNAMIC Tue, 07 May 2024 21:35:54 +0000
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Core(TM) i5-7260U CPU @ 2.20GHz (4401.3 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 1: Intel(R) Core(TM) i5-7260U CPU @ 2.20GHz (4401.3 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 2: Intel(R) Core(TM) i5-7260U CPU @ 2.20GHz (4401.3 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 3: Intel(R) Core(TM) i5-7260U CPU @ 2.20GHz (4401.3 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   02:05:59 up 3 min,  1 user,  load average: 0.00, 0.00, 0.00; runlevel

------------------------------------------------------------------------
Benchmark Run: Thu May 16 2024 02:05:59 - 02:34:01
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       45891792.9 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     7692.3 MWIPS (9.9 s, 7 samples)
Execl Throughput                               3141.8 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        550917.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          142615.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1797793.4 KBps  (30.0 s, 2 samples)
Pipe Throughput                              693561.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 160071.6 lps   (10.0 s, 7 samples)
Process Creation                               8364.9 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   7872.9 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2316.2 lpm   (60.0 s, 2 samples)
System Call Overhead                         358305.3 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   45891792.9   3932.5
Double-Precision Whetstone                       55.0       7692.3   1398.6
Execl Throughput                                 43.0       3141.8    730.6
File Copy 1024 bufsize 2000 maxblocks          3960.0     550917.9   1391.2
File Copy 256 bufsize 500 maxblocks            1655.0     142615.0    861.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    1797793.4   3099.6
Pipe Throughput                               12440.0     693561.4    557.5
Pipe-based Context Switching                   4000.0     160071.6    400.2
Process Creation                                126.0       8364.9    663.9
Shell Scripts (1 concurrent)                     42.4       7872.9   1856.8
Shell Scripts (8 concurrent)                      6.0       2316.2   3860.3
System Call Overhead                          15000.0     358305.3    238.9
                                                                   ========
System Benchmarks Index Score                                        1117.4

------------------------------------------------------------------------
Benchmark Run: Thu May 16 2024 02:34:01 - 03:02:05
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables      101436061.3 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    27393.1 MWIPS (9.9 s, 7 samples)
Execl Throughput                               8515.8 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1281363.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          335383.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       4253356.0 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1594339.7 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 348898.0 lps   (10.0 s, 7 samples)
Process Creation                              21564.7 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  17036.2 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2438.5 lpm   (60.0 s, 2 samples)
System Call Overhead                         770526.7 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  101436061.3   8692.0
Double-Precision Whetstone                       55.0      27393.1   4980.6
Execl Throughput                                 43.0       8515.8   1980.4
File Copy 1024 bufsize 2000 maxblocks          3960.0    1281363.4   3235.8
File Copy 256 bufsize 500 maxblocks            1655.0     335383.0   2026.5
File Copy 4096 bufsize 8000 maxblocks          5800.0    4253356.0   7333.4
Pipe Throughput                               12440.0    1594339.7   1281.6
Pipe-based Context Switching                   4000.0     348898.0    872.2
Process Creation                                126.0      21564.7   1711.5
Shell Scripts (1 concurrent)                     42.4      17036.2   4018.0
Shell Scripts (8 concurrent)                      6.0       2438.5   4064.2
System Call Overhead                          15000.0     770526.7    513.7
                                                                   ========
System Benchmarks Index Score                                        2521.8

Beelink MINI S12 Pro

   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   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***) = /home/shida/byte-unixbench/UnixBench/tmp
      * Results                      = /home/shida/byte-unixbench/UnixBench/results
------------------------------------------------------------------------------

Wide character in print at ./Run line 1643.
Wide character in printf at ./Run line 1674.

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
Wide character in printf at ./Run line 1574.

4 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

4 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

4 x Execl Throughput  1 2 3

4 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

4 x File Copy 256 bufsize 500 maxblocks  1 2 3

4 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

4 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

4 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

4 x Process Creation  1 2 3

4 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

4 x Shell Scripts (1 concurrent)  1 2 3

4 x Shell Scripts (8 concurrent)  1 2 3
Wide character in printf at ./Run line 1574.

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: mini-s12: GNU/Linux
   OS: GNU/Linux -- 6.9.1-arch1-2 -- #1 SMP PREEMPT_DYNAMIC Wed, 22 May 2024 13:47:07 +0000
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) N100 (1613.0 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 1: Intel(R) N100 (1613.0 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 2: Intel(R) N100 (1613.0 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 3: Intel(R) N100 (1613.0 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   17:41:24 up 1 min,  1 user,  load average: 0.00, 0.00, 0.00; runlevel

------------------------------------------------------------------------
Benchmark Run: 土  5月 25 2024 17:41:24 - 18:09:24
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       53859000.5 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     6971.9 MWIPS (9.9 s, 7 samples)
Execl Throughput                               4323.6 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1253799.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          348457.3 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2895259.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1759188.5 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 199027.5 lps   (10.0 s, 7 samples)
Process Creation                               7581.6 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   3978.4 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2016.6 lpm   (60.0 s, 2 samples)
System Call Overhead                        1129682.6 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   53859000.5   4615.2
Double-Precision Whetstone                       55.0       6971.9   1267.6
Execl Throughput                                 43.0       4323.6   1005.5
File Copy 1024 bufsize 2000 maxblocks          3960.0    1253799.0   3166.2
File Copy 256 bufsize 500 maxblocks            1655.0     348457.3   2105.5
File Copy 4096 bufsize 8000 maxblocks          5800.0    2895259.5   4991.8
Pipe Throughput                               12440.0    1759188.5   1414.1
Pipe-based Context Switching                   4000.0     199027.5    497.6
Process Creation                                126.0       7581.6    601.7
Shell Scripts (1 concurrent)                     42.4       3978.4    938.3
Shell Scripts (8 concurrent)                      6.0       2016.6   3361.0
System Call Overhead                          15000.0    1129682.6    753.1
                                                                   ========
System Benchmarks Index Score                                        1553.0

------------------------------------------------------------------------
Benchmark Run: 土  5月 25 2024 18:09:24 - 18:37:26
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables      183168554.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    23766.7 MWIPS (9.9 s, 7 samples)
Execl Throughput                              13519.5 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       3935120.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks         1164819.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       5820979.8 KBps  (30.0 s, 2 samples)
Pipe Throughput                             5998746.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 593551.3 lps   (10.0 s, 7 samples)
Process Creation                              32336.0 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  14579.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2190.9 lpm   (60.1 s, 2 samples)
System Call Overhead                        3851302.0 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  183168554.4  15695.7
Double-Precision Whetstone                       55.0      23766.7   4321.2
Execl Throughput                                 43.0      13519.5   3144.1
File Copy 1024 bufsize 2000 maxblocks          3960.0    3935120.9   9937.2
File Copy 256 bufsize 500 maxblocks            1655.0    1164819.9   7038.2
File Copy 4096 bufsize 8000 maxblocks          5800.0    5820979.8  10036.2
Pipe Throughput                               12440.0    5998746.3   4822.1
Pipe-based Context Switching                   4000.0     593551.3   1483.9
Process Creation                                126.0      32336.0   2566.4
Shell Scripts (1 concurrent)                     42.4      14579.3   3438.5
Shell Scripts (8 concurrent)                      6.0       2190.9   3651.4
System Call Overhead                          15000.0    3851302.0   2567.5
                                                                   ========
System Benchmarks Index Score                                        4595.0

消費電力

アイドル中およびベンチマークの各テスト中のピーク時消費電力もまとめてみた。 測定方法はワットチェッカー目視確認なのであくまで参考程度。

テスト項目 NUC7i5BNH ( i5-7260U ) mini-s12 ( N100 ) 比率(N100 / i5-7260U)
(idle) 6.9 4.7 68
1 x Dhrystone 2 using register variables 20.9 14.9 71
1 x Double-Precision Whetstone 18.3 13.3 73
1 x Execl Throughput 19.3 13.6 70
1 x File Copy 1024 bufsize 2000 maxblocks 18.8 13.9 74
1 x File Copy 256 bufsize 500 maxblocks 18.5 13.3 72
1 x File Copy 4096 bufsize 8000 maxblocks 20.8 17.6 85
1 x Pipe Throughput 17.5 13.1 75
1 x Pipe-based Context Switching 26.3 16.0 61
1 x Process Creation 22.2 10.7 48
1 x System Call Overhead 17.5 12.6 72
1 x Shell Scripts (1 concurrent) 23.6 10.9 46
1 x Shell Scripts (8 concurrent) 34.1 21.6 63
4 x Dhrystone 2 using register variables 34.6 21.8 63
4 x Double-Precision Whetstone 30.7 18.0 59
4 x Execl Throughput 32.0 19.2 60
4 x File Copy 1024 bufsize 2000 maxblocks 30.4 24.9 82
4 x File Copy 256 bufsize 500 maxblocks 28.6 20.0 70
4 x File Copy 4096 bufsize 8000 maxblocks 33.7 24.7 73
4 x Pipe Throughput 27.1 17.7 65
4 x Pipe-based Context Switching 30.4 17.1 56
4 x Process Creation 32.7 18.9 58
4 x System Call Overhead 25.8 15.8 61
4 x Shell Scripts (1 concurrent) 35.5 22.2 63
4 x Shell Scripts (8 concurrent) 36.0 23.0 64
アイドル中および各テスト中のピーク時消費電力のグラフ

結果の考察

素人なりに結果を眺めた感想としてはこんな感じ。

  • 全体的なスコアは上がっていながら消費電力は下がっている
    • 電力効率は世代なりに進化している
  • 各テストでのシングルからマルチでの伸び幅は N100 の方が大きい
    • マルチコアでの処理効率も世代なりに進化している
  • シングルコアでの整数や浮動少数演算の結果は大きな変化がなく、 Shell Scripts 系のテストも i5 の方が上
    • 単純な計算能力って意味だと何やかんや電力使ってクロック上げることの恩恵が大きそう(ベースクロックは i5-7260U が上)
  • File Copy 系のスコアは大きく向上している
    • CPU 内でのキャッシュ性能(メモリ性能も?)が上がった影響とかだろうか
    • この辺は電力使ってクロック上げることの影響が小さいのかも

各テストの結果を個別に見ると色々妄想はできるがひとまず全体を見ると、電力消費量は7割前後に抑えつつ、総合スコアはシングルで約1.4倍、マルチで約1.8倍程度の性能になっていた。 こうやって買い替えた意味があったことをちゃんと数値で確認できたのは良かった。

おわりに

Linux マシンのベンチマークみたいなものは今回初めてやって、 色々調べたりデータ移したり PC を何度も繋ぎ変えたりと手間はかかったものの、ベンチマークに関する知見や各種スクリプト整備の口実も得られたので良かった。

また、そこまでスペックが必要でないなら今回買った N100 のような低スペック/省電力 CPU を買うものだと漠然と思っていたのだが、 今回ベンチマークしながら色々調べてる中でこういう話も見つけたので、電力消費/効率を優先するなら必ずしもそれがベストってわけでも無さそう、というのも知った。 (単純な購入金額とかの話もあるので、今回買ったのは失敗だったとかそういう話ではなく「へー」と思ったという話)

今回サーバマシンを置き換えてスペックは上がったものの、今の所 WireGuard のサーバ的な使い方しかしてなくて、リソースはほとんど余っている。 折角買い替えたので他にも色々動かして遊ぼうとは思っており、今のところは別途 Synology の NAS キット( ds220j )で賄っている自宅 NAS の機能をこっちに持ってくるのを画策している。