IDCFクラウドオブストでs4cmd
IDCF Cloud Advent Calendar 2016 の12/5が空いていたので個人的に責任(?)をとって埋めておきますね。
IDCFクラウドのオブジェクトストレージ(以下オブスト)に、s3cmd使ってデータをやり取り、遅いですよね、嫌になっちゃいますよね。
実はオブストに並列にアクセスできればもっともっと速くなります。
ここにs4cmdというスレッド対応した素晴らしいツールがあります。
github.com
中身はbotoを使ってるんですが、AWS S3用にガリっとエンドポイントが書かれてるので、そこを修正してあげればオブストでも利用できます。
Ubuntuで入れた場合だと具体的には
/usr/local/lib/python2.7/dist-packages/botocore/utils.py /usr/local/lib/python2.7/dist-packages/botocore/data/endpoints.json
の2つです。
では早速、s3cmdとs4cmdで性能比較してみましょう。
テストファイルとして以下用意しました。
10MByteのバイナリファイル10個、
1MByteのバイナリファイル10個、
100KByteのバイナリファイル10個、
1KByteのバイナリファイル10個、
合計40個、112MByte。
次のように実行して、timeコマンドのreal timeの値で比較すると
$ time s3cmd sync ./testdata/ s3://cmdtest/testdata/ $ time s4cmd sync ./testdata/ s3://cmdtest/testdata/
s3cmd sync は10秒
s4cmd sync は1秒
でした。
試してみる価値ありそうですよね。
もしさくっと試してみたい場合は「IDCFCloud CLI toolset on Ubuntu」というコミュニティテンプレートを作ったのでそちらからどうぞ。
以上、アドカレまだ日にち空いてますので、是非埋めてください!
2500Base-Xをベンチマーク
前回のとおり、2500Base-Xをベンチマークしていきましょう。
ScalewayのC2Sタイプを2台作成、OSはUbuntu14.04。
2台間をプライベートIPで通信し、内部通信とします。
最近私は、ネットワークのベンチマークのツールはiperf3をよく使いますが、
Ubuntu14.04には標準パッケージにないので、iPerfオフィシャルのdebパッケージを利用。
# wget https://iperf.fr/download/iperf_3.1/iperf3_3.1.2-1_amd64.deb # wget https://iperf.fr/download/iperf_3.1/libiperf0_3.1.2-1_amd64.deb # dpkg -i libiperf0_3.1.2-1_amd64.deb iperf3_3.1.2-1_amd64.deb
2台目(10.1.70.155)をサーバーとして実行。
# iperf3 -s
まずはTCPで、帯域を測りましょう。
1台目(10.1.69.243)をクライアントとして以下実行。
# iperf3 -c 10.1.70.155 Connecting to host 10.1.70.155, port 5201 [ 4] local 10.1.69.243 port 48520 connected to 10.1.70.155 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 282 MBytes 2.37 Gbits/sec 0 675 KBytes [ 4] 1.00-2.00 sec 281 MBytes 2.35 Gbits/sec 44 624 KBytes [ 4] 2.00-3.00 sec 280 MBytes 2.35 Gbits/sec 0 638 KBytes [ 4] 3.00-4.00 sec 280 MBytes 2.35 Gbits/sec 0 648 KBytes [ 4] 4.00-5.00 sec 281 MBytes 2.36 Gbits/sec 0 648 KBytes [ 4] 5.00-6.00 sec 281 MBytes 2.35 Gbits/sec 0 650 KBytes [ 4] 6.00-7.00 sec 280 MBytes 2.35 Gbits/sec 2 634 KBytes [ 4] 7.00-8.00 sec 280 MBytes 2.35 Gbits/sec 0 648 KBytes [ 4] 8.00-9.00 sec 281 MBytes 2.36 Gbits/sec 0 655 KBytes [ 4] 9.00-10.00 sec 280 MBytes 2.35 Gbits/sec 2 649 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 2.74 GBytes 2.35 Gbits/sec 48 sender [ 4] 0.00-10.00 sec 2.74 GBytes 2.35 Gbits/sec receiver iperf Done.
2.35Gbps出ている。
ほぼほぼ2.5Gbps使いきれてる様子。すごいちゃんと帯域出るのか。
次にUDPで、pps処理性能を測りましょう。
# iperf3 -u -b 0 -l 64 -c 10.1.70.155 Connecting to host 10.1.70.155, port 5201 [ 4] local 10.1.69.243 port 42226 connected to 10.1.70.155 port 5201 [ ID] Interval Transfer Bandwidth Total Datagrams [ 4] 0.00-1.00 sec 14.0 MBytes 117 Mbits/sec 228730 [ 4] 1.00-2.00 sec 13.9 MBytes 117 Mbits/sec 228370 [ 4] 2.00-3.00 sec 14.0 MBytes 117 Mbits/sec 228660 [ 4] 3.00-4.00 sec 13.9 MBytes 117 Mbits/sec 227960 [ 4] 4.00-5.00 sec 13.9 MBytes 117 Mbits/sec 227810 [ 4] 5.00-6.00 sec 13.9 MBytes 117 Mbits/sec 228080 [ 4] 6.00-7.00 sec 13.9 MBytes 117 Mbits/sec 227740 [ 4] 7.00-8.00 sec 13.9 MBytes 117 Mbits/sec 227770 [ 4] 8.00-9.00 sec 13.9 MBytes 117 Mbits/sec 227940 [ 4] 9.00-10.00 sec 13.9 MBytes 117 Mbits/sec 227820 - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 4] 0.00-10.00 sec 139 MBytes 117 Mbits/sec 0.003 ms 1875/2280861 (0.082%) [ 4] Sent 2280861 datagrams iperf Done.
だいたい22万pps、
10G NICには及ばないとしてもまずまずの性能は出ているんじゃないでしょうか。
2.5G NICとしては、ちゃんと性能も出てるし十分だけど、
10G NICが安くなってきた今、2.5Gの費用感がぜんぜんわからないので何とも。。。
でも、やっぱりScaleway良いなー、ハードウェア的にいつもおもしろい。
2500Base-Xって何だ?
C2タイプがリリースされたScalewayですが、そのリリース時のブログを見ると
we're introducing next generation 2500Base-X networking as a standard feature
とのことで、ネットワークは2500Base-Xを使ってるようですが、2500Base-Xて初耳でした。
内部通信なら2.5Gbps出るとのこと。
今回はこいつを調べてみた。
せっかくのベアメタルですからハードウェア情報さらりと見れるだろうし。
Ubuntu14.04のC2Sでサーバー作成。中を見ていきましょう。
# apt-get install ethtool -y # ethtool eth0 Settings for eth0: Supported ports: [ FIBRE ] Supported link modes: 2500baseX/Full Supported pause frame use: Symmetric Supports auto-negotiation: Yes Advertised link modes: 2500baseX/Full Advertised pause frame use: Symmetric Advertised auto-negotiation: Yes Speed: 2500Mb/s Duplex: Full Port: FIBRE PHYAD: 0 Transceiver: external Auto-negotiation: on Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000007 (7) drv probe link Link detected: yes
おお、ホントに2500baseXと出てくる、しかも速度も2500Mb/sとあるし。
ポートは、ファイバーとあるので、2.5GBASE-Tではない様子。
ドライバはどうなってるか見てみると、
# ethtool -i eth0 driver: igb version: 5.3.0-k firmware-version: 0.0.0 bus-info: 0000:00:14.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: no
igb!
なんとIntel NICですか、Intelが出していれば、それなりに知名度あると思ったけど、そんな存在知らなかった。
ハードウェアの情報をもう少し見てみる。
# apt-get install lshw -y # lshw -c network *-network description: Ethernet interface product: Ethernet Connection I354 2.5 GbE Backplane vendor: Intel Corporation physical id: 14 bus info: pci@0000:00:14.0 logical name: eth0 version: 03 serial: 00:07:cb:03:98:8c width: 64 bits clock: 33MHz capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical fibre autonegotiation configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.3.0-k duplex=full firmware=0.0.0 ip=10.1.71.39 latency=0 link=yes multicast=yes port=fibre resources: irq:0 memory:80000000-8001ffff ioport:1040(size=32) memory:80020000-80023fff
IntelのI354、初耳。バックプレーンとあるので、シャーシに組み込まれてるのか。
独自デザインと言う実機の写真見ても、集積型だから、こういった用途向けに出荷してるんだろうね。
The C2 #servers, 100% designed by our R&D teams for the #cloud. Request your invite now! https://t.co/v6eAjWpNTo pic.twitter.com/CF3fBIPB3c
— scaleway (@scaleway) March 9, 2016
igbのドライバのREADMEには、
The igb driver supports 2.5 Gbps operating speed on 2500BASE-KX only for I354-based network connections.
とあり、2500BASE-KXとありKXなので、やはりバックプレーンでの実装なのでしょう。
ScalewayとRunAbove、海外の格安クラウドが熱い
ScalewayのARMサーバの在庫切れが復活、
併せてC2タイプがリリース、でもC2はARMではなくなりIntel Atomに。
ARMだから良かったのに。。。
一方で、Raspberry Pi3は、64bit ARM採用。
でも、Raspbianは未だに32bitのまま。。。
どれもパッとしないなか、
RunAbove ARM CloudがAlphaからBetaに更新。
やっとアカウントをアクティベートできたので、
今回はRunAboveとScalewayを比べてみましょう。
月額 | CPUコア数 | Memory GB | Volume GB | Arch | 仮想化 | |
---|---|---|---|---|---|---|
Scaleway C1 | €2.99 | 4 | 2 | 50 | armv7l | ベアメタル |
Scaleway VC1 | €2.99 | 2 | 2 | 50 | x86_64 | KVM |
Scaleway C2S | €11.99 | 4 | 8 | 50 | x86_64 | ベアメタル |
RunAbove VPS-ARM1 | $1.13 | 1 | 2 | 10 | aarch64 | KVM |
RunAbove VPS-ARM2 | $5.65 | 4 | 8 | 20 | aarch64 | KVM |
RunAbove VPS-ARM3 | $16.97 | 12 | 24 | 30 | aarch64 | KVM |
実験価格とは言えVPS-ARM1が安過ぎでしょう。
そして、クラウドで64bit ARMが使える時代に!
では、OSをUbuntu 14.04に揃えて性能比較です。
では定番のUnixBenchから。スコアが大きい方が速い。
UnixBench Single | UnixBench Multi | |
---|---|---|
Scaleway C1 | 262.0 | 697.4 |
Scaleway VC1 | 671.8 | 1238.1 |
Scaleway C2S | 872.7 | 2065.0 |
RunAbove VPS-ARM1 | 469.3 | - |
RunAbove VPS-ARM2 | 351.7 | 1097.6 |
RunAbove VPS-ARM3 | 370.1 | 1457.9 |
1コアあたりの性能はそうでもないですが、やはり4コア揃うと速いです。
では、もう少し見ていきましょう。処理時間なので、スコアが小さい方が速い。
qn24b N=17 sec | gcc build 7-zip sec | |
---|---|---|
Scaleway C1 | 32.895 | 72.65 |
Scaleway VC1 | 32.403 | 56.09 |
Scaleway C2S | 16.202 | 28.08 |
RunAbove VPS-ARM1 | 82.376 | 120.30 |
RunAbove VPS-ARM2 | 21.697 | 31.55 |
RunAbove VPS-ARM3 | 7.024 | 11.66 |
ScalewayのC1とVC1で同じ値段なのに、約2倍の性能、Avotonさすがですね。
ARMが安いと言われてるのにそれを越えてくる、ScalewayがCPU変えてきたのにも納得です。
同じ4コアのScaleway C1とRunAbove VPS-ARM2で比べると、
VPS-ARM2の方が値段相応かそれ以上に速いですね。
この勢いで64bit ARMはやらないかなー。
俺のラズパイ2がこんなに遅いわけがない
Scalewayとの比較にあたり、同じARMということでRaspberry Pi 2 Model Bとベンチマーク。
俺のラズパイ2でUnixBenchを実行すると、自分が計測したスコアと、他のサイトに載ってるスコアが違う。
こちらのスコアは、1並列で約120、4並列で約300。 Link
他のサイトのスコアは、1並列で約170、4並列で約440。
誤差の範囲ではなさそうということで調べてみたときの流れ。
1) OSの差を確認
UnixBenchはOSによってもスコアが変わってきます。
可能ならOSもバージョンも揃えたい。
他のサイトを見ると、具体的に何のOS使ってるか明示されてなかったりもするけど
UnixBenchの結果に載ってる情報だと、Linuxカーネルのバージョンは
3.18.6-v7+
3.18.7-v7+
3.18.8-v7+
とあり、Raspbian 7 (wheezy)あたりでしょう。
エントリの日時見ても8 (jessie)ではなさそう。
ちなみにこちらは、
pi@raspberrypi ~ $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 7 (wheezy)" NAME="Raspbian GNU/Linux" VERSION_ID="7" VERSION="7 (wheezy)" ID=raspbian ID_LIKE=debian ANSI_COLOR="1;31" HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" pi@raspberrypi ~ $ uname -a Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux
Raspbian7の3.18.11-v7+、
メンテナンスバージョンが多少違いますが、このくらいであればスコアには影響でなさそう。
次へ。
2) オーバークロック/クロックダウンを確認
Raspberry Piでは、CPUの動作クロックを変更することができます。
知らず知らずのウチに定格から落としていたのなと。
次のように変更できます。
pi@raspberrypi ~ $ sudo raspi-config
でコンフィグを開き、
「7 Overclock」
を選択し、定格の
「Medium 900MHz ARM, 250MHz core, 450MHz SDRAM, 2 overvolt」
を選択し、再起動。
結果、遅いまま変わらず。
クロックアップ
「Pi2 1000MHz ARM, 500MHz core, 500MHz SDRAM, 2 overvolt」
して実行、それでもスコアは遅いまま変わらず。
クロックが影響しないとなるとアレですね。
3) 電源不足を確認
クロック変えてもスコアが変わらないとなると電源の問題だなあと。
USB電流&電圧チェッカー使って確認。
問題なさそう。
給電には、Owltech OWL-ACUS4を使ってましたが、
故障を疑ってGen Andru USB Chargerに変更。
それでも結果変わらず。
4) ラズパイの故障を確認
これはもうRaspberry Pi自体が故障しているのではないかと。
久しぶりに起動してるし、結構初期の頃に買ったものだし。
なので、もう1枚買ってきた。
・・・結果変わらず。
5) OSの中身の問題
ハードウェア周りが問題ないとなるとOSの中の方の問題というわけで。
まずは、動作クロックを疑ってみた。
pi@raspberrypi ~ $ lscpu Architecture: armv7l Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 pi@raspberrypi ~ $ cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 5 (v7l) BogoMIPS : 57.60 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 5 processor : 1 model name : ARMv7 Processor rev 5 (v7l) BogoMIPS : 57.60 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 5 processor : 2 model name : ARMv7 Processor rev 5 (v7l) BogoMIPS : 57.60 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 5 processor : 3 model name : ARMv7 Processor rev 5 (v7l) BogoMIPS : 57.60 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 5 Hardware : BCM2709 Revision : a01041 Serial : 00000000ae0b8681
クロックは出てこないようなので別方法で。
pi@raspberrypi ~ $ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
600000
なんと600 MHz!定格は900 MHzのはず。
つまり、CPUの省電力機能が動いているわけで。
pi@raspberrypi ~ $ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor powersave pi@raspberrypi ~ $ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors conservative ondemand userspace powersave performance
やっぱり、powersaveになってる。performanceに変えてやろう。
pi@raspberrypi ~ $ sudo apt-get install cpufrequtils -y pi@raspberrypi ~ $ sudo cpufreq-set -g performance pi@raspberrypi ~ $ cpufreq-info
cpufreq-infoで、current policyがperformanceになっていて、
current CPU frequencyが900 MHzになっていれば成功。
この状態で実行。
本来のスコアが出たよ! Link
知らなかった、Raspberry Pi 2のCPUからは、クロック可変だったの。
ARMとARM Linuxも進んでますねー。
ipaddr.showをアップデート
ipaddr.show、自分のIPがわかるだけだと面白くないので少しアップデートしました。
自分がアクセスしてるグローバルIPが知りたいなら
$ curl ipaddr.show 126.70.251.117 $
といった感じででてきますが、CUIで操作してると改行いらないということもありますよね。
そのときは「n」オプションをつけてみてください。
$ curl ipaddr.show/n 126.70.251.117$
あとは、IPじゃなくてホスト名(FQDN)が知りたいとき。
$ curl ipaddr.show/host softbank126070251117.bbtec.net
他にはソースのポート番号とユーザーエージェントも。
$ curl ipaddr.show/port 52105
$ curl ipaddr.show/ua curl/7.43.0
今回追加したものも改行消せます、「n」を先につけてください。
$ curl ipaddr.show/n/host softbank126070251117.bbtec.net$
この手の自分のグローバルIP見える系のサイトだと、ブラウザでグラフィカルに表示できたり、リファラとか他にも色々な情報とれますが、こんな感じで自分が使いそうなものだけ実装しました。
以上、自宅からYahoo!BB経由の実行例でお届けしました。
Scalewayの性能を見てみる:クラウド/VPSと比較
時間空きましたが、Scalwayの続き。
今回は性能を見ていきましょう。
Scalewayと比較するなら、DigitalOceanとかVultrみたいな海外の格安VPSとかなと思ったのですが、時間かかりそうなのでさくっと普段使いのDTI ServersMan@VPSとIDCFクラウドで比較してみましょう。
月額 円 | CPUコア数 | Memory GB | Volume GB | |
---|---|---|---|---|
Scaleway C1 | 400 | 4 | 2 | 50 |
IDCFクラウド light.S1 | 500 | 1 | 1 | 15 |
DTI ServersMan@VPS Entry | 467 | 2 | 1 | 50 |
Scalewayは月額で2.99ユーロです。私のカードの明細を見ると、9月分が415円、10月分が400円でした。
カードの手数料とレートを考えても安いですね。
OSは3つともUbuntu 14.04にして比較しました。
では定番のUnixBenchから。スコアが大きい方が速い。
UnixBench Single | UnixBench Multi | |
---|---|---|
Scaleway C1 | 262.0 | 697.4 |
IDCFクラウド light.S1 | 348.3 | - |
DTI ServersMan@VPS Entry | 84.7 | 90.5 |
1コアあたりの性能はそうでもないですが、やはり4コア揃うと速いです。
では、もう少し見ていきましょう。処理時間なので、スコアが小さい方が速い。
qn24b N=17 sec | gcc build 7-zip sec | |
---|---|---|
Scaleway C1 | 32.895 | 72.65 |
IDCFクラウド light.S1 | 144.787 | 155.74 |
DTI ServersMan@VPS Entry | 264.367 | 344.00 |
やはり変わらず速いですね。
マルチコアが活用できるなら、Scalewayは最高のコスパになるのではないでしょうか。
ただし、ARMプロセッサなのが注意点ですかね。