** やりたいこと
以下ベンチマークで比較する
・RDS MySQL5.6
・RDS Aurora
** つかうもの
- メリケンのEC2
N.Virginiaのやつ
- tpcc-mysql
ベンチマークツール
以前MySQLとMariaDBを比較した際に、mysqlbenchはフェアではない!と或る方から叱られたため、より実践的なテストを実施する目論見
- bzr
上のやつを取ってくるのに使うPythonのバージョン管理ツール
** まずはtpcc-mysqlを入れる
- yumで入れる
$ sudo su -
# yum install bzr
- 作業ディレクトリの作成と下準備
# mkdir ~/bazaar
# bzr init
# ls -la
■.bzrディレクトリが作成されていることを確認
- tpccmysqlを引っ張ってくる
# bzr branch lp:~percona-dev/perconatools/tpcc-mysql
■失敗します
→AmazonLinuxのpyton2.7とbzrのバージョンがマッチしておらず、initは成功するがそれ以外の動作がおかしい
- bzrを削除して仕切り直し
# yum remove bzr
- bazaar公式から最新の2.6.0のソースを持ってくる
# cd ~
# wget https://launchpad.net/bzr/2.6/2.6.0/+download/bzr-2.6.0.tar.gz
- 解凍とインストール
# tar zxf bzr-2.6.0.tar.gz
# cd bzr-2.6.0
# python setup.py install
■問題なく完了
- 初期設定仕切り直し
# cd ~/bazaar
# bzr init
- ひっぱってくる
# bzr branch lp:~percona-dev/perconatools/tpcc-mysql
■さすが最新エラー無しで完了
** tpcc、tpccをつかう
- tpccを使うためのDBの下準備
-- 試験用のDBをつくる
# mysql -uroot -p
mysql> create database tpcc;
mysql> exit
-- テスト準備用のSQLを流し込む
# cd tpcc-mysql
# mysql -uroot -p tpcc < create_table.sql
# mysql -uroot -p tpcc < add_fkey_idx.sql
- tpcc-mysql側の準備
# cd src
■READMEがscrになっているのはご愛嬌
# make
================================================================================
cc -w -O2 -g -I. `mysql_config --include` -c load.c
cc -w -O2 -g -I. `mysql_config --include` -c support.c
cc load.o support.o `mysql_config --libs_r` -lrt -o ../tpcc_load
cc -w -O2 -g -I. `mysql_config --include` -c main.c
cc -w -O2 -g -I. `mysql_config --include` -c spt_proc.c
cc -w -O2 -g -I. `mysql_config --include` -c driver.c
cc -w -O2 -g -I. `mysql_config --include` -c sequence.c
cc -w -O2 -g -I. `mysql_config --include` -c rthist.c
cc -w -O2 -g -I. `mysql_config --include` -c neword.c
cc -w -O2 -g -I. `mysql_config --include` -c payment.c
cc -w -O2 -g -I. `mysql_config --include` -c ordstat.c
cc -w -O2 -g -I. `mysql_config --include` -c delivery.c
cc -w -O2 -g -I. `mysql_config --include` -c slev.c
cc main.o spt_proc.o driver.o support.o sequence.o rthist.o neword.o payment.o ordstat.o delivery.o slev.o `mysql_config --libs_r` -lrt -o ../tpcc_start
================================================================================
- かくにん
# cd ..
# ls -l
================================================================================
-rw-rw-r-- 1 root root 1506 8月 11 11:22 add_fkey_idx.sql
-rw-rw-r-- 1 root root 317 8月 11 11:22 count.sql
-rw-rw-r-- 1 root root 3485 8月 11 11:22 create_table.sql
-rw-rw-r-- 1 root root 763 8月 11 11:22 drop_cons.sql
drwxrwxr-x 2 root root 4096 8月 11 11:24 src
-rwxrwxr-x 1 root root 47381 8月 11 11:24 tpcc_load ←これが出来上がる
-rwxrwxr-x 1 root root 137049 8月 11 11:24 tpcc_start ←これが出来上がる
================================================================================
- tpcc_load の実行
# ./tpcc_load 127.0.0.1:3306 tpcc root "" 50
■ 書式
$ ./tpcc_load [DBのIPorHostname]:[port] [DBname] [Username] [Password] [WAREHOUSE]
■ WAREHOUSEとはなんぞや?
そのままwarehouse表のレコード数になるとのこと
負荷をかけたいところや目的に応じて数字を変更するようです※要調査
- DBのバックアップを取る
# mysqldump -uroot -p tpcc | gzip > tpcc.sql.gz
■テスト中にDBに変更を加わるため、まっさらな状態でテストするにはいちいちtpcc_loadで
時間を取られるので、バックアップを取ると吉
- ようやっと試験実施
# ./tpcc_start -h 127.0.0.1 -P 3306 -d tpcc -u root -p "" -w 50 -c 5 -r 180 -l 1800 -f ./tpcc_`date +%Y%m%d%H%M`.log
■ 書式
$ ./tpcc_start -h server_host -P port -d database_name -u mysql_user -p mysql_password -w warehouses -c connections -r warmup_time -l running_time -i report_interval -f report_file
→同時コネクション数はそのままの意味
→warmupは助走時間の設定(大体300秒程度あればいいようです
→running_timeそのままの意味(大体2時間~4時間で測定値にブレがなくなる模樣
- 結果を見る
===========================================================
<Raw Results>
[0] sc:86074 lt:0 rt:0 fl:0
[1] sc:86060 lt:0 rt:0 fl:0
[2] sc:8607 lt:0 rt:0 fl:0
[3] sc:8607 lt:0 rt:0 fl:0
[4] sc:8607 lt:0 rt:0 fl:0
in 1800 sec.
<Raw Results2(sum ver.)>
[0] sc:86074 lt:0 rt:0 fl:0
[1] sc:86071 lt:0 rt:0 fl:0
[2] sc:8607 lt:0 rt:0 fl:0
[3] sc:8607 lt:0 rt:0 fl:0
[4] sc:8607 lt:0 rt:0 fl:0
<Constraint Check> (all must be [OK])
[transaction percentage]
Payment: 43.47% (>=43.0%) [OK]
Order-Status: 4.35% (>= 4.0%) [OK]
Delivery: 4.35% (>= 4.0%) [OK]
Stock-Level: 4.35% (>= 4.0%) [OK]
[response time (at least 90% passed)]
New-Order: 100.00% [OK]
Payment: 100.00% [OK]
Order-Status: 100.00% [OK]
Delivery: 100.00% [OK]
Stock-Level: 100.00% [OK]
<TpmC>
2869.133 TpmC (一分間に処理したトランザクション数)
===========================================================
** ここでやっとベンチマーク用のRDSの準備
- スペック
db.r3.xlarge(4core 30GB)で合わせる
→あるていど強くサービスで使いそうなスペックだから
- コンソールでMySQLとAuroraのインスタンスを作成
■Auroraに合わせ新規で北米にRDSを構築したため、セキュリティグループの設定を忘れて接続出来ずに小一時間ハマったのは内緒
- セキュリティグループを設定してEC2からアクセス出来るように!
- データ準備
# host nyowa-cluster.cluster-cr3an1vu6snd.us-east-1.rds.amazonaws.com
nyowa-cluster.cluster-cr3an1vu6snd.us-east-1.rds.amazonaws.com is an alias for nyowa.cr3an1vu6snd.us-east-1.rds.amazonaws.com.
nyowa.cr3an1vu6snd.us-east-1.rds.amazonaws.com has address 172.30.20.128
# host mikunyan-cluster.cluster-cr3an1vu6snd.us-east-1.rds.amazonaws.com
mikunyan-cluster.cluster-cr3an1vu6snd.us-east-1.rds.amazonaws.com is an alias for mikunyan.cr3an1vu6snd.us-east-1.rds.amazonaws.com.
mikunyan.cr3an1vu6snd.us-east-1.rds.amazonaws.com has address 172.30.20.198
■tpcc-mysqlにhostnameが長すぎると怒られるため、IPを確認(IPは適当)
- データの投入開始
-- Aurora
# ./tpcc_load 172.30.20.128 tpcc root PASSWORD 50-- MySQL
# ./tpcc_load 172.30.20.198 tpcc root PASSWORD 50
■Auroraのデータ作成の遅さに嫌な予感がする
■結局MySQLの二倍くらい時間がかかった・・・
- バックアップ取得
-- Aurora
# mysqldump -uroot -p -h 172.30.2.128 tpcc | gzip > tpcc_aurora.sql.gz-- MySQL
■ディスク容量に注意
# mysqldump -uroot -p -h 172.30.20.198 tpcc | gzip > tpcc_mysql.sql.gz
■ディスク容量に注意
** いよいよテスト
- テスト
-- Aurora
# ./tpcc_start -h 172.30.20.128 -P 3306 -d tpcc -u root -p [password] -w 50 -c 20 -r 180 -l 3600 -f ./aurora_tpcc.log-- MySQL
# ./tpcc_start -h 172.30.20.198 -P 3306 -d tpcc -u root -p [password] -w 50 -c 20 -r 180 -l 3600 -f ./mysql_tpcc.log
■connectionの数値を変えつつ 20→30→50→75→100 くらいでパフォーマンスを確認していく
という感じで進めています
結果は来週のこの時間
----
おわり
What is a "safe" casino in 2021? - JTM Hub
返信削除Here are the reasons why it is recommended to gamble online. The safest and 경산 출장안마 most secure 강원도 출장마사지 casino 태백 출장안마 games 포천 출장샵 available for 인천광역 출장마사지 you.