はじめに
どうも。インフラ担当のgrnishiです。割とクイズ好きです。
実は週末はパネルクイズアタック25の予選会に参加します。一説によると予選会に参加できるのは応募者の約4分の1との事。
予選は8分で30問の筆記テストとプロフィールシートから面接に進めるかどうか決まるとか。これが約5分の1ぐらいらしい。
私はテレビ的に見栄えが悪いのでやや不利だとは思いますが、全力でがんばりたいと思います!
さて、前回IaaSベンチマークを取ったのが1年前。あれから1年経ったという事なので、最新版をまた計測してみようと思います。
大事なことなので今回も(前回のコピペ)
本エントリは特定のIaaS業者をよいしょしたり否定したりするものではありません。
サーバの性能はインフラを選定する上で重要な情報ではありますが、それだけが全てでは無いと思っております。
金額、障害の有無、サポート、提供されている機能、管理コンソールの使い勝手、営業担当の対応、APIの有無、ロケーション、規模の大小、今後の成長性などなど挙げればキリが無いほど選定に関わる情報が多いと思います。
また、単純なコマンドによる測定をしているだけですので、スペックとしてこれが全てではありませんし、実運用環境にてそのままこの結果が当てはまるものではありません。お使いのアプリケーションによってどのような計測方法が最適なのか?というのはしっかりと認識する必要はあります。
ですので本エントリは選定の際の材料というよりは、数ある比較項目の一つとして参考程度に捉えてもらえれば幸いです。
計測する対象IaaSとインスタンスタイプ
基本的な対象は前回と同じですが、今回はいくつか変更しております。
- Alibaba cloudを追加
- IBM Cloudを追加
- Cloud nを削除
ベンダー | リージョン | サーバタイプ | OS | CPU | メモリ | ストレージ |
---|---|---|---|---|---|---|
Google Cloud Platform | asia-northeast1-a | n1-standard-1 | CentOS 6.9 | 1vCPU (Xeon @ 2.20GHz) | 3.75 GB | SSD 15GB |
Google Cloud Platform | asia-northeast1-a | n1-standard-4 | CentOS 6.9 | 4vCPU (Xeon @ 2.20GHz) | 15 GB | SSD 15GB |
amazon web service | 東京 | t2.micro | Amazon Linux | 1vCPU (E5-2676 v3 @ 2.40GHz) | 1 GB | 汎用SSD(GP2) 8GiB |
amazon web service | 東京 | t2.xlarge | Amazon Linux | 4vCPU (E5-2686 v4 @ 2.30GHz) | 16 GB | 汎用SSD(GP2) 8GiB |
azure | 東日本 | B1s | CentOS 6.9 | 1vCPU (E5-2673 v4 @ 2.30GHz) | 1 GB | 32GiB |
azure | 東日本 | B4ms | CentOS 6.9 | 4vCPU (E5-2673 v4 @ 2.30GHz) | 16 GB | 32 GiB |
さくらのクラウド | 東京 | - | CentOS 6.10 | 1vCPU (E5-2650 v3 @ 2.30GHz) | 1 GB | SSD 20GB |
さくらのクラウド | 東京 | - | CentOS 6.10 | 4vCPU (E5-2650 v3 @ 2.30GHz) | 16 GB | SSD 20GB |
IDCF Cloud | 東日本2 | Light.S1 | CentOS 6.10 | 1vCPU (E5-2697A v4 @ 2.60GHz) | 1 GB | フラッシュディスク15GB |
IDCF Cloud | 東日本2 | standard.L16 | CentOS 6.10 | 4vCPU (E5-2697A v4 @ 2.60GHz) | 16 GB | フラッシュディスク15GB |
ニフクラ | east12 | small | CentOS 6.9 | 1vCPU (E5-2697A v4 @ 2.60GHz) | 1 GB | フラッシュディスク30GB |
ニフクラ | east12 | large16 | CentOS 6.9 | 4vCPU (E5-2697A v4 @ 2.60GHz) | 16 GB | フラッシュディスク30GB |
Alibaba Cloud | アジア東北1(東京) | xn4.small | 1vCPU (E5-2682 v4 @ 2.50GHz) | 1 GB | SSD 40GiB | |
Alibaba Cloud | アジア東北1(東京) | sn2ne.xlarge | 4vCPU | 16 GB | SSD 40GiB | |
IBM Cloud | Tokyo2 | C1.1x1 | CentOS6.10 | 1vCPU (E5-2683 v3 @ 2.00GHz) | 1GB | 25GB |
IBM Cloud | Tokyo2 | B1.4x16 | CentOS6.10 | 4vCPU (E5-2683 v4 @ 2.10GHz) | 16GB | 25GB |
計測する項目
前回の項目に、MySQLの処理とPHPの実行時間を加えてみました。
- unixbench
- stream
- dbench
- speedtest-cli
- sysbench(oltpのみ)
- PHP7.2の実行時間(フィボナッチ数列、素数判定、md5算出
- 40番目のフィボナッチ数列を求める
- 500000まで素数判定
- 5000000回md5算出
インストールとセットアップ
各インスタンスを立ち上げて、下記インストールだけ行ってから計測しております。
下準備のインストール
yum install -y gcc perl-Time-HiRes popt-devel autoconf git
unixbenchのインストール
cd /usr/local/src/ git clone https://github.com/kdlucas/byte-unixbench
streamのインストール
cd /usr/local/src/ mkdir stream cd stream wget http://www.cs.virginia.edu/stream/FTP/Code/stream.c gcc -O stream.c -o stream
dbenchのインストール
cd /usr/local/src/ wget http://samba.org/ftp/tridge/dbench/dbench-4.0.tar.gz tar zxvf dbench-4.0.tar.gz cd dbench-4.0 ./autogen.sh ./configure make make install
speedtest-cliのインストール
cd /usr/local/src/ mkdir speedtest cd speedtest/ wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py chmod +x speedtest-cli
sysbenchのインストール
yum -y install sysbench
mysqlのインストール
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm yum install -y mysql-community-server /etc/rc.d/init.d/mysqld start less /var/log/mysqld.log | grep password # 初期パスワード調べる mysql_secure_installation mysql -u root -p mysql > create database sbtest; mysql > GRANT ALL ON sbtest.* TO 'sbtest'@'localhost' IDENTIFIED BY '********'; sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=mysql --table-size=1000000 --mysql-host=localhost --mysql-password=******** --time=60 --db-ps-mode=disable prepare
phpのインストール
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm yum install -y --enablerepo=remi,remi-php72 php php-devel
<?php $fib_number = 40; $prime_number = 500000; $md5_number = 5000000; function bench() { return microtime(true); } function fib($n) { if ($n <= 1) { return $n; } return fib($n - 1) + fib($n - 2); } function is_prime($i, $arr){ foreach($arr as $value){ $mod = $i % $value; if($mod === 0){return false;} } return true; } $start = bench(); $fib = fib($fib_number); $time = bench() - $start; echo "fib = " . (bench() - $start) . " sec.\n"; $start = bench(); $arr = [2]; for ($i = 3; $i < $prime_number; $i++) { if (is_prime($i, $arr)) { $arr[] = $i; } } echo "prime = " . (bench() - $start) . " sec.\n"; $str = bin2hex(random_bytes(2048)); $start = bench(); for ($i = 0; $i < $md5_number; $i++) { md5($str); } echo "md5 = " . (bench() - $start) . " sec.\n";
結果
unixbench
実行コマンド
cd /usr/local/src/byte-unixbench/UnixBench/ ./Run
ベンダー | リージョン | サーバタイプ | Single | Multi |
---|---|---|---|---|
Google Cloud Platform | asia-northeast1-a | n1-standard-1 | 1006.0 | - |
Google Cloud Platform | asia-northeast1-a | n1-standard-4 | 839.8 | 2172.2 |
amazon web service | 東京 | t2.micro | 1319.0 | - |
amazon web service | 東京 | t2.xlarge | 1180.9 | 3512.4 |
microsoft azure | 東日本 | B1s | 977.8 | - |
microsoft azure | 東日本 | B4ms | 836.0 | 2722.4 |
さくらのクラウド | 東京 | 1仮想コア | 958.7 | - |
さくらのクラウド | 東京 | 4仮想コア | 880.1 | 2704.9 |
IDCF Cloud | 東日本2 | light.S1 | 348.7 | - |
IDCF Cloud | 東日本2 | standard.L16 | 2965.0 | 2965.0 |
ニフクラ | east12 | small | 143.9 | - |
ニフクラ | east12 | large16 | 1885.9 | 4486.0 |
Alibaba Cloud | アジア東北1(東京) | xn4.small | 1637.1 | - |
Alibaba Cloud | アジア東北1(東京) | sn2ne.xlarge | 1473.7 | 3133.7 |
IBM Cloud | Tokyo2 | C1.1x1 | 210.0 | - |
IBM Cloud | Tokyo2 | B1.4x16 | 267.4 | 879.3 |
stream
実行コマンド
cd /usr/local/src/stream/ ./stream
※単位:MB/s
ベンダー | リージョン | サーバタイプ | Copy | Scale | Add | Triad |
---|---|---|---|---|---|---|
Google Cloud Platform | asia-northeast1-a | n1-standard-1 | 8203.0 | 8063.4 | 8830.3 | 8738.7 |
Google Cloud Platform | asia-northeast1-a | n1-standard-4 | 9514.8 | 9035.4 | 10297.3 | 10213.6 |
amazon web service | 東京 | t2.micro | 10556.9 | 10834.3 | 11614.4 | 11742.2 |
amazon web service | 東京 | t2.xlarge | 10615.0 | 10499.4 | 10855.3 | 11013.2 |
microsoft azure | 東日本 | B1s | 9345.2 | 8999.9 | 9872.0 | 9578.1 |
microsoft azure | 東日本 | B4ms | 9474.2 | 9603.9 | 10382.9 | 9973.9 |
さくらのクラウド | 東京 | 1コア1GB | 10217.1 | 10232.7 | 11574.1 | 11126.6 |
さくらのクラウド | 東京 | 4コア16GB | 8466.5 | 8483.9 | 9542.0 | 9133.1 |
IDCF Cloud | 東日本2 | light.S1 | 9095.6 | 8926.5 | 9473.1 | 9352.7 |
IDCF Cloud | 東日本2 | standard.L16 | 8889.9 | 8572.6 | 9332.3 | 9154.4 |
ニフクラ | east12 | small | 10037.7 | 9824.9 | 10509.7 | 10393.6 |
ニフクラ | east12 | large16 | 10085.0 | 9942.9 | 10486.7 | 10186.3 |
Alibaba Cloud | アジア東北1(東京) | xn4.small | 8172.4 | 8152.5 | 8927.2 | 8811.2 |
Alibaba Cloud | アジア東北1(東京) | sn2ne.xlarge | 8461.6 | 8356.4 | 9066.2 | 8810.6 |
IBM Cloud | Tokyo2 | C1.1x1 | 8767.1 | 8829.5 | 9878.2 | 9549.6 |
IBM Cloud | Tokyo2 | B1.4x16 | 7178.7 | 7110.5 | 7759.1 | 7691.0 |
dbench
cd /usr/local/src/dbench-4.0/ ./dbench 1 ./dbench 4
※単位:MB/s
ベンダー | リージョン | サーバタイプ | Process 1 | Process2 |
---|---|---|---|---|
Google Cloud Platform | asia-northeast1-a | n1-standard-1 | 135.903 | 303.111 |
Google Cloud Platform | asia-northeast1-a | n1-standard-4 | 117.749 | 340.345 |
amazon web service | 東京 | t2.micro | 199.801 | 439.751 |
amazon web service | 東京 | t2.xlarge | 210.446 | 654.293 |
microsoft azure | 東日本 | B1s | 17.874 | 27.393 |
microsoft azure | 東日本 | B4ms | 17.990 | 26.564 |
さくらのクラウド | 東京 | 1コア1GB | 79.285 | 201.731 |
さくらのクラウド | 東京 | 4コア16GB | 69.348 | 209.001 |
IDCF Cloud | 東日本2 | light.S1 | 135.566 | 172.810 |
IDCF Cloud | 東日本2 | standard.L16 | 667.941 | 466.466 |
ニフクラ | east12 | small | 171.544 | 745.366 |
ニフクラ | east12 | large16 | 344.514 | 984.614 |
Alibaba Cloud | アジア東北1(東京) | xn4.small | 139.343 | 316.264 |
Alibaba Cloud | アジア東北1(東京) | sn2ne.xlarge | 132.621 | 292.973 |
IBM Cloud | Tokyo2 | C1.1x1 | 62.043 | 106.527 |
IBM Cloud | Tokyo2 | B1.4x16 | 54.073 | 121.028 |
speedtest-cli
実行コマンド
cd /usr/local/src/speedtest/ ./speedtest-cli --list | grep Tokyo ./speedtest-cli --server 15047 --simple
※15047というのはリストからTokyoを探して選んでいます。
※単位: ms(ping)、Mbit/s(download,upload)
ベンダー | リージョン | サーバタイプ | ping | download | upload |
---|---|---|---|---|---|
Google Cloud Platform | asia-northeast1-a | n1-standard-1 | 13.652 | 3363.17 | 1384.48 |
Google Cloud Platform | asia-northeast1-a | n1-standard-4 | 3.995 | 2390.95 | 669.17 |
amazon web service | 東京 | t2.micro | 5.995 | 413.77 | 561.61 |
amazon web service | 東京 | t2.xlarge | 5.095 | 810.86 | 697.72 |
microsoft azure | 東日本 | B1s | 11.717 | 1344.76 | 777.78 |
microsoft azure | 東日本 | B4ms | 4.320 | 2071.02 | 854.73 |
さくらのクラウド | 東京 | 1コア1GB | 32.830 | 1240.16 | 95.70 |
さくらのクラウド | 東京 | 4コア16GB | 41.928 | 1956.74 | 97.05 |
IDCF Cloud | 東日本2 | light.S1 | 6.377 | 2291.06 | 1549.71 |
IDCF Cloud | 東日本2 | standard.L16 | 5.000 | 2152.99 | 1637.42 |
ニフクラ | east12 | small | 29.866 | 2335.56 | 1717.54 |
ニフクラ | east12 | large16 | 30.571 | 3379.91 | 1804.03 |
Alibaba Cloud | アジア東北1(東京) | xn4.small | 7.125 | 392.64 | 5.73 |
Alibaba Cloud | アジア東北1(東京) | sn2ne.xlarge | 2.770 | 316.42 | 4.57 |
IBM Cloud | Tokyo2 | C1.1x1 | 4.155 | 1117.77 | 950.46 |
IBM Cloud | Tokyo2 | B1.4x16 | 27.668 | 1723.54 | 886.22 |
1す
実行コマンド
sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=mysql --table-size=100000 --mysql-host=localhost --mysql-password=******** --time=60 --db-ps-mode=disable --threads=1 run sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=mysql --table-size=100000 --mysql-host=localhost --mysql-password=******** --time=60 --db-ps-mode=disable --threads=8 run sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=mysql --table-size=100000 --mysql-host=localhost --mysql-password=******** --time=60 --db-ps-mode=disable --threads=64 run
※単位: トランザクション数/分
※my.cnfはデフォルトのまま
ベンダー | リージョン | サーバタイプ | thread1 | thread8 | thread64 |
---|---|---|---|---|---|
Google Cloud Platform | asia-northeast1-a | n1-standard-1 | 9603 | 19983 | 20495 |
Google Cloud Platform | asia-northeast1-a | n1-standard-4 | 10016 | 59815 | 73893 |
amazon web service | 東京 | t2.micro | 14907 | 26555 | 24585 |
amazon web service | 東京 | t2.xlarge | 15703 | 81527 | 92483 |
microsoft azure | 東日本 | B1s | 1588 | 8120 | 16994 |
microsoft azure | 東日本 | B4ms | 1652 | 8469 | 47198 |
さくらのクラウド | 東京 | 1コア1GB | 6942 | 15765 | 16492 |
さくらのクラウド | 東京 | 4コア16GB | 5797 | 36659 | 73971 |
IDCF Cloud | 東日本2 | light.S1 | 6697 | 7690 | 7785 |
IDCF Cloud | 東日本2 | standard.L16 | 13359 | 64438 | 88165 |
ニフクラ | east12 | small | 19921 | 28747 | 27323 |
ニフクラ | east12 | large16 | 21148 | 91336 | 113294 |
Alibaba Cloud | アジア東北1(東京) | xn4.small | 12925 | 24494 | 23668 |
Alibaba Cloud | アジア東北1(東京) | sn2ne.xlarge | 11413 | 54379 | 75957 |
IBM Cloud | Tokyo2 | C1.1x1 | 5979 | 8411 | 8097 |
IBM Cloud | Tokyo2 | B1.4x16 | 5985 | 34475 | 36995 |
php
実行コマンド
php bench.php
※単位: 秒
ベンダー | リージョン | サーバタイプ | fib | prime | md5 |
---|---|---|---|---|---|
Google Cloud Platform | asia-northeast1-a | n1-standard-1 | 14.66 | 34.88 | 42.54 |
Google Cloud Platform | asia-northeast1-a | n1-standard-4 | 15.41 | 34.56 | 42.30 |
amazon web service | 東京 | t2.micro | 15.27 | 224.74 | 430.18 |
amazon web service | 東京 | t2.xlarge | 14.10 | 41.08 | 41.24 |
microsoft azure | 東日本 | B1s | 14.12 | 32.76 | 42.14 |
microsoft azure | 東日本 | B4ms | 14.51 | 33.13 | 42.01 |
さくらのクラウド | 東京 | 1コア1GB | 15.77 | 36.12 | 43.85 |
さくらのクラウド | 東京 | 4コア16GB | 15.70 | 36.26 | 43.47 |
IDCF Cloud | 東日本2 | light.S1 | 35.07 | 109.25 | 135.25 |
IDCF Cloud | 東日本2 | standard.L16 | 12.35 | 28.56 | 36.17 |
ニフクラ | east12 | small | 12.47 | 28.63 | 36.44 |
ニフクラ | east12 | large16 | 12.71 | 29.02 | 36.24 |
Alibaba Cloud | アジア東北1(東京) | xn4.small | 32.19 | 62.90 | 39.19 |
Alibaba Cloud | アジア東北1(東京) | sn2ne.xlarge | 31.61 | 62.71 | 39.15 |
IBM Cloud | Tokyo2 | C1.1x1 | 20.42 | 46.64 | 56.74 |
IBM Cloud | Tokyo2 | B1.4x16 | 18.30 | 44.47 | 53.32 |
さいごに
前回も書きましたが、本結果は各IaaSを選択する際の一つの指標にするものであり、どこが良いとか悪いとかそういう話ではありません。
次回はいつになるかわかりませんが、もう少し検証ベンダーを増やしたいと思います。
それでは良きクラウドライフを。