本記事は2019年6月28日にGary Little氏が投稿した記事の翻訳版です。
原文はこちら。
この例では、Postgresとpgbenchワークロードジェネレータを用いて、仮想マシンに対して負荷をかけます。PostgresがインストールされたLinux仮想マシンを利用しますが、特にBitnami仮想アプライアンスを使います。
- VMが起動したらコンソールに接続します
- Postgres DBポートであるpostgresポート5432へアクセス許可するか sshを許可します
$ sudo ufw allow 5432
- postgresユーザーのパスワードを確認してください (cat ./bitnami_credentials)
- コンソールかSSHよりpsqlへログインします
$ psql -U postgres
- オプションとしてパスワードを変更できます (プロンプト表示はpostgresデータベースユーザーのbitnami_credentialsからのパスワードです).
$ psql -U postgres
postgres=# alter user postgres with password 'NEW_PASSWORD';
postgresl=# \q
- pgbenchワークロードを実行するDBを作成します。この場合dbを“Scale Factor 10”でテストするためpgbench-sf10と名付けます。Scale Factorとはデータベースのサイズを定義する方法です。
$ sudo -u postgres createdb pgbench-sf10
- ベンチマークを実行する準備ができているDBを初期化します。“createdb” ステップは空のスキーマを作成します。
- -i は “initialize” を意味しています
- -s は “scale factor” を示し、例えば10など指定します
- pgbench-sf10 は利用するデータベーススキーマです。先程作ったpgbench-sf10を使います。
$ sudo -u postgres pgbench -i -s 10 pgbench-sf10
- pgbench-sf10というDBスキーマに対してワークロードを実行します。
$ sudo -u postgres pgbench pgbench-sf10
ワークロードパターンとシステムの負荷は、scale factorによって大きく異なります
Scale-Factor | ワーキングセットのサイズ |
---|---|
1 | 23MB |
10 | 157MB |
100 | 1.7GB |
1000 | 15GB |
2500 | 37GB |
5000 | 74GB |
10000 | 147GB |