自宅サーバーにsambaを使ったファイル共有サーバーを用意しているのですが,その速度を測ったことがなかったと思い,やってみることにしました.
環境
実験に使った環境は次のようになっています.
kotaro@ginga:~$ cat /etc/os-release NAME="Ubuntu" VERSION="18.04.6 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.6 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic kotaro@ginga:~$ uname -a Linux ginga 4.15.0-169-generic #177-Ubuntu SMP Thu Feb 3 10:50:38 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux kotaro@ginga:~$ smbd --version Version 4.7.6-Ubuntu
測定
予め転送するファイルを共有フォルダ(/mnt/share)上に作っておきます.サイズは少し大きめに1000MBとします.
kotaro@ginga:~$ dd if=/dev/zero of=/mnt/share/zero ibs=1M obs=1M count=1000 kotaro@ginga:~$ ls /mnt/share/zero -lh -rwxrw-r-- 1 root root 1000M 3月 15 11:12 /mnt/share/zero
それではこのファイルを読みだすスピードを測ってみましょう.
sambaサーバーと同一LANセグメントにあり有線LAN(1GbitEthernet)で繋がれているデスクトップPCで測ってみます.
koutarou@koutarou-desktop/INS> dd if=/home/koutarou/share/zero of=/dev/null ibs=1M obs=1M count=1000 1000+0 レコード入力 1000+0 レコード出力 1048576000 bytes (1.0 GB, 1000 MiB) copied, 9.79496 s, 107 MB/s [03/15/22 11:53]/home/koutarou koutarou@koutarou-desktop/INS> dd if=/home/koutarou/share/zero of=/dev/null ibs=1M obs=1M count=1000 1000+0 レコード入力 1000+0 レコード出力 1048576000 bytes (1.0 GB, 1000 MiB) copied, 9.66189 s, 109 MB/s [03/15/22 11:53]/home/koutarou koutarou@koutarou-desktop/INS> dd if=/home/koutarou/share/zero of=/dev/null ibs=1M obs=1M count=1000 1000+0 レコード入力 1000+0 レコード出力 1048576000 bytes (1.0 GB, 1000 MiB) copied, 9.82612 s, 107 MB/s [03/15/22 11:53]/home/koutarou koutarou@koutarou-desktop/INS> dd if=/home/koutarou/share/zero of=/dev/null ibs=1M obs=1M count=1000 1000+0 レコード入力 1000+0 レコード出力 1048576000 bytes (1.0 GB, 1000 MiB) copied, 10.3424 s, 101 MB/s
~110MB/s(880Mbps)くらいは出ているので有線接続の速度よりも少し遅いくらいです.
(補足)ディスクアクセス速度
そもそものディスクアクセス速度も測ってみようと思います.
ディスク構成
各デバイスの情報は下のようになっています.
kotaro@ginga:~$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 2.7T 0 disk └─sda1 8:1 0 2.7T 0 part └─md0 9:0 0 1.8T 0 raid1 /mnt sdb 8:16 0 1.8T 0 disk └─md0 9:0 0 1.8T 0 raid1 /mnt sdc 8:32 0 232.9G 0 disk ├─sdc1 8:33 0 225G 0 part / ├─sdc2 8:34 0 1K 0 part └─sdc5 8:37 0 7.9G 0 part [SWAP]
データ用のHDDとして3TB(/dev/sda WesternDigital WD30EFAXRT 3TB)と2TB(/dev/sdb WesternDigital WD20EZRZ 2TB)のものをlinuxのソフトウェアRAIDの機能を使って2TBのRAID1アレイを組んでいます.
これだと3TBのディスクの方が無駄になってしまいますが,以前2TBディスクが2つだったのを3TBディスク2つにする途中なのでこうなっています. 一気に変えようとも思いましたが,それだと壊れる時期も一緒になってしまうのではないかと考え,1年程空けることに.
また,システム用として250GBのSSD(/dev/sdc WesternDigital WDS250G2B0A)を置いてあります.
read速度測定
readだけ計るのでhdparmコマンドを用いて測定します.
Tオプションを付けることで「ディスクアクセスなしでカーネルのバッファから読み出す速度」を測定できます. また,tオプションで「ディスクアクセスありでカーネルのバッファから読み出す速度」を測定できます.
RAID1ディスクでは,少しブレはありますが大体平均して130MB/sくらいは出そうです.少なくとも1GigabitEthernetと比べてボトルネックとなることはなさそうです.
kotaro@ginga:~$ sudo hdparm -tT /dev/md0 /dev/md0: Timing cached reads: 16924 MB in 1.99 seconds = 8494.59 MB/sec Timing buffered disk reads: 484 MB in 3.00 seconds = 161.25 MB/sec /dev/md0: Timing cached reads: 16300 MB in 1.99 seconds = 8180.02 MB/sec Timing buffered disk reads: 326 MB in 3.01 seconds = 108.35 MB/sec kotaro@ginga:~$ sudo hdparm -tT /dev/md0 /dev/md0: Timing cached reads: 16052 MB in 1.99 seconds = 8056.70 MB/sec Timing buffered disk reads: 404 MB in 3.01 seconds = 134.33 MB/sec
3TBディスク単体では,RAIDディスクよりも速く200MB/sくらいは出そうです.
kotaro@ginga:~$ sudo hdparm -tT /dev/sda /dev/sda: Timing cached reads: 16550 MB in 1.99 seconds = 8306.80 MB/sec Timing buffered disk reads: 574 MB in 3.01 seconds = 190.77 MB/sec kotaro@ginga:~$ sudo hdparm -tT /dev/sda /dev/sda: Timing cached reads: 16858 MB in 1.99 seconds = 8460.74 MB/sec Timing buffered disk reads: 680 MB in 3.01 seconds = 226.28 MB/sec kotaro@ginga:~$ sudo hdparm -tT /dev/sda /dev/sda: Timing cached reads: 16876 MB in 1.99 seconds = 8470.53 MB/sec Timing buffered disk reads: 644 MB in 3.00 seconds = 214.39 MB/sec
2TBディスク単体では,RAIDディスクと同じかそれよりも少し遅いといった感じでしょうか.110MB/sくらい出る感じです.RAIDよりも遅いことなんてあるのかとも思いましたが,カーネルのキャッシュも含めた速度なので単純にありえないとも言えなさそうです.
kotaro@ginga:~$ sudo hdparm -tT /dev/sdb /dev/sdb: Timing cached reads: 17242 MB in 1.99 seconds = 8654.25 MB/sec Timing buffered disk reads: 360 MB in 3.00 seconds = 119.92 MB/sec kotaro@ginga:~$ sudo hdparm -tT /dev/sdb /dev/sdb: Timing cached reads: 16828 MB in 1.99 seconds = 8446.57 MB/sec Timing buffered disk reads: 360 MB in 3.01 seconds = 119.53 MB/sec kotaro@ginga:~$ sudo hdparm -tT /dev/sdb /dev/sdb: Timing cached reads: 16624 MB in 1.99 seconds = 8343.88 MB/sec Timing buffered disk reads: 300 MB in 3.00 seconds = 99.96 MB/sec
250GB SSD単体では1回しか測ってないのであまり有意な検証ではありませんがSSDらしく500MB/sくらい出るようです.
kotaro@ginga:~$ sudo hdparm -tT /dev/sdc /dev/sdc: Timing cached reads: 16846 MB in 1.99 seconds = 8455.77 MB/sec Timing buffered disk reads: 1546 MB in 3.00 seconds = 515.18 MB/sec