32GB(メモリ)サーバ上のInfluxDBインスタンスに大量のサブ分株価ダニデータが保存されています。残念ながら私たちは記憶上の問題を抱えています。次のチューニングが行われました。InfluxDBで測定を複数の測定値に分割してメモリパフォーマンスを測定しますか?たとえば、金融株データの株式ティッカーごとに1つの数値
cache_snapshot_memory_size => 6553600,
cache_snapshot_write_cold_duration => '1m',
max_series_per_database => 10000000,
cluster_write_timeout => '10s',
シリーズの数は約650000で、ほとんど増加しません。
簡体字、私たちのスキーマは、現在入札店や数(インデックス付け)タグに加えて、bid
、ask
、bid_volume
、ask_volume
、などのような(非インデックス付き)のフィールドを持つ単一の測定orderbook
で価格を尋ねます。すべてが小さいカーディナリティーを持っています(ただし、ticker
タグを除く)。
ティッカーごとに1つの注文簿の測定値があった場合、メモリの使用量が少なくなると思いますか? orderbook.aapl
、orderbook.googl
、orderbook.abc
など
当面は約300テロありますが、これは数年間で10000にもなります。
データを取得するときは、常にティッカーでフィルタを使用します。
参考文献:
- は対策にデータを格納していないために主張しているが、原因、それはクエリを記述することがいかに困難に。メモリperforamnceは、私たちに本質である:https://docs.influxdata.com/influxdb/v1.1/concepts/schema_and_data_layout/
- が原因メモリperforamnceに "アカウント" 上に分割しますが、それは昔のブログエントリです:gophers.slack.comで#influxdbからhttp://www.ryandaigle.com/a/time-series-db-design-with-influx