On 1/19/2016 3:43 AM, Damien Picard wrote: > I'm currently testing Solr query execution performance (over http and > SolrJ), and, using HTTP with JMeter, I see that the response time increases > with the number of concurrent request (100 simultaneous request in my case). > > To understand where Solr takes more time, I use the debug=timing parameter. > And I see this kind of response : > > <?xml version="1.0" encoding="UTF-8"?> > <response> > > <lst name="responseHeader"> > <int name="status">0</int> > <int name="QTime">3003</int> > <lst name="params"> > <str name="q">uuid:FA2C9342381E3969E04456C8B4C639A9</str> > <str name="debug">timing</str> > <str name="indent">true</str> > <str name="wt">xml</str> > </lst> > </lst> > <result name="response" numFound="1" start="0" maxScore="15.705477"> > <doc> > <bool name="bc_repe_pro">false</bool> > <str name="type_personne">P</str> > <str name="numero_dossier_client">30000224149</str> > <str name="uuid">FA2C9342381E3969E04456C8B4C639A9</str> > <str name="cle_recherche">FA2C9342381E3969E04456C8B4C639A9_P</str> > <long name="_version_">1518391139884859416</long></doc> > </result> > <lst name="debug"> > <lst name="timing"> > <double name="time">0.0</double> > <lst name="prepare"> > <double name="time">0.0</double> > <lst name="query"> > <double name="time">0.0</double> > </lst> > <lst name="facet"> > <double name="time">0.0</double> > </lst> > <lst name="mlt"> > <double name="time">0.0</double> > </lst> > <lst name="highlight"> > <double name="time">0.0</double> > </lst> > <lst name="stats"> > <double name="time">0.0</double> > </lst> > <lst name="debug"> > <double name="time">0.0</double> > </lst> > </lst> > <lst name="process"> > <double name="time">0.0</double> > <lst name="query"> > <double name="time">0.0</double> > </lst> > <lst name="facet"> > <double name="time">0.0</double> > </lst> > <lst name="mlt"> > <double name="time">0.0</double> > </lst> > <lst name="highlight"> > <double name="time">0.0</double> > </lst> > <lst name="stats"> > <double name="time">0.0</double> > </lst> > <lst name="debug"> > <double name="time">0.0</double> > </lst> > </lst> > </lst> > </lst> > </response>
QTime is not part of the debug. It is included on all results, whether debug is turned on or not. I am not sure why all your debug information says zero. Usually the total of all the debugs does not add up to QTime, but this is an extreme imbalance. QTime is the amount of time spent gathering result information -- the internal Lucene identifiers of the documents counted for numFound. The response does not indicate the amount of time that was spent retrieving the actual search results from the stored fields and sending those results to the client, but with only one document found, those things would be extremely fast. Running 100 queries concurrently is usually enough to topple *any* single Solr server unless the index is very small. If you need to scale up this far, you will need multiple replicas of your index. If you are not running a performance benchmark, how long does a single query like this take? If this kind of QTime is normal even when not hammering the server, then you probably don't have enough memory. Thanks, Shawn