データ保存容量の見積もり
ディスクをどれだけ準備すべきかを計算する方法です。インストール前に一度、そして収集対象を増やすたびに再計算します。
一行ルール
毎秒1,000件を受信して1年分保存すると1 TBです。
1年は31,536,000秒なので、毎秒1,000件なら年間 31,536,000,000件 となり、それが1 TBです。
なぜタグ数ではなく毎秒件数なのか
ディスクを満たすのはタグではなく値です。同じタグ1,000個でも、収集周期が1秒なら毎秒1,000件ですが、10秒なら毎秒100件です。容量は10倍の差になります。
そのため、見積もりの基準は常に毎秒受信件数の一つだけです。
収集周期が混在している場合は、グループごとに分けて合算します。
초당 건수 = Σ ( 그 그룹의 태그 수 ÷ 그 그룹의 수집 주기(초) )
1秒周期タグ500個 + 10秒周期タグ3,000個 + 1分周期タグ6,000個
500 ÷ 1 = 500
3000 ÷ 10 = 300
6000 ÷ 60 = 100
──────────────
합계 900 건/초 → 1년치 0.9 TB
計算式
연간 건수 = 초당 건수 × 31,536,000
용량(TB) = 초당 건수 ÷ 1,000 × 보관 연수
保存期間が1年でない場合は、その分比例します。6ヶ月なら半分、2年なら2倍です。
毎秒件数別の容量
| 毎秒受信件数 | 1日件数 | 1年件数 | 1年分容量 | 3年分容量 |
|---|---|---|---|---|
| 100 | 8,640,000 | 3,153,600,000 | 0.1 TB | 0.3 TB |
| 500 | 43,200,000 | 15,768,000,000 | 0.5 TB | 1.5 TB |
| 1,000 | 86,400,000 | 31,536,000,000 | 1 TB | 3 TB |
| 2,000 | 172,800,000 | 63,072,000,000 | 2 TB | 6 TB |
| 5,000 | 432,000,000 | 157,680,000,000 | 5 TB | 15 TB |
| 10,000 | 864,000,000 | 315,360,000,000 | 10 TB | 30 TB |
| 20,000 | 1,728,000,000 | 630,720,000,000 | 20 TB | 60 TB |
| 50,000 | 4,320,000,000 | 1,576,800,000,000 | 50 TB | 150 TB |
保存期間がそのまま容量です
「どれだけ受信するか」と「どれだけ保持するか」の二つが容量を決めます。受信量は現場が決めますが、保存期間は設定で決めます。
生の収集値はAster TSDBに保存期間(TTL)が設定された状態で入ります。タグ生値のデフォルト保存期間は3650日(10年) です — つまり、デフォルト設定では上記の表の「1年分」が10年間蓄積されることになるため、見積もり時に実際の保存年数を設定しておく必要があります。
ディスクは2つの層に分かれます。
| 層 | 何があるか | サイズを決めるもの |
|---|---|---|
Aster TSDB (/data1) | 生値と集計・サンプリングテーブル。画面・アラーム・クエリが読み取る | テーブルごとのTTL |
| オブジェクトストレージ | アーカイブから移された過去データ。分析・レポートが読み取る | アーカイブ周期と総保存年数 |
集計・サンプリングテーブルは生値よりはるかに短いです(デフォルト93日)。そのため「1年分1 TB」をそのまま掛けると過大見積もりになり、逆に生値を10年保持すると過小見積もりになります。保存期間を先に決めてから容量を計算してください。
デフォルト値と変更方法はデータ保存期間(TTL)設定にあります。データ構造はデータベースモデルを参照してください。
見積もり値より余裕を持たせます
計算して出た数値は出発点であり、購入すべき容量ではありません。同じディスクに以下のものが一緒にある必要があります。
- Compaction作業スペース — Aster TSDBは断片化したファイルを結合する際、一時的に元データと結果を同時に保持します。余裕がないとcompactionが停止し、停止すると読み取りが遅くなります。
- 派生テーブル — 集計・サンプリング・カウントテーブルは、クエリ速度のために書き込み時に事前に作成されます。 生データとは別に領域を占有します。
- バックアップとログ — スナップショット、commitlog、コンテナログが同じディスクに蓄積されます。
Aster TSDBはディスクが不足するとcompactionを延期し、延期した分だけ読み取りが遅くなります。障害として顕在化する前に、遅くなることで先に現れます。 使用率を監視対象に含めてください — システムモニタリング。
計算例
現場の条件
- 1秒周期タグ800個
- 5秒周期タグ4,000個
- 生値の保存期間を3年に設定
計算
초당 건수 = 800 ÷ 1 + 4000 ÷ 5
= 800 + 800
= 1,600 건/초
1년치 = 1,600 ÷ 1,000 = 1.6 TB
3년치 = 1.6 × 3 = 4.8 TB
ここにcompactionの余裕、派生テーブル、バックアップ領域を加えてデータディスクを決定します。システム要件の推奨仕様と比較して、大きい方を採用してください。
関連ドキュメント
- システム要件 — CPU・メモリ・ディスクの推奨仕様
- データ保存期間(TTL)設定 — どれだけ保持するかを決める
- データベースモデル — どのテーブルに何が蓄積されるか
- パフォーマンスチューニング — ディスクとメモリ関連の設定