パフォーマンス

IBM Cloud® Databases for PostgreSQL のデプロイメントは、手動で使用量に合わせてスケーリングすることも、特定のリソース条件の下で自動スケーリングするように構成することもできます。 デプロイメントのパフォーマンスを調整する際には、考慮すべきいくつかの要素があります。

デプロイメントのモニタリング

Databases for PostgreSQL デプロイメントは、デプロイメント上のリソース使用状況の基本モニタリングのための IBM Cloud® Monitoring サービスと統合されています。 ディスク使用量や IOPS など、使用可能なメトリックの多くは、デプロイメントでの自動スケーリングを構成するのに役立つように示されます。 使用状況の傾向を観察し、それに対応するように自動スケーリングを構成することにより、リソースの枯渇のためにデータベースが不安定になる前に、パフォーマンス上の問題を軽減することができます。

ディスク IOPS

1 秒当たりの入出力操作数 (IOPS) は、ストレージ・ボリュームのタイプによって制限されます。 Databases for PostgreSQL デプロイメント用のストレージ・ボリュームは、1 GB ティア当たり 10 IOPS の Block Storage エンデュランス・ボリュームにプロビジョンされます。 動作負荷が IOPS 限界に達している場合、またはそれを超えた場合、データベースの要求と操作は、ディスクがキャッチアップできるまで遅延されます。 重負荷が長時間に及ぶと、デプロイメントは照会を処理できなくなり、事実上使用不可になります。 応答の遅れや操作の失敗が発生した場合は、ディスクの IOPS 限界を超えている可能性があります。 ディスク・スペースを大きくすることによって、デプロイメントで使用できる IOPS 数を増やすことができます。

実稼働環境では、少なくとも 100 GB のディスク (1,000 IOPS) を推奨しています。

メモリー使用量

Databases for PostgreSQL のデプロイメントのメモリー設定は、デプロイメントの合計メモリーに基づいて自動的に調整されます。 具体的には、 work_memmaintenance_work_mem およびはプロビジョニング effective_cache_size 、復元、またはスケーリング時に設定されます。

データベースの共有バッファプールに割り当てるメモリ量は、 設定 PostgreSQL ファイルshared_buffers 内のパラメータを調整することで設定できます。 推奨値は、デプロイメントの合計メモリーの 25% です。 共有バッファプールに割り当てるメモリが多すぎると、他の目的のためのシステムメモリが不足し、パフォーマンスが低下したり、場合によってはデータベースが使用不能になる可能性があります。

デプロイメントに割り振るメモリー (共有バッファー・プールの外部) を増やすことでも、パフォーマンスが向上します。 例えば、PostgreSQL は、パフォーマンスのためにメモリーにキャッシュ・ディスク・ページを取り込みます。 PostgreSQLが使用するために、PostgreSQLに直接メモリを割り当てる必要はありません。

接続制限

Databases for PostgreSQL は、PostgreSQL データベースへの接続の最大数を 115 に設定します。スーパーユーザーがデータベースの状態と保全性を維持するために 15 個の接続が予約され、ユーザーとアプリケーションが 100 個の接続を使用できます。 接続制限に達した後に新規接続を開始しようとするとエラーになります。 接続が原因でデプロイメントが過負荷になることを防止するには、接続プーリングを使用するか、デプロイメントをスケーリングして接続制限を引き上げてください。 詳しくは、PostgreSQL 接続の管理のページを参照してください。

Databases for PostgreSQL は、PostgreSQL データベースへの接続の最大数を 115 に設定します。スーパーユーザーがデータベースの状態と保全性を維持するために 15 個の接続が予約され、ユーザーとアプリケーションが 100 個の接続を使用できます。 接続制限に達した後に新規接続を開始しようとするとエラーになります。 接続が原因でデプロイメントが過負荷になることを防止するには、接続プーリングを使用するか、デプロイメントをスケーリングして接続制限を引き上げてください。 詳細については、 「接続 PostgreSQL の管理」 を参照してください。

パフォーマンスのトラブルシューティング

パフォーマンスの問題の理解と修正方法 PostgreSQL については、 「パフォーマンスの PostgreSQL トラブルシューティング」 を参照してください。