LindormTSDB のクエリパフォーマンスベンチマークを、4 つの異なるサイズのクラスターで測定しました。すべてのテストは、同時書き込み操作のない分離された環境で実行されました。結果は読み取り専用のピークスループットを表します。時系列データの量が多い場合、書き込みと読み取りの操作が同時に実行される場合、またはクエリが多数の時系列とタイムポイントをスキャンする場合には、クエリのパフォーマンスは低下します。キャパシティを決定する前に、これらの結果を実際のビジネスワークロードと合わせて評価してください。
テストデータセット
| プロパティ | 値 |
|---|---|
| デバイス | 100 |
| デバイスあたりのメトリック | 101 の測定値 |
| レポート間隔 | 10 秒 |
| データ期間 | デバイスあたり 1 日 |
クエリタイプ
6 つのクエリパターンがテストされます。すべてのクエリは、cpu.usage_user メトリックを対象とします。
| クエリタイプ | 測定内容 | SQL |
|---|---|---|
1-host-1-hr-raw | 1 時間にわたる 1 デバイスからのすべての生の値 | select time, usage_user from cpu where (hostname = 'host_17') and time >=1514837782646 and time < 1514841382646 ; |
1-host-1-hr | 1 時間にわたる 1 デバイスからの 1 分あたりの最大値 | select time, max(usage_user) as max_usage_user from cpu where (hostname = 'host_17') and time >=1514837782646 and time < 1514841382646 sample by 1m |
1-host-12-hr-raw | 12 時間にわたる 1 デバイスからのすべての生の値 | select time, usage_user from cpu where (hostname = 'host_0') and time >=1514787382646 and time < 1514830582646; |
1-host-12-hr | 12 時間にわたる 1 デバイスからの 1 分あたりの最大値 | select time, max(usage_user) as max_usage_user from cpu where (hostname = 'host_0') and time >=1514787382646 and time < 1514830582646 sample by 1m ; |
1-host-latest | 1 デバイスからの最新値 | select time, latest(usage_user) as latest_usage_user from cpu where (hostname = 'host_50') sample by 0 |
8-host-latest | 8 デバイスからの最新値 | select time, latest(usage_user) as latest_usage_user from cpu where (hostname = 'host_64' or hostname = 'host_80' or hostname = 'host_21' or hostname = 'host_5' or hostname = 'host_79' or hostname = 'host_47' or hostname = 'host_25' or hostname = 'host_18') sample by 0 |
パフォーマンスメトリック
| メトリック | 説明 |
|---|---|
queryType | 上記の表で説明されているクエリタイプ |
worker | 同時実行クエリ数 |
qps | クエリ/秒 (QPS) |
max_cpu | ピーク CPU 使用率 (%) |
max_mem | ピークメモリ使用量 (%) |
テスト結果
以下の各結果テーブルは、LindormTSDB 上でテストワークロードのみを実行して測定されたものです。テスト中に他のワークロードは実行されていません。
クラスター 1:3 ノード、4 コア、16 GB メモリ
QPS は、ワーカー数が 16 から 50 に増えるにつれて良好にスケールし、その後は横ばいになります。短期間のクエリ (1-host-1-hr) は最大 1,887 QPS に達します。複数デバイスの最新値クエリ (8-host-latest) は CPU バウンドであり、すべての同時実行レベルで CPU 使用率が 97% に達します。
| queryType | worker | qps | max_cpu | max_mem |
|---|---|---|---|---|
| 1-host-1-hr | 16 | 1,420.96 | 86.95 | 48.08 |
| 1-host-1-hr | 50 | 1,865.50 | 83.45 | 49.32 |
| 1-host-1-hr | 100 | 1,887.00 | 81.71 | 48.95 |
| 1-host-1-hr | 200 | 1,846.00 | 82.99 | 48.87 |
| 1-host-1-hr-raw | 16 | 1,324.80 | 79.54 | 50.34 |
| 1-host-1-hr-raw | 50 | 1,722.00 | 86.42 | 50.96 |
| 1-host-1-hr-raw | 100 | 1,737.00 | 86.36 | 50.92 |
| 1-host-1-hr-raw | 200 | 1,752.00 | 87.09 | 50.88 |
| 1-host-12-hr | 16 | 497.44 | 86.77 | 48.81 |
| 1-host-12-hr | 50 | 555.00 | 95.05 | 48.81 |
| 1-host-12-hr | 100 | 571.00 | 94.97 | 48.90 |
| 1-host-12-hr | 200 | 584.00 | 94.77 | 49.11 |
| 1-host-12-hr-raw | 16 | 286.56 | 82.20 | 51.04 |
| 1-host-12-hr-raw | 50 | 328.00 | 95.34 | 51.14 |
| 1-host-12-hr-raw | 100 | 330.00 | 96.51 | 51.21 |
| 1-host-12-hr-raw | 200 | 334.00 | 96.70 | 51.56 |
| 1-host-latest | 16 | 1,025.12 | 81.79 | 49.34 |
| 1-host-latest | 50 | 1,146.00 | 93.36 | 49.42 |
| 1-host-latest | 100 | 1,144.00 | 92.41 | 49.36 |
| 1-host-latest | 200 | 1,164.00 | 92.89 | 49.44 |
| 8-host-latest | 16 | 175.20 | 96.65 | 49.64 |
| 8-host-latest | 50 | 180.00 | 97.01 | 49.95 |
| 8-host-latest | 100 | 181.00 | 96.59 | 50.05 |
| 8-host-latest | 200 | 182.00 | 96.73 | 50.15 |
クラスター 2:3 ノード、8 コア、32 GB メモリ
コア数とメモリを倍増させると、ほとんどのクエリタイプで QPS がほぼ倍増します。1-host-1-hr クエリはワーカー数 200 で 3,584 QPS に達し、8-host-latest は 472 QPS に達します。クラスター 1 と比較してメモリ使用量が大幅に低下しており、これはメモリの余剰が大きくなったことを反映しています。
| queryType | worker | qps | max_cpu | max_mem |
|---|---|---|---|---|
| 1-host-1-hr | 16 | 2,426.56 | 79.45 | 31.83 |
| 1-host-1-hr | 50 | 3,363.50 | 71.58 | 33.50 |
| 1-host-1-hr | 100 | 3,530.00 | 73.80 | 35.44 |
| 1-host-1-hr | 200 | 3,584.00 | 70.12 | 35.43 |
| 1-host-1-hr-raw | 16 | 2,181.92 | 52.67 | 36.10 |
| 1-host-1-hr-raw | 50 | 3,231.50 | 69.77 | 36.20 |
| 1-host-1-hr-raw | 100 | 3,371.00 | 72.88 | 36.19 |
| 1-host-1-hr-raw | 200 | 3,348.00 | 69.80 | 35.08 |
| 1-host-12-hr | 16 | 877.44 | 59.57 | 35.66 |
| 1-host-12-hr | 50 | 1,132.50 | 82.37 | 35.51 |
| 1-host-12-hr | 100 | 1,145.00 | 84.10 | 35.55 |
| 1-host-12-hr | 200 | 1,152.00 | 84.69 | 35.62 |
| 1-host-12-hr-raw | 16 | 445.44 | 58.55 | 35.29 |
| 1-host-12-hr-raw | 50 | 641.00 | 84.98 | 35.31 |
| 1-host-12-hr-raw | 100 | 668.00 | 90.79 | 35.35 |
| 1-host-12-hr-raw | 200 | 670.00 | 91.98 | 35.42 |
| 1-host-latest | 16 | 1,785.44 | 51.20 | 35.80 |
| 1-host-latest | 50 | 2,273.50 | 64.86 | 35.92 |
| 1-host-latest | 100 | 2,280.00 | 64.97 | 35.82 |
| 1-host-latest | 200 | 2,284.00 | 65.01 | 35.85 |
| 8-host-latest | 16 | 439.04 | 85.04 | 35.98 |
| 8-host-latest | 50 | 471.50 | 91.71 | 36.00 |
| 8-host-latest | 100 | 472.00 | 92.42 | 36.08 |
| 8-host-latest | 200 | 470.00 | 93.10 | 36.09 |
クラスター 3:3 ノード、16 コア、64 GB メモリ
コア数を増やすと QPS が大幅にスケールします。1-host-1-hr クエリはワーカー数 200 で 8,902 QPS に達します。メモリ使用量は 28% 未満に留まっており、データセットがメモリに十分に収まることを示しています。ほとんどのクエリタイプで、同時実行数を増やすとスループットが向上し続けます。
| queryType | worker | qps | max_cpu | max_mem |
|---|---|---|---|---|
| 1-host-1-hr | 16 | 3,287.84 | 49.77 | 25.83 |
| 1-host-1-hr | 50 | 6,543.50 | 56.06 | 26.45 |
| 1-host-1-hr | 100 | 7,713.00 | 59.81 | 26.48 |
| 1-host-1-hr | 200 | 8,902.00 | 75.23 | 26.47 |
| 1-host-1-hr-raw | 16 | 2,857.60 | 32.42 | 26.89 |
| 1-host-1-hr-raw | 50 | 5,173.00 | 50.44 | 26.96 |
| 1-host-1-hr-raw | 100 | 6,177.00 | 56.88 | 26.95 |
| 1-host-1-hr-raw | 200 | 6,530.00 | 59.20 | 26.98 |
| 1-host-12-hr | 16 | 1,148.48 | 38.69 | 26.52 |
| 1-host-12-hr | 50 | 1,920.50 | 71.18 | 26.57 |
| 1-host-12-hr | 100 | 2,181.00 | 82.79 | 26.62 |
| 1-host-12-hr | 200 | 2,398.00 | 91.44 | 26.64 |
| 1-host-12-hr-raw | 16 | 539.20 | 33.78 | 27.04 |
| 1-host-12-hr-raw | 50 | 704.50 | 46.87 | 27.12 |
| 1-host-12-hr-raw | 100 | 612.00 | 41.76 | 27.17 |
| 1-host-12-hr-raw | 200 | 694.00 | 46.89 | 27.24 |
| 1-host-latest | 16 | 2,141.60 | 40.24 | 26.69 |
| 1-host-latest | 50 | 3,602.00 | 77.84 | 26.69 |
| 1-host-latest | 100 | 4,098.00 | 91.87 | 26.72 |
| 1-host-latest | 200 | 4,356.00 | 94.94 | 26.71 |
| 8-host-latest | 16 | 541.28 | 81.87 | 26.77 |
| 8-host-latest | 50 | 599.50 | 97.52 | 26.77 |
| 8-host-latest | 100 | 648.00 | 97.85 | 26.88 |
| 8-host-latest | 200 | 832.00 | 97.40 | 26.94 |
クラスター 4:3 ノード、32 コア、128 GB メモリ
最大のクラスターが最高のスループットを提供します。1-host-1-hr クエリはワーカー数 200 で 15,072 QPS に達し、これは同じ同時実行数におけるクラスター 1 の約 8 倍のスループットです。1-host-latest クエリは 9,634 QPS に達します。単一ホストのクエリでは CPU 使用率が低く抑えられており、混合ワークロードに対応できる余地が残されています。
| queryType | worker | qps | max_cpu | max_mem |
|---|---|---|---|---|
| 1-host-1-hr | 16 | 3,543.04 | 24.25 | 28.33 |
| 1-host-1-hr | 50 | 9,351.00 | 34.14 | 28.89 |
| 1-host-1-hr | 100 | 12,567.00 | 46.42 | 28.92 |
| 1-host-1-hr | 200 | 15,072.00 | 57.27 | 28.94 |
| 1-host-1-hr-raw | 16 | 2,811.20 | 15.41 | 29.11 |
| 1-host-1-hr-raw | 50 | 6,086.50 | 27.85 | 29.13 |
| 1-host-1-hr-raw | 100 | 7,881.00 | 36.44 | 29.14 |
| 1-host-1-hr-raw | 200 | 8,762.00 | 40.97 | 29.17 |
| 1-host-12-hr | 16 | 1,394.24 | 18.85 | 28.91 |
| 1-host-12-hr | 50 | 3,317.50 | 49.89 | 28.96 |
| 1-host-12-hr | 100 | 4,160.00 | 67.13 | 28.96 |
| 1-host-12-hr | 200 | 4,808.00 | 79.02 | 28.96 |
| 1-host-12-hr-raw | 16 | 542.56 | 17.31 | 29.22 |
| 1-host-12-hr-raw | 50 | 826.50 | 24.96 | 29.24 |
| 1-host-12-hr-raw | 100 | 669.00 | 23.55 | 29.28 |
| 1-host-12-hr-raw | 200 | 772.00 | 24.86 | 29.32 |
| 1-host-latest | 16 | 2,600.00 | 16.04 | 28.97 |
| 1-host-latest | 50 | 6,590.00 | 46.11 | 28.98 |
| 1-host-latest | 100 | 8,516.00 | 65.60 | 28.99 |
| 1-host-latest | 200 | 9,634.00 | 75.93 | 28.98 |
| 8-host-latest | 16 | 949.12 | 55.91 | 29.03 |
| 8-host-latest | 50 | 1,525.50 | 83.49 | 29.04 |
| 8-host-latest | 100 | 1,710.00 | 93.16 | 29.06 |
| 8-host-latest | 200 | 1,758.00 | 95.54 | 29.09 |
パフォーマンスのまとめ
各クラスターとクエリタイプにおける、すべての同時実行レベルでのピーク QPS です。ワーカー数を増やしても QPS が常に向上するとは限りません。結果は CPU の飽和状態に応じて横ばいになったり、変動したりします。
| クエリタイプ | クラスター 1 (4c/16G) | クラスター 2 (8c/32G) | クラスター 3 (16c/64G) | クラスター 4 (32c/128G) |
|---|---|---|---|---|
| 1-host-1-hr | 1,887 | 3,584 | 8,902 | 15,072 |
| 1-host-1-hr-raw | 1,752 | 3,371 | 6,530 | 8,762 |
| 1-host-12-hr | 584 | 1,152 | 2,398 | 4,808 |
| 1-host-12-hr-raw | 334 | 670 | 704.50 | 826.50 |
| 1-host-latest | 1,164 | 2,284 | 4,356 | 9,634 |
| 8-host-latest | 182 | 472 | 832 | 1,758 |