I have created an ILM
policy as follows,
{
"policy": {
"phases": {
"hot": {
"min_age": "0ms",
"actions": {
"rollover": {
"max_docs": 30
},
"set_priority": {
"priority": 100
}
}
},
"delete": {
"min_age": "15m",
"actions": {
"delete": {}
}
}
}
}
}
Index setting as follows,
{
"index": {
"lifecycle": {
"name": "index-roll+doc-over",
"rollover_alias": "router01"
},
"number_of_shards": "1",
"number_of_replicas": "0"
}
}
As you have already guessed, I am testing this ILM rollover policy which is why I have set the document size only 30
. I am planning to limit the doc size of 1.5 Billion. But I am observing huge latency while creating a rollover index and switching to the new index. It is writing on the current index and not rolling over. For the test I have ingested only 500
lines of log.
Index details
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open router01-000001 654G2ArFQiypDn9U69jedw 1 0 500 0 151.1kb 151.1kb
And at the time of writing this question, the other index (router01-000001
) is not created yet.
The the _ilm/explain
is following,
{
"indices" : {
"router01-000001" : {
"index" : "router01-000001",
"managed" : true,
"policy" : "index-roll+doc-over",
"lifecycle_date_millis" : 1583819391191,
"age" : "14.08m",
"phase" : "hot",
"phase_time_millis" : 1583819391396,
"action" : "rollover",
"action_time_millis" : 1583819706013,
"step" : "check-rollover-ready",
"step_time_millis" : 1583819706013,
"phase_execution" : {
"policy" : "index-roll+doc-over",
"phase_definition" : {
"min_age" : "0ms",
"actions" : {
"rollover" : {
"max_docs" : 30
},
"set_priority" : {
"priority" : 100
}
}
},
"version" : 1,
"modified_date_in_millis" : 1583756555777
}
}
}
}
Elasticsearch currently has 2GB
heap and logstash has 1GB. Total Memory 4GB.
My question is,
- Is the latency expected (May be I misunderstood the rollover concept)
- Did I mistake anywhere?
- If not than what can I do to improve the latency as there will be 20 millions log will be ingested per day