Kent: OK, I see now. Then a minor pedantic point...

It'll avoid confusion if you use master and slaves
rather than master and replicas when talking about
non-cloud setups.

The equivalent in SolrCloud is leader and replicas.

No big deal either way, just FYI.

Best,
Erick

On Tue, Nov 1, 2016 at 8:09 PM, Kent Mu <solr.st...@gmail.com> wrote:
> Thanks a lot for your reply, Shawn!
>
> no other applications on the server, I agree with you that we need to
> upgrade physical memory, and allocate the reasonable jvm size, so that the
> operating system have spare memory available to cache the index.
>
> actually, we have nearly 100 million of data every year now, and it is
> still growing, and actually our solr now is running on a virtual machine.
> so I wonder if we need to deploy solr in a physical machine.
>
> Best Regards!
> Kent
>
> 2016-11-01 21:18 GMT+08:00 Shawn Heisey <apa...@elyograg.org>:
>
>> On 11/1/2016 1:07 AM, Kent Mu wrote:
>> > Hi friends! We come across an issue when we use the solrj(4.9.1) to
>> > connect to solr server, our deployment is one master with 10 replicas.
>> > we index data to the master, and search data from the replicas via
>> > load balancing. the error stack is as below: *Timeout occured while
>> > waiting response from server at:
>> > http://review.solrsearch3.cnsuning.com/solr/commodityReview
>> > <http://review.solrsearch3.cnsuning.com/solr/commodityReview>*
>> > org.apache.solr.client.solrj.SolrServerException: Timeout occured
>> > while waiting response from server at:
>>
>> This shows that you are connecting to port 80.  It is relatively rare to
>> run Solr on port 80, though it is possible.  Do you have an intermediate
>> layer, like a proxy or a load balancer?  If so, you'll need to ensure
>> that there's not a problem there.  If it works normally when replication
>> isn't happening, that's probably not a worry.
>>
>> > It takes place not often. after analysis, we find that only when the
>> > replicas Synchronous Data from master solr server. it seem that when
>> > the replicas block search requests when synchronizing data from
>> > master, is that true?
>>
>> Solr should be able to continue serving requests while replication
>> happens.  I have never heard of this happening before, and I never ran
>> into it when I was using replication a long time ago on version 1.4.x.
>> I think it is more likely that you've got a memory issue than a bug.  If
>> it IS a bug, it will *not* be fixed in a 4.x version, you would need to
>> upgrade to 6.x and see whether it's still a problem.  Version 6.2.1 is
>> the latest at the moment, and release plans are underway for 6.3 right now.
>>
>> > I wonder if it is because that our solr server hardware configuration
>> > is too low? the physical memory is 8G with 4 cores. and the JVM we set
>> > is Xms512m, Xmx7168m.
>>
>> The following assumes that there is no other software on the server,
>> like a database, or an application server, web server, etc.  If there
>> is, any issues are likely to be a result of extreme memory starvation,
>> and possibly swapping.  Additional physical memory is definitely needed
>> if there is other software on the server beyond basic OS tools.
>>
>> If the total index data that is on your server is larger than about 1.5
>> to 2GB, chances are excellent that you do not have enough free memory to
>> cache that data effectively, which can lead to major performance
>> issues.  You've only left about 1GB of memory in the system for that
>> purpose, and that memory must also run the entire operating system,
>> which can take a significant percentage of 1GB.  With a large index, I
>> would strongly recommend adding memory to this server.
>>
>> https://wiki.apache.org/solr/SolrPerformanceProblems
>>
>> As mentioned in that wiki page, for good performance Solr absolutely
>> requires that the operating system have spare memory available to cache
>> the index.  In general, allocating almost all your memory to the Java
>> heap is a bad idea with Solr.
>>
>> If your index *is* smaller than 1.5 to 2GB, allocating a 7GB heap is
>> probably not necessary, unless you are doing *incredibly* memory-hungry
>> queries, such as grouping, faceting, or sorting on many fields.  If you
>> can reduce the heap size, there would be more memory available for caching.
>>
>> Indexing can sometimes cause very large merges to happen, and a full
>> index optimize would rewrite the entire index.  Replication copies the
>> changed index files, and if the size of the changes is significant,
>> additional memory can be required for good performance.  See the special
>> note on the wiki page above about optimizes.
>>
>> Thanks,
>> Shawn
>>
>>

Reply via email to