I / O of solr increases with the passage of time

4

I'm running about eight servers with solr servers (version 3.5 ) behind a Load Balancer. All servers are identical and LB is configured with weight by number of connections. Servers have about 4 million documents and receive a steady stream of requests. There is virtually no writing of new documents. When the solr starts, it works very well. But after some time running, it starts taking more time to respond and the I / O level goes crazy, even rising to 100%. See the New Relic chart:

Iftheserverbehaveswellinitially,whydoesitstarttofailafterawhile?AndifIre-startthesolr,theI/Ogoesbackdownforawhile,increasingagainafterwards.

Original question in English

    
asked by anonymous 23.01.2015 / 20:59

1 answer

2

The answer to this question is linked to content of this post .

What happens in this case is that the searches of this system depend on a lot of reading of the indexes of solr . Because the indexes are on disk, the I / O is high. To optimize frequent disk access, Linux caches the most read disk areas in memory. It uses the memory not occupied by applications for this cache. When the memory becomes full it again has to read from the disk. For this reason, when solr starts, the JVM takes up less memory space and therefore the remaining space is sufficient for the index cache.

(The problem occurred on a server with 15Gb of RAM and a solr index with 20Gb)

The solution to the problem is simply to increase the amount of machine memory so that the entire index fits into it. That way, there will be virtually no I / O when reading the index.

    
25.01.2015 / 18:23