bq: The QTimes increase as the number of words in a phrase increase

Well, there's more work to do as the # of words increases, and if you
have large slops there's more work yet.

Best,
Erick

On Wed, Sep 28, 2016 at 5:54 PM, Rallavagu <rallav...@gmail.com> wrote:
> Thanks Erick.
>
> I have added queries for "firstSearcher" and "newSearcher". After startup,
> pmap shows well populated mmap entries and have better QTimes than before.
>
> However, phrase queries (edismax with pf2) are still sluggish. The QTimes
> increase as the number of words in a phrase increase. None of the mmap
> "warming" seem to have any impact on this. Am I missing anything? Thanks.
>
> On 9/24/16 5:20 PM, Erick Erickson wrote:
>>
>> Hmm..
>>
>> About <1>: Yep, GC is one of the "more art than science" bits of
>> Java/Solr. Siiiggggh.
>>
>> About <2>: that's what autowarming is about. Particularly the
>> filterCache and queryResultCache. My guess is that you have the
>> autowarm count on those two caches set to zero. Try setting it to some
>> modest number like 16 or 32. The whole _point_ of those parameters is
>> to smooth out these kinds of spikes. Additionally, the newSearcher
>> event (also in solrconfig.xml) is explicitly intended to allow you to
>> hard-code queries that fill the internal caches as well as the mmap OS
>> memory from disk, people include facets, sorts and the like in that
>> event. It's fired every time a new searcher is opened (i.e. whenever
>> you commit and open a new searcher)...
>>
>> FirstSearcher is for restarts. The difference is that newSearcher
>> presumes Solr has been running for a while and the autowarm counts
>> have something to work from. OTOH, when you start Solr there's no
>> history to autowarm so firstSeracher can be quite a bit more complex
>> than newSearcher. Practically, most people just copy newSearcher into
>> firstSearcher on the assumption that restarting Solr is pretty
>> rare.....
>>
>> about <3> MMap stuff will be controlled by the OS I think. I actually
>> worked with a much more primitive system at one point that would be
>> dog-slow during off-hours. Someone wrote an equivalent of a cron job
>> to tickle the app upon occasion to prevent periodic slowness.....
>>
>> for a nauseating set of details about hard and soft commits, see:
>>
>> https://lucidworks.com/blog/2013/08/23/understanding-transaction-logs-softcommit-and-commit-in-sorlcloud/
>>
>> Best,
>> Erick
>>
>>
>> On Sat, Sep 24, 2016 at 11:35 AM, Rallavagu <rallav...@gmail.com> wrote:
>>>
>>>
>>>
>>> On 9/22/16 5:59 AM, Shawn Heisey wrote:
>>>>
>>>>
>>>> On 9/22/2016 5:46 AM, Muhammad Zahid Iqbal wrote:
>>>>>
>>>>>
>>>>> Did you find any solution to slow searches? As far as I know jetty
>>>>> container default configuration is bit slow for large production
>>>>> environment.
>>>>
>>>>
>>>>
>>>> This might be true for the default configuration that comes with a
>>>> completely stock jetty downloaded from eclipse.org, but the jetty
>>>> configuration that *Solr* ships with is adequate for just about any Solr
>>>> installation.  The Solr configuration may require adjustment as the
>>>> query load increases, but the jetty configuration usually doesn't.
>>>>
>>>> Thanks,
>>>> Shawn
>>>>
>>>
>>> It turned out to be a "sequence of performance testing sessions" in order
>>> to
>>> locate slowness. Though I am not completely done with it, here are my
>>> finding so far. We are using NRT configuration (warm up count to 0 for
>>> caches and NRTCachingDirectoryFactory for index directory)
>>>
>>> 1. Essentially, solr searches (particularly with edismax and relevance)
>>> generate lot of "garbage" that makes GC activity to kick in more often.
>>> This
>>> becomes even more when facets are included. This has huge impact on
>>> QTimes
>>> (I have 12g heap and configured 6g to NewSize).
>>>
>>> 2. After a fresh restart (or core reload) when searches are performed,
>>> Solr
>>> would initially "populate" mmap entries and this is adding to total
>>> QTimes
>>> (I have made sure that index files are cached at filesystem layer using
>>> vmtouch - https://hoytech.com/vmtouch). When run the same test again with
>>> mmap entries populated from previous tests, it shows improved QTimes
>>> relative to previous test.
>>>
>>> 3. Seems the populated mmap entries are flushed away after certain idle
>>> time
>>> (not sure if it is controlled by Solr or underlying OS). This will make
>>> subsequent searches to fetch from "disk" (even though the disk items are
>>> cached by OS).
>>>
>>> So, what I am gonna try next is to tune the field(s) for facets to reduce
>>> the index size if possible. Though I am not sure, if it will have impact
>>> but
>>> would attempt to change the "caches" even though they will be invalidated
>>> after a softCommit (every 10 minutes in my case).
>>>
>>> Any other tips/clues/suggestions are welcome. Thanks.
>>>
>

Reply via email to