2つのインデックスを持つ7つのノード弾性検索クラスタがあり、どちらもネストされたオブジェクトマッピングを持っています。私はかなりの遅れを挿入に入れてインデックス2(スパークストリーミングを通して)です。バッチあたり〜8-12s(〜100kレコード)を要するバルク挿入を使用しています。マッピングインデックス2弾性検索:大きなデータセットでのパフォーマンスが遅い
Node Configuration:
RAM: 64 GB
Core: 48
HDD : 1 TB
JVM allocated Memory: 32 GB
Marvel Node Status:
CPU Usages: ~10-20%
JVM Memory: ~60-75%
Load Average : ~3-35
Indexing Rate: ~10k/s
Search Rate: ~2k/s
Index1 (Replication 1):
Status: green
Documents: 84.4b
Data: 9.3TB
Total Shards: 400 (Could it be the reason of low performance)
Index2 (Replication 1):
Status: green
Documents: 1.4b
Data: 35.8GB
Total Shards: 10
Unassigned Shards: 0
Spark streaming configuration:
executors: 2
Executor core per executor: 8
Number of partition: 16
batch size: 10s
Event per batch: ~1k-200k
Elastic Bulk insert count: 100k
:
{
"settings": {
"index": {
"number_of_shards": 5,
"number_of_replicas": 1
}
},
"mappings": {
"parent_list": {
"_all": {
"enabled": false
},
"properties": {
"parents": {
"type": "nested",
"properties": {
"parent_id": {
"type": "integer",
"doc_values": false
},
"childs": {
"type": "nested",
"properties": {
"child_id": {
"type": "integer",
"doc_values": false
},
"timestamp": {
"type": "long",
"doc_values": false
},
"is_deleted": {
"type": "boolean",
"doc_values": false
}
}
}
}
},
"other_ID": {
"type": "string",
"index": "not_analyzed",
"doc_values": false
}
}
}
}
}
マイクエリ:is_deleted偽と少なくとも一つの子を持つ親のIDによって
- 取得回数。
- is_deleted falseで子IDでカウントを取得します。
- 私は伸縮性のより高いパフォーマンスを期待していたが、それは私のシステムのボトルネックになる_id
により文書を取得します。 誰かがパフォーマンスチューニングを提案できますか?このクラスタ構成でElasticからより多くの挿入率を達成できますか?
100kの文書を便利見つけ、他の質問は、たくさんのように聞こえる。それを下げてやり直すことはできますか? –
私は10kでも試しましたが、あまり改善していません。 –
@AndreiStefan Index1には400の断片があります。パフォーマンスが低いのはなぜですか?予想されるインサート率はどのくらいでしょうか? –