The same boolean setting was useful as a mitigation for the following
error, totally different business / search cluster -- Solr 9.10, Java 21,
did not happen with Java 17 with identical search cluster:

>  Caused by: java.io.IOException: Map failed:

> MemorySegmentIndexInput(path="/var/solr/REDACTED_PATH/REDACTED_COLLECTION_shard39_replica_t77/data/index.properties")
> [this may be caused by lack of enough unfragmented virtual address space or
> too restrictive virtual memory limits enforced by the operating system,
> preventing us to map a chunk of 78 bytes. Please review 'ulimit -v',
> 'ulimit -m' (both should return 'unlimited'), and 'sysctl vm.max_map_count'


Reminder: the setting doesn't exist in Solr 10; a proper solution must be
found for a Solr 10 upgrade, assuming the problem re-appears.  I'm somewhat
optimistic a further Java upgrade (to say 25) would be helpful, albeit I
haven't investigated that yet.


On Wed, Aug 21, 2024 at 1:23 PM David Smiley <[email protected]> wrote:

> For those trying Java 21 with Solr, if you find the performance to be
> bad then try setting
> -Dorg.apache.lucene.store.MMapDirectory.enableMemorySegments=false
> This made a huge difference for me on our Solr nodes at work.
>
> I filed the following ticket to Solr that ought to avoid the JDK
> performance regression if done:
> https://issues.apache.org/jira/browse/SOLR-17375
>
> ~ David Smiley
> Apache Lucene/Solr Search Developer
> http://www.linkedin.com/in/davidwsmiley
>

Reply via email to