hayashier Tech Blogs
  • hayashier Tech Blogs
  • Author's Books
    • 実践Redis入門 (日本語版)
    • 実践Redis入門 (한국어판)
  • Top Contents
    • Dive Deep Redis
    • Dive Deep Memcached
    • Kubernetes 入門
    • TCP 入門
    • TLS 入門
    • GPG 入門
    • サービス障害が発生した場合の対応方法
    • よく使うトラブルシューティング コマンド実行例 まとめ
    • コピペで使えるELBのアクセスログ解析による事象分析 (ShellScript, Athena)
  • Containers
    • Docker 入門
    • Nomad 導入
    • Dockerを利用してさっと検証環境構築
  • Kubernetes
    • Kubernetes 入門
    • Kubernetes 導入 with Amazon Linux 2
    • EKSを利用してKubernetesでSpring MVCをデプロイ (NLB + Auto Scaling)
  • Load Balancer
    • ALB 認証 導入
    • TLS extensions support with ALB
    • ELB(CLB,ALB,NLB)の種類ごとのHTTPレスポンスの違い
    • ELB(CLB) で WebSocket 通信
  • RDBMS
    • PostgreSQL DBA 入門
    • RDBMS Benchmark Get Started
    • RDBMS サンプルデータ生成 Get Started
    • RDS PostgreSQL Extensions Get Started
    • RDBMS Engine Inspection for Troubleshooting
  • Redis
    • Dive Deep Redis ~ 入門から実装の確認まで
    • Dive Deep Redis Internals ~ GETコマンド実行時の動作 ~
    • RedisのString型は今でも本当に512MBが上限か?
    • Redis 公式ドキュメント まとめ
    • Redis / Memcached Source Code Reading - Overview -
  • Memcached
    • Dive Deep Memcached ~ 入門から実装の確認まで ~
    • Dive Deep Memcached ~ SETコマンド実行時の動作 ~
    • Memcached 公式ドキュメント まとめ
    • memtier_benchmark + memcached-tool の導入
    • Redis / Memcached Source Code Reading - Overview -
  • Hadoop
    • Hadoop Get Started
  • Networking
    • TCP 入門
    • TLS 入門
    • ksnctf: HTTPS is secure, Writeup (TLS 通信解読)
    • オンプレ側ルーター(Cisco 1812J, Juniper SRX210, YAMAHA RTX 1210)から Direct Connect へ BGP 設定
  • Software
    • アルゴリズムとデータ構造 入門
    • デザインパターン 入門
    • ソフトウェアテスト 入門
  • System Admin
    • Shell Script 入門
    • サービス障害が発生した場合の対応方法
    • よく使うトラブルシューティング コマンド実行例 まとめ
    • コピペで使えるELBのアクセスログ解析による事象分析 (ShellScript, Athena)
    • GPG 入門
    • Operation Misc
  • Development
    • ローカル環境のプログラミング言語のバージョンを切り替え macOS
    • /usr/local/Cellar/pyenv/1.2.21/libexec/pyenv: No such file or directoryのエラーの対処方法
  • AWS
    • AWS Misc
    • AWS CLI, AWS SDKのリトライ処理の実装について
    • AWS CLI バージョンアップでエラー発生を解消
    • Elastic Beanstalkで稼働しているアプリケーション(Ruby, Sinatra)をAmazon Linux AMIからAmazon Linux2へ移行
    • Elastic Beanstalkでインスタンス入れ替え後にnginxのデフォルトの画面が表示されてしまう問題の対応
    • Amazon Lightsail に SSL 証明書設置 with Let's Encrypt (自動更新)
    • Amazon Lightsailで10分で作るお手軽Markdownで書く独自ドメインのブログサイト構築
    • Lambdaをローカルでテスト(with Docker)
    • ECS + ALB でダウンタイムなしでデプロイ
    • `Repository packages-microsoft-com-prod is listed more than once in the configuration`のメッセージの解消方法
  • Others
    • Pandoc 導入
    • textlint + prh による文章校正
    • 紙書籍をPDFに変換
    • Sphinx 導入
    • さくっとPocketのブックマークをはてなブックマークに移行
    • Macが突然起動しなくなった話
    • Macでターミナルが開かない (zsh編)
    • ホスト型 IDS Tripwire とネットワーク型 IDS Snort の導入 with CentOS 6
    • JMeter 導入
    • Squid 導入 with Amazon Linux AMI
    • Spring MVCを導入 (+ MySQL, Redis)
    • 外資系企業で働いている場合の確定申告方法 (RSU考慮)
Powered by GitBook
On this page
  • RDBMS Benchmark Get Started
  • pgbench
  • sysbench
  • PostgreSQL の場合
  • MySQL の場合
  • References
  1. RDBMS

RDBMS Benchmark Get Started

RDBMS Benchmark Get Started

pgbench

pgbench がインストールされてることの確認

$ pgbench --version
pgbench (PostgreSQL) 9.6.8

PostgreSQLに対してpgbenchの準備

$ pgbench -U hayashier -h aurorapgtest.c5x5yhkaqvsm.us-west-2.rds.amazonaws.com -i --unlogged-tables test
Password: 
NOTICE:  table pgbench_history does not exist, skipping
NOTICE:  table pgbench_tellers does not exist, skipping
NOTICE:  table pgbench_accounts does not exist, skipping
NOTICE:  table pgbench_branches does not exist, skipping
creating tables...
100000 of 100000 tuples (100%) done (elapsed 0.03 s, remaining 0.00 s)
vacuum...
set primary keys...
done.

pgbench実行

$ pgbench -v -U hayashier -h aurorapgtest.c5x5yhkaqvsm.us-west-2.rds.amazonaws.com -c 3 -t 1000 test
Password: 
starting vacuum...end.
starting vacuum pgbench_accounts...end.
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 1
query mode: simple
number of clients: 3
number of threads: 1
number of transactions per client: 1000
number of transactions actually processed: 3000/3000
latency average = 12.392 ms
tps = 242.091731 (including connections establishing)
tps = 242.335592 (excluding connections establishing)

sysbench

インストール

$ curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
$ sudo yum -y install sysbench

インストールされたか確認

$ sysbench --version
sysbench 1.0.15

PostgreSQL の場合

test=> CREATE DATABASE sysbenchdb;
CREATE DATABASE

環境変数のエクスポート

$ export PASS=xxxxxxxx

sysbench 準備

$ sysbench oltp_common \
    --mysql-dry-run=off \
    --db-driver=pgsql \
    --pgsql-host=postgres-test.c5x5yhkaqvsm.us-west-2.rds.amazonaws.com \
    --pgsql-user=hayashier \
    --pgsql-password=$PASS \
    --pgsql-db=sysbenchdb \
    --table_size=1000 \
    --tables=20 \
    prepare
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)

Creating table 'sbtest1'...
Inserting 1000 records into 'sbtest1'
Creating a secondary index on 'sbtest1'...
Creating table 'sbtest2'...
Inserting 1000 records into 'sbtest2'
Creating a secondary index on 'sbtest2'...
:
:

実行

$ sysbench oltp_read_write \
    --mysql-dry-run=off \
    --db-driver=pgsql \
    --pgsql-host=postgres-test.c5x5yhkaqvsm.us-west-2.rds.amazonaws.com \
    --pgsql-user=hayashier \
    --pgsql-password=$PASS \
    --pgsql-db=sysbenchdb \
    --table_size=1000 \
    --tables=20 \
    --threads=2 \
    --time=30 \
    run
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Initializing worker threads...

Threads started!

SQL statistics:
    queries performed:
        read:                            69874
        write:                           19956
        other:                           9986
        total:                           99816
    transactions:                        4989   (166.21 per sec.)
    queries:                             99816  (3325.44 per sec.)
    ignored errors:                      2      (0.07 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          30.0138s
    total number of events:              4989

Latency (ms):
         min:                                   10.71
         avg:                                   12.03
         max:                                   56.74
         95th percentile:                       13.95
         sum:                                60006.14

Threads fairness:
    events (avg/stddev):           2494.5000/0.50
    execution time (avg/stddev):   30.0031/0.00

MySQL の場合

mysql> create database sbtest;
Query OK, 1 row affected (0.16 sec)

mysql> grant all on sbtest.* to root@'*';
Query OK, 0 rows affected (0.05 sec)

mysql> use sample;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> CREATE TABLE `sbtest1` (
    ->   `id` int(11) NOT NULL AUTO_INCREMENT,
    ->   `k` int(11) NOT NULL DEFAULT '0',
    ->   `c` char(120) NOT NULL DEFAULT '',
    ->   `pad` char(60) NOT NULL DEFAULT '',
    ->   PRIMARY KEY (`id`),
    ->   KEY `k_1` (`k`)
    -> ) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=latin1;
Query OK, 0 rows affected (0.11 sec)

環境変数エクスポート

$ export PASS=XXXXXXXX

実行

$ sysbench --db-driver=mysql \
    --mysql-host=hayashier-test.c5x5yhkaqvsm.us-west-2.rds.amazonaws.com \
    --mysql-user=hayashier \
    --mysql-password=$PASS \
    --mysql-db=sample \
    oltp_read_write \
    run
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 1
Initializing random number generator from current time


Initializing worker threads...

Threads started!

SQL statistics:
    queries performed:
        read:                            7042
        write:                           1432
        other:                           1586
        total:                           10060
    transactions:                        503    (50.22 per sec.)
    queries:                             10060  (1004.45 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          10.0133s
    total number of events:              503

Latency (ms):
         min:                                   17.70
         avg:                                   19.90
         max:                                   49.93
         95th percentile:                       24.38
         sum:                                10010.23

Threads fairness:
    events (avg/stddev):           503.0000/0.00
    execution time (avg/stddev):   10.0102/0.00

References

  • sysbench

    • URL: https://github.com/akopytov/sysbench

  • PostgreSQL: Documentation: 9.6: pgbench」

    • URL: https://www.postgresql.org/docs/9.6/static/pgbench.html

PreviousPostgreSQL DBA 入門NextRDBMS サンプルデータ生成 Get Started

Last updated 1 month ago