Ich verwende das offizielle Elasticsearch Docker-Bild. Da ES ein gewisses Maß an Speicher abgebildeten Regionen erfordert (wie documented), erhöhte ich es unter Verwendungelasticsearch - max_map_count vs Heap Größe
docker-machine ssh <NAME> sudo sysctl -w vm.max_map_count=262144
Ich habe auch gelesen here, dass die zugewiesenen Speicher sollte etwa 50% des gesamten Systemspeichers sein.
Ich bin verwirrt darüber, wie diese beiden zusammen spielen. Wie wirkt sich das Zuweisen von mehr Speicherzuordnungsbereichen auf den zugewiesenen RAM aus. Ist es der Teil des RAM, oder ist es über die RAM-Zuweisung für elasticsearch genommen?
das beantwortet meine Frage nicht. Ich bin verwirrt über die Speicherorte. ES möchte, dass es mindestens 262144 ist. Was würde es bedeuten, es zu erhöhen oder zu verringern? Wie groß ist die Größe jedes Speicherbereichs? Variiert es mit dem Stößel der Maschine? –
Der Standardwert von 'vm.max_map_count' ist 65536 und ES schlägt vor, stattdessen auf mindestens einen vierfachen Wert zu erhöhen (also 262144). Offensichtlich würde es Lucene ermöglichen, mehr virtuellen Speicher zu bekommen, um Index-Dateien abzubilden, und das Verringern hat den umgekehrten Effekt (erhöht die Wahrscheinlichkeit des Tauschens). Speicherabgebildete Bereiche sind nicht identisch mit physischem RAM (und daher nicht Teil davon), sie sind einfach Bereiche auf der Platte (oder alles, was mit einem Dateideskriptor referenziert werden kann), die als ** betrachtet werden, als ob sie physikalisch wären Erinnerung. Die Grundidee dahinter ist, die IO-Perf zu erhöhen. – Val
Auch diese Antwort könnte auch helfen: http://StackOverflow.com/questions/38384759/vm-max-map-count-and-mmapfs/38404766#38404766 – Val