Ubunt13.10へクラウドのOpenStack (havana)をNIC2枚のサーバーへインストール

投稿者: 閲覧数15,234

VMのベンチマーク

VMへsshにてログインしてroot権限にて計測

hdparm

root@admin:~# hdparm /dev/vda1

/dev/vda1:
 HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 20803/16/63, sectors = 20969472, start = 2048
root@admin:~# hdparm -Tt /dev/vda1

/dev/vda1:
 Timing cached reads:   10836 MB in  2.00 seconds = 5422.80 MB/sec
 Timing buffered disk reads: 582 MB in  3.01 seconds = 193.66 MB/sec

fio

fioにて最新をチェックしダウンロード。記事作成時現在で2013/11/19に2.1.4がリリースされていました。

fio 2.1.4 インストール

apt-get install gcc make libaio-dev -y
mkdir -p /usr/local/src/fio
cd /usr/local/src/fio
wget http://brick.kernel.dk/snaps/fio-2.1.4.tar.bz2
tar jxvf fio-2.1.4.tar.bz2
cd fio-2.1.4
./configure
make
make install

計測

cd /tmp
wget http://www.winkey.jp/downloads/visit.php/fio-crystaldiskmark -O crystaldiskmark.fio
fio crystaldiskmark.fio

結果からread:行を抜粋。

Seq-Read: (groupid=0, jobs=1): err= 0: pid=8458: Mon Dec  9 17:16:47 2013
  read : io=1024.0MB, bw=499322KB/s, iops=487, runt=  2100msec
Seq-Write: (groupid=1, jobs=1): err= 0: pid=8459: Mon Dec  9 17:16:47 2013
  write: io=1024.0MB, bw=192824KB/s, iops=188, runt=  5438msec
Rand-Read-512K: (groupid=2, jobs=1): err= 0: pid=8460: Mon Dec  9 17:16:47 2013
  read : io=1024.0MB, bw=416598KB/s, iops=813, runt=  2517msec
Rand-Write-512K: (groupid=3, jobs=1): err= 0: pid=8461: Mon Dec  9 17:16:47 2013
  write: io=1024.0MB, bw=176945KB/s, iops=345, runt=  5926msec
Rand-Read-4K: (groupid=4, jobs=1): err= 0: pid=8462: Mon Dec  9 17:16:47 2013
  read : io=795024KB, bw=13250KB/s, iops=3312, runt= 60000msec
Rand-Write-4K: (groupid=5, jobs=1): err= 0: pid=8473: Mon Dec  9 17:16:47 2013
  write: io=716572KB, bw=11943KB/s, iops=2985, runt= 60001msec
Rand-Read-4K-QD32: (groupid=6, jobs=1): err= 0: pid=8484: Mon Dec  9 17:16:47 2013
  read : io=1024.0MB, bw=45853KB/s, iops=11463, runt= 22868msec
Rand-Write-4K-QD32: (groupid=7, jobs=1): err= 0: pid=8495: Mon Dec  9 17:16:47 2013
  write: io=1024.0MB, bw=43324KB/s, iops=10831, runt= 24203msec

以前の書いたLinuxのI/OベンチマークでCrystalDiskMarkと同等の計測をfioで実現のように手動でCrystalDiskMark3.0のような形に整理してみます。

-----------------------------------------------------------------------
fake CrystalDiskMark 3.0 fio (C) 2013 hiroron
WinKey : http://www.winkey.jp/
-----------------------------------------------------------------------
* MB/s = 1,048,576 byte/s

Sequential Read : 487.62 MB/s
Sequential Write : 188.3 MB/s
Random Read 512KB : 406.83 MB/s
Random Write 512KB : 172.8 MB/s
Random Read 4KB (QD=1) : 12.94 MB/s [ 3312 IOPS]
Random Write 4KB (QD=1) : 11.66 MB/s [ 2985 IOPS]
Random Read 4KB (QD=32) : 44.78 MB/s [ 11463 IOPS]
Random Write 4KB (QD=32) : 42.31 MB/s [ 10831 IOPS]

Test : 1024 MB [/dev/vda1 type ext4]
Date : 2013/12/10 2:16:47
OS : Ubuntu 12.04 LTS [precise] (3.2.0-57-virtual)

まずまずの性能は出てるようです。

abベンチ

計測環境

Windows7上のVirtualBoxの仮想マシン(CPU:1C 2.80GHz/MEM:1GB)へUbuntu13.10を入れてそこからabにて計測しました。Windows7もマネージドサーバーも同じHUB上に有線で繋がってる状態での計測です。

VMをm1.tinyからm1.smallへリサイズして割り当てメモリを2GBに増やしました。そしてApache2.2+MySQL5.5+php5.3+fcgid+APC3.1+ProFTP1.3+Postfix2.9なインターネットサイト環境を構築し計測

Geeklog2.1RC1をインストールし画像付きの記事を5件ほど投稿した状態のサイトを構築し計測(動的なphpコンテンツ)

ab -n500 -c15 http://admin.domain.com/

初回はキャッシュがきいてなくて若干遅い上にFailedも出ている。2回めの計測結果からFailedがなくなり、3回目移行もほぼ同様の結果になります。

1回目
Document Length:        26025 bytes
Time taken for tests:   41.409 seconds
Failed requests:        48
Requests per second:    12.07 [#/sec] (mean)

2回目
Document Length:        26025 bytes
Time taken for tests:   37.449 seconds
Failed requests:        0
Requests per second:    13.35 [#/sec] (mean)

3回目
Document Length:        26025 bytes
Time taken for tests:   37.412 seconds
Failed requests:        0
Requests per second:    13.36 [#/sec] (mean)

4回目
Document Length:        26025 bytes
Time taken for tests:   37.443 seconds
Failed requests:        0
Requests per second:    13.35 [#/sec] (mean)

上記はインスタンスをリサイズした後にメモリが512MBから2GBになったのでチューニングしてなかったApacheやMySQLをチューニングしてから再度計測

Failedは出なくなりましたがスピードは同じようなものです。

Document Length:        26025 bytes
Time taken for tests:   41.442 seconds
Failed requests:        0
Requests per second:    12.07 [#/sec] (mean)
Document Length:        26025 bytes
Time taken for tests:   37.405 seconds
Failed requests:        0
Requests per second:    13.37 [#/sec] (mean)

次に、どれくらいでFailedが出るかやってみます。

秒間の処理数が12~13のようですから同時接続25をまず試してみます。

ab -n500 -c25 http://admin.domain.com/

Document Length:        26025 bytes
Concurrency Level:      25
Time taken for tests:   38.608 seconds
Complete requests:      500
Failed requests:        0
Write errors:           0
Requests per second:    12.95 [#/sec] (mean)

25はクリアしました。次は同時接続35にチャレンジです。

ab -n500 -c35 http://admin.domain.com/

Document Length:        26025 bytes
Concurrency Level:      35
Time taken for tests:   38.483 seconds
Complete requests:      500
Failed requests:        27
   (Connect: 0, Receive: 0, Length: 27, Exceptions: 0)
Write errors:           0
Requests per second:    12.99 [#/sec] (mean)

ここでFailedが出ました。phpが動いてるのでオールインワンの単一サーバーだとこんなものですね。

(おまけ)Chrome開発ツールのNetwork

Geeklog2.1で構築したサイトの表示時のリソースへのネットワークに関する情報をGoogleChromeの開発ツールでみるとこんな感じです。