Firebirdパフォーマンスニュースレター:第1号
私たちは、パフォーマンステスト、ヒント、コツ、設定改善などに特化した、ほぼ定期的な「Firebirdパフォーマンスニュースレター」を開始することにしました。
第1号では、以下の内容を取り上げます:
- Firebird 4 vs Firebird 3 の書き込みパフォーマンス比較、
- 最大のFirebird書き込みパフォーマンスを得るための最適なAWS EC2インスタンスの選択、
- INSERT/UPDATE/DELETEテストの最近の結果
Firebird 4 vs Firebird 3:良い知らせです!
2019年に、シンプルなINSERT/UPDATE/DELETEテストの最初の結果コレクションを公開して以来、多くの方々からFirebirdサーバーの結果を送っていただき、それらをスプレッドシートと適切なグラフに追加しました。
このテストは、異なるハードウェア+Firebird構成のパフォーマンスを測定・比較するためのシンプルかつ強力なツールであり、ハードウェアや構成の問題を迅速に確認または否定することができます。
最近、このテストを使用して、Firebird 4.0(バージョン4.0.0.2394、リリース直前の数ビルド)と3.0(バージョン3.0.8.33426、スナップショット、今後の3.0.8のプレリリースで、Firebird自動テストによるとマイナーリリースとして安定しています)のINSERT/UPDATE/DELETEパフォーマンスを比較しました。
テスト環境は、Intel i3-10100F 3.60GHz、SSD Samsung SSD 870QVO、RAMドライブ(qSoft)、さまざまなRAMサイズ(16、32、64)とページバッファを使用しました。
以下がグラフで、結果を含むXLSスプレッドシートはこちらです。

ご覧のとおり、同じ条件・同じ構成で、Firebird 4は書き込み操作において3.0.8より約10%高速です。これは間違いなく良い知らせであり、今後のリリースを詳しく検討し、移行の準備を始める時期が来たことを示すもう一つの兆候です。
もちろん、最善のアプローチは、ご自身のサーバーで同じテストを実行し、実際の改善を自分の目で確認することです。
最大のFirebird書き込みパフォーマンスを得るための最適なAWS EC2インスタンスの選択
ますます多くの企業が「クラウドへの移行」を考えており、Amazon Web Service Elastic Cloudは最も人気のある「クラウドの移行先」の1つです。
しかし、AWSは多くの異なるインスタンスタイプを提供しており、最適なものをどう選べばよいでしょうか?もちろん、テストを行うことです!
私たちは20のインスタンスタイプに対してシンプルなINSERT/UPDATE/DELETEテストを実施し、Firebirdにとって本当に優れたオプションをいくつか見つけました。
ご注意 - 以下の計算とグラフのすべての価格は、AWS EC2のフランクフルトリージョンのもので、aws.amazon.comからそのまま取得しており、割引は含まれておらず、追加の税金がかかる可能性があり、時間の経過とともに変更される可能性があります。したがって、以下の価格を最終的なものや正確な購入ガイドとして考えないでください。
以下が全体のグラフと、結果を含むXLSスプレッドシートです:

簡素化のため、Operations(操作)という列を作成しました。これは基本的にInserts+Updates+Deletesの合計であり、統合された書き込みパフォーマンス指標として使用しました:

ご覧のとおり、次の3つのインスタンスタイプが(Firebirdの書き込み操作の観点から)パフォーマンスのリーダーです:
| インスタンス | Linuxの時間あたりコスト | 1秒あたりの操作数 |
|---|
| z1d.xlarge | USD$0.45 | 45834 | | m5dn.2xlarge | USD$0.648 | 45198 | | m5d.2xlarge | USD$0.544 | 44150 |
興味深いことに、リーダーは最も高価なインスタンスタイプではありません!もちろん、このテストはシングルスレッドであり(コア数の恩恵を受けない)、大量のRAMを必要としない(データベースがわずか3.6Gbであるため)ことを考慮する必要がありますが、ピーク時の書き込み操作を迅速に処理する必要があるアプリケーションにとって、これらのインスタンスは本当に最適に見えます。
これらのインスタンスタイプは(テストした中で)最も高価ではないものの、予算について二度考えるには十分な価格であり、クラウドの宣伝された利点の1つが柔軟性であるため、Firebirdデータベースを提供するのに十分な可能性がある、より安価なVMインスタンスタイプから始めるのが理にかなっていますよね?
最適なコスト/パフォーマンスのインスタンスタイプを見つけるために、スプレッドシートに別の列「1 USDあたりの操作数」を作成しました。
これは文字通りの意味です - 1 USDで購入できる書き込み操作の数です。
計算式は次のとおりです:
1秒あたりの操作数 * 1時間の3600秒 / 時間あたりの価格

ご覧のとおり、この観点からは、リーダーは異なります:
| インスタンス | Linuxの時間あたり価格 | 1 USDあたりの操作数 | 1秒あたりの操作数 |
|---|---|---|---|
| c5d.xlarge | USD$0,222 | 579062087 | 35709 |
| c5ad.xlarge | USD$0,2 | 565024995 | 31390 |
| m5dn.xlarge | USD$0,324 | 446037216 | 40143 |
非常に興味深いのは3番目のm5dn.xlargeで、ピークパフォーマンスは約40K/秒 - パフォーマンスリーダーのz1d.xlarge(45834操作/秒)にかなり近いですが、大幅に安価です。
一般的に、AWS EC2に関する私たちの経験では、これは安定した成熟した環境であり、多くの優れたセキュリティ/バックアップ/高可用性などの機能を備えていますが、他の複雑なプラットフォームと同様に、適切な選択を行い、非現実的な負荷のアプリケーションに対して過大な請求を支払わないようにするには、経験(または外部の専門知識)が必要です。
INSERT/UPDATE/DELETEテストの最近の結果
ご覧のとおり、このシンプルなテストは、ハードウェアとFirebirdの比較だけでなく、数ドル節約するのにも役立ちます。
最近収集した結果のグラフと、操作するためのXLSスプレッドシートを公開しました。こちらでご自身で確認できます。
以下は3つの明白な結論です:
- NVMEドライブは本当に素晴らしいので、強力なFirebirdサーバーが必要な場合は、データベース用にNVMEを購入してください。
- 高いCPU周波数は、Firebirdデータベースの高性能にとって非常に重要です。ベンダーは低周波数(<3GHz)のマルチコアプロセッサを購入するよう勧めることがよくありますが、これはFirebirdにとって最適なオプションではない可能性があり、より少ないコアでより高い周波数の方が良い結果をもたらすことがあります。
- データベースの負荷プロファイルが書き込み中心の場合は、ページバッファを減らしてみてください:DefaultDbCachePagesを50K、100K、250Kなどで実験してみてください。結果を私たちと共有していただければ素晴らしいです!
テスト結果を自由に調査し、質問や提案を送ってください。
「Firebirdパフォーマンスニュースレター」の次号について
第2号では、1つのデータベースを提供するために複数のSuperClassicインスタンスを構成する方法を紹介します(とりわけ、複数のネットワークポート間で負荷を分割するのに役立ちます)。次号以降の計画は大きいです:構成ミス、暗号化データベースのテスト、Firebird 4とFirebird 3のパフォーマンスの高度な比較、インデックスの最適化などです。
興味があり、新しい号の通知を受け取りたい場合は、FirebirdSQL Telegramチャンネルに参加してください。
お問い合わせ
ご質問やご提案がありましたら、お気軽にお問い合わせください:Alexey Kovyazin: [email protected]。