Node.js×TypeScriptのバックエンドAPIに対してK6負荷テスト
AzureSQLデータベースへの登録処理を含むAPIに対してK6を使用してみたところ、SELECT系処理は同時接続数十アクセスにも耐えられるのに対し、INSERTやUPDATEが走るAPIではせいぜい1~3アクセス程度でリクエスト失敗が増え始めていた。
Azure SQL データベースの性能
今回使用したAzure SQL データベースでは、DTUベースのリソースを作成しており、最低レベルのBasicを利用していたためアクセスに耐えられなかったのではないだろうか。
Azure SQL データベースの DTU とは?
Azure SQL データベースでは、Database Transaction Units (DTU) という単位を使用して、リソースの割り当てを測定している。DTU は、CPU、メモリ、ディスク、I/O によって構成されており、各 DTU は一定のリソースを表している。
DTU変更方法
DTUはAzureポータルの画面から変更することができる。
データベースのリソース画面に移動し、「コンピューティングとストレージ」からDTUやデータの最大サイズをシークバーで変更可能。
好きなDTUに変更したら「適用」ボタンで変更が反映される。
※今回はDTU5→100に変更
DTU100でK6負荷テスト実施結果
DTUを100にあげても同時アクセス数の増加にはつながらない。
別のところに原因があると思われるので今後も調査していきたい。