O motivo pelo qual você está vendo um uso tão alto da memória virtual é que o Solr usa o MMapFSDirectory como a classe padrão para manipular o índice do Lucene. Esta classe tentará mapear quaisquer índices sob o controle Solr para a memória virtual - quanto mais núcleos / índices, pior fica. A parte divertida é que isso está fora do conhecimento / controle da JVM. A JVM relatará apenas a memória (-Xms: 128m -Xmx: 1024m, por exemplo) min / max especificada para o contêiner de servlet. Teria sido bom para eles avisarem as pessoas ou usarem uma DirectoryFactory mais conservadora como padrão.
Altere a linha no seu solrconfig.xml:
directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"
para apontar para algo como NIOFSDirectoryFactory.