Re: Measuring SOLR performance

2013-09-04 Thread Dmitry Kan
Hi Roman,

Ok, I will. Thanks!

Cheers,
Dmitry


On Tue, Sep 3, 2013 at 4:46 PM, Roman Chyla roman.ch...@gmail.com wrote:

 Hi Dmitry,

 Thanks for the feedback. Yes, it is indeed jmeter issue (or rather, the
 issue of the plugin we use to generate charts). You may want to use the
 github for whatever comes next

 https://github.com/romanchyla/solrjmeter/issues

 Cheers,

   roman


 On Tue, Sep 3, 2013 at 7:54 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  Thanks, the --additionalSolrParams was just what I wanted and works fine.
 
  BTW, if you have some special bug tracking forum for the tool, I'm
 happy
  to submit questions / bug reports there. Otherwise, this email list is ok
  (for me at least).
 
  One other thing I have noticed in the err logs was a series of messages
 of
  this sort upon generating the perf test report. Seems to be jmeter
 related
  (the err messages disappear, if extra lib dir is present under ext
  directory).
 
  java.lang.Throwable: Could not access
  /home/dmitry/projects/lab/solrjmeter7/solrjmeter/jmeter/lib/ext/lib
  at
 
 kg.apc.cmd.UniversalRunner.buildUpdatedClassPath(UniversalRunner.java:109)
  at kg.apc.cmd.UniversalRunner.clinit(UniversalRunner.java:55)
  at
 
 kg.apc.cmd.UniversalRunner.buildUpdatedClassPath(UniversalRunner.java:109)
  at kg.apc.cmd.UniversalRunner.clinit(UniversalRunner.java:55)
 
  at
 
 kg.apc.cmd.UniversalRunner.buildUpdatedClassPath(UniversalRunner.java:109)
  at kg.apc.cmd.UniversalRunner.clinit(UniversalRunner.java:55)
 
 
 
  On Tue, Sep 3, 2013 at 2:50 AM, Roman Chyla roman.ch...@gmail.com
 wrote:
 
   Hi Dmitry,
  
   If it is something you want to pass with every request (which is my use
   case), you can pass it as additional solr params, eg.
  
   python solrjmeter
  
  
 
 --additionalSolrParams=fq=other_field:bar+facet=true+facet.field=facet_field_name
   
  
   the string should be url encoded.
  
   If it is something that changes with every request, you should modify
 the
   jmeter test. If you open/load it with jmeter GUI, in the HTTP request
   processor you can define other additional fields to pass with the
  request.
   These values can come from the CSV file, you'll see an example how to
 use
   that when you open the test difinition file.
  
   Cheers,
  
 roman
  
  
  
  
   On Mon, Sep 2, 2013 at 3:12 PM, Dmitry Kan solrexp...@gmail.com
 wrote:
  
Hi Erick,
   
Agree, this is perfectly fine to mix them in solr. But my question is
   about
solrjmeter input query format. Just couldn't find a suitable example
 on
   the
solrjmeter's github.
   
Dmitry
   
   
   
On Mon, Sep 2, 2013 at 5:40 PM, Erick Erickson 
  erickerick...@gmail.com
wrote:
   
 filter and facet queries can be freely intermixed, it's not a
  problem.
 What problem are you seeing when you try this?

 Best,
 Erick


 On Mon, Sep 2, 2013 at 7:46 AM, Dmitry Kan solrexp...@gmail.com
   wrote:

  Hi Roman,
 
  What's the format for running the facet+filter queries?
 
  Would something like this work:
 
  field:foo  =50  fq=other_field:bar facet=true
 facet.field=facet_field_name
 
 
  Thanks,
  Dmitry
 
 
 
  On Fri, Aug 23, 2013 at 2:34 PM, Dmitry Kan 
 solrexp...@gmail.com
 wrote:
 
   Hi Roman,
  
   With adminPath=/admin or adminPath=/admin/cores, no.
Interestingly
   enough, though, I can access
   http://localhost:8983/solr/statements/admin/system
  
   But I can access http://localhost:8983/solr/admin/cores, only
  when
 with
   adminPath=/admin/cores (which suggests that this is the right
   value
 to
  be
   used for cores), and not with adminPath=/admin.
  
   Bottom line, these core configuration is not self-evident.
  
   Dmitry
  
  
  
  
   On Fri, Aug 23, 2013 at 4:18 AM, Roman Chyla 
   roman.ch...@gmail.com
  wrote:
  
   Hi Dmitry,
   So it seems solrjmeter should not assume the adminPath - and
   perhaps
  needs
   to be passed as an argument. When you set the adminPath, are
 you
able
 to
   access localhost:8983/solr/statements/admin/cores ?
  
   roman
  
  
   On Wed, Aug 21, 2013 at 7:36 AM, Dmitry Kan 
  solrexp...@gmail.com
   
  wrote:
  
Hi Roman,
   
I have noticed a difference with different solr.xml config
contents.
  It
   is
probably legit, but thought to let you know (tests run on
  fresh
   checkout as
of today).
   
As mentioned before, I have two cores configured in
 solr.xml.
  If
the
   file
is:
   
[code]
solr persistent=false
   
  !--
  adminPath: RequestHandler path to manage cores.
If 'null' (or absent), cores will not be manageable via
   

Re: Measuring SOLR performance

2013-09-03 Thread Dmitry Kan
Hi Roman,

Thanks, the --additionalSolrParams was just what I wanted and works fine.

BTW, if you have some special bug tracking forum for the tool, I'm happy
to submit questions / bug reports there. Otherwise, this email list is ok
(for me at least).

One other thing I have noticed in the err logs was a series of messages of
this sort upon generating the perf test report. Seems to be jmeter related
(the err messages disappear, if extra lib dir is present under ext
directory).

java.lang.Throwable: Could not access
/home/dmitry/projects/lab/solrjmeter7/solrjmeter/jmeter/lib/ext/lib
at
kg.apc.cmd.UniversalRunner.buildUpdatedClassPath(UniversalRunner.java:109)
at kg.apc.cmd.UniversalRunner.clinit(UniversalRunner.java:55)
at
kg.apc.cmd.UniversalRunner.buildUpdatedClassPath(UniversalRunner.java:109)
at kg.apc.cmd.UniversalRunner.clinit(UniversalRunner.java:55)

at
kg.apc.cmd.UniversalRunner.buildUpdatedClassPath(UniversalRunner.java:109)
at kg.apc.cmd.UniversalRunner.clinit(UniversalRunner.java:55)



On Tue, Sep 3, 2013 at 2:50 AM, Roman Chyla roman.ch...@gmail.com wrote:

 Hi Dmitry,

 If it is something you want to pass with every request (which is my use
 case), you can pass it as additional solr params, eg.

 python solrjmeter

 --additionalSolrParams=fq=other_field:bar+facet=true+facet.field=facet_field_name
 

 the string should be url encoded.

 If it is something that changes with every request, you should modify the
 jmeter test. If you open/load it with jmeter GUI, in the HTTP request
 processor you can define other additional fields to pass with the request.
 These values can come from the CSV file, you'll see an example how to use
 that when you open the test difinition file.

 Cheers,

   roman




 On Mon, Sep 2, 2013 at 3:12 PM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Erick,
 
  Agree, this is perfectly fine to mix them in solr. But my question is
 about
  solrjmeter input query format. Just couldn't find a suitable example on
 the
  solrjmeter's github.
 
  Dmitry
 
 
 
  On Mon, Sep 2, 2013 at 5:40 PM, Erick Erickson erickerick...@gmail.com
  wrote:
 
   filter and facet queries can be freely intermixed, it's not a problem.
   What problem are you seeing when you try this?
  
   Best,
   Erick
  
  
   On Mon, Sep 2, 2013 at 7:46 AM, Dmitry Kan solrexp...@gmail.com
 wrote:
  
Hi Roman,
   
What's the format for running the facet+filter queries?
   
Would something like this work:
   
field:foo  =50  fq=other_field:bar facet=true
   facet.field=facet_field_name
   
   
Thanks,
Dmitry
   
   
   
On Fri, Aug 23, 2013 at 2:34 PM, Dmitry Kan solrexp...@gmail.com
   wrote:
   
 Hi Roman,

 With adminPath=/admin or adminPath=/admin/cores, no.
  Interestingly
 enough, though, I can access
 http://localhost:8983/solr/statements/admin/system

 But I can access http://localhost:8983/solr/admin/cores, only when
   with
 adminPath=/admin/cores (which suggests that this is the right
 value
   to
be
 used for cores), and not with adminPath=/admin.

 Bottom line, these core configuration is not self-evident.

 Dmitry




 On Fri, Aug 23, 2013 at 4:18 AM, Roman Chyla 
 roman.ch...@gmail.com
wrote:

 Hi Dmitry,
 So it seems solrjmeter should not assume the adminPath - and
 perhaps
needs
 to be passed as an argument. When you set the adminPath, are you
  able
   to
 access localhost:8983/solr/statements/admin/cores ?

 roman


 On Wed, Aug 21, 2013 at 7:36 AM, Dmitry Kan solrexp...@gmail.com
 
wrote:

  Hi Roman,
 
  I have noticed a difference with different solr.xml config
  contents.
It
 is
  probably legit, but thought to let you know (tests run on fresh
 checkout as
  of today).
 
  As mentioned before, I have two cores configured in solr.xml. If
  the
 file
  is:
 
  [code]
  solr persistent=false
 
!--
adminPath: RequestHandler path to manage cores.
  If 'null' (or absent), cores will not be manageable via
  request
 handler
--
cores adminPath=/admin/cores host=${host:}
  hostPort=${jetty.port:8983} hostContext=${hostContext:solr}
  core name=metadata instanceDir=metadata /
  core name=statements instanceDir=statements /
/cores
  /solr
  [/code]
 
  then the instruction:
 
  python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
  ./queries/demo/demo.queries -s localhost -p 8983 -a
  --durationInSecs
60
 -R
  cms -t /solr/statements -e statements -U 100
 
  works just fine. If however the solr.xml has adminPath set to
   /admin
  solrjmeter produces an error:
 
  [error]
  **ERROR**
File solrjmeter.py, line 1386, in module
  main(sys.argv)
File solrjmeter.py, line 1278, 

Re: Measuring SOLR performance

2013-09-03 Thread Roman Chyla
Hi Dmitry,

Thanks for the feedback. Yes, it is indeed jmeter issue (or rather, the
issue of the plugin we use to generate charts). You may want to use the
github for whatever comes next

https://github.com/romanchyla/solrjmeter/issues

Cheers,

  roman


On Tue, Sep 3, 2013 at 7:54 AM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 Thanks, the --additionalSolrParams was just what I wanted and works fine.

 BTW, if you have some special bug tracking forum for the tool, I'm happy
 to submit questions / bug reports there. Otherwise, this email list is ok
 (for me at least).

 One other thing I have noticed in the err logs was a series of messages of
 this sort upon generating the perf test report. Seems to be jmeter related
 (the err messages disappear, if extra lib dir is present under ext
 directory).

 java.lang.Throwable: Could not access
 /home/dmitry/projects/lab/solrjmeter7/solrjmeter/jmeter/lib/ext/lib
 at
 kg.apc.cmd.UniversalRunner.buildUpdatedClassPath(UniversalRunner.java:109)
 at kg.apc.cmd.UniversalRunner.clinit(UniversalRunner.java:55)
 at
 kg.apc.cmd.UniversalRunner.buildUpdatedClassPath(UniversalRunner.java:109)
 at kg.apc.cmd.UniversalRunner.clinit(UniversalRunner.java:55)

 at
 kg.apc.cmd.UniversalRunner.buildUpdatedClassPath(UniversalRunner.java:109)
 at kg.apc.cmd.UniversalRunner.clinit(UniversalRunner.java:55)



 On Tue, Sep 3, 2013 at 2:50 AM, Roman Chyla roman.ch...@gmail.com wrote:

  Hi Dmitry,
 
  If it is something you want to pass with every request (which is my use
  case), you can pass it as additional solr params, eg.
 
  python solrjmeter
 
 
 --additionalSolrParams=fq=other_field:bar+facet=true+facet.field=facet_field_name
  
 
  the string should be url encoded.
 
  If it is something that changes with every request, you should modify the
  jmeter test. If you open/load it with jmeter GUI, in the HTTP request
  processor you can define other additional fields to pass with the
 request.
  These values can come from the CSV file, you'll see an example how to use
  that when you open the test difinition file.
 
  Cheers,
 
roman
 
 
 
 
  On Mon, Sep 2, 2013 at 3:12 PM, Dmitry Kan solrexp...@gmail.com wrote:
 
   Hi Erick,
  
   Agree, this is perfectly fine to mix them in solr. But my question is
  about
   solrjmeter input query format. Just couldn't find a suitable example on
  the
   solrjmeter's github.
  
   Dmitry
  
  
  
   On Mon, Sep 2, 2013 at 5:40 PM, Erick Erickson 
 erickerick...@gmail.com
   wrote:
  
filter and facet queries can be freely intermixed, it's not a
 problem.
What problem are you seeing when you try this?
   
Best,
Erick
   
   
On Mon, Sep 2, 2013 at 7:46 AM, Dmitry Kan solrexp...@gmail.com
  wrote:
   
 Hi Roman,

 What's the format for running the facet+filter queries?

 Would something like this work:

 field:foo  =50  fq=other_field:bar facet=true
facet.field=facet_field_name


 Thanks,
 Dmitry



 On Fri, Aug 23, 2013 at 2:34 PM, Dmitry Kan solrexp...@gmail.com
wrote:

  Hi Roman,
 
  With adminPath=/admin or adminPath=/admin/cores, no.
   Interestingly
  enough, though, I can access
  http://localhost:8983/solr/statements/admin/system
 
  But I can access http://localhost:8983/solr/admin/cores, only
 when
with
  adminPath=/admin/cores (which suggests that this is the right
  value
to
 be
  used for cores), and not with adminPath=/admin.
 
  Bottom line, these core configuration is not self-evident.
 
  Dmitry
 
 
 
 
  On Fri, Aug 23, 2013 at 4:18 AM, Roman Chyla 
  roman.ch...@gmail.com
 wrote:
 
  Hi Dmitry,
  So it seems solrjmeter should not assume the adminPath - and
  perhaps
 needs
  to be passed as an argument. When you set the adminPath, are you
   able
to
  access localhost:8983/solr/statements/admin/cores ?
 
  roman
 
 
  On Wed, Aug 21, 2013 at 7:36 AM, Dmitry Kan 
 solrexp...@gmail.com
  
 wrote:
 
   Hi Roman,
  
   I have noticed a difference with different solr.xml config
   contents.
 It
  is
   probably legit, but thought to let you know (tests run on
 fresh
  checkout as
   of today).
  
   As mentioned before, I have two cores configured in solr.xml.
 If
   the
  file
   is:
  
   [code]
   solr persistent=false
  
 !--
 adminPath: RequestHandler path to manage cores.
   If 'null' (or absent), cores will not be manageable via
   request
  handler
 --
 cores adminPath=/admin/cores host=${host:}
   hostPort=${jetty.port:8983}
 hostContext=${hostContext:solr}
   core name=metadata instanceDir=metadata /
   core name=statements instanceDir=statements /
 /cores
   /solr
   [/code]
  
   

Re: Measuring SOLR performance

2013-09-02 Thread Dmitry Kan
Hi Roman,

What's the format for running the facet+filter queries?

Would something like this work:

field:foo  =50  fq=other_field:bar facet=true facet.field=facet_field_name


Thanks,
Dmitry



On Fri, Aug 23, 2013 at 2:34 PM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 With adminPath=/admin or adminPath=/admin/cores, no. Interestingly
 enough, though, I can access
 http://localhost:8983/solr/statements/admin/system

 But I can access http://localhost:8983/solr/admin/cores, only when with
 adminPath=/admin/cores (which suggests that this is the right value to be
 used for cores), and not with adminPath=/admin.

 Bottom line, these core configuration is not self-evident.

 Dmitry




 On Fri, Aug 23, 2013 at 4:18 AM, Roman Chyla roman.ch...@gmail.comwrote:

 Hi Dmitry,
 So it seems solrjmeter should not assume the adminPath - and perhaps needs
 to be passed as an argument. When you set the adminPath, are you able to
 access localhost:8983/solr/statements/admin/cores ?

 roman


 On Wed, Aug 21, 2013 at 7:36 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  I have noticed a difference with different solr.xml config contents. It
 is
  probably legit, but thought to let you know (tests run on fresh
 checkout as
  of today).
 
  As mentioned before, I have two cores configured in solr.xml. If the
 file
  is:
 
  [code]
  solr persistent=false
 
!--
adminPath: RequestHandler path to manage cores.
  If 'null' (or absent), cores will not be manageable via request
 handler
--
cores adminPath=/admin/cores host=${host:}
  hostPort=${jetty.port:8983} hostContext=${hostContext:solr}
  core name=metadata instanceDir=metadata /
  core name=statements instanceDir=statements /
/cores
  /solr
  [/code]
 
  then the instruction:
 
  python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
  ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60
 -R
  cms -t /solr/statements -e statements -U 100
 
  works just fine. If however the solr.xml has adminPath set to /admin
  solrjmeter produces an error:
 
  [error]
  **ERROR**
File solrjmeter.py, line 1386, in module
  main(sys.argv)
File solrjmeter.py, line 1278, in main
  check_prerequisities(options)
File solrjmeter.py, line 375, in check_prerequisities
  error('Cannot find admin pages: %s, please report a bug' % apath)
File solrjmeter.py, line 66, in error
  traceback.print_stack()
  Cannot find admin pages: http://localhost:8983/solr/admin, please
 report a
  bug
  [/error]
 
  With both solr.xml configs the following url returns just fine:
 
  http://localhost:8983/solr/statements/admin/system?wt=json
 
  Regards,
 
  Dmitry
 
 
 
  On Wed, Aug 14, 2013 at 2:03 PM, Dmitry Kan solrexp...@gmail.com
 wrote:
 
   Hi Roman,
  
   This looks much better, thanks! The ordinary non-comarison mode works.
   I'll post here, if there are other findings.
  
   Thanks for quick turnarounds,
  
   Dmitry
  
  
   On Wed, Aug 14, 2013 at 1:32 AM, Roman Chyla roman.ch...@gmail.com
  wrote:
  
   Hi Dmitry, oh yes, late night fixes... :) The latest commit should
 make
  it
   work for you.
   Thanks!
  
   roman
  
  
   On Tue, Aug 13, 2013 at 3:37 AM, Dmitry Kan solrexp...@gmail.com
  wrote:
  
Hi Roman,
   
Something bad happened in fresh checkout:
   
python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
./queries/demo/demo.queries -s localhost -p 8983 -a
 --durationInSecs
  60
   -R
cms -t /solr/statements -e statements -U 100
   
Traceback (most recent call last):
  File solrjmeter.py, line 1392, in module
main(sys.argv)
  File solrjmeter.py, line 1347, in main
save_into_file('before-test.json',
 simplejson.dumps(before_test))
  File /usr/lib/python2.7/dist-packages/simplejson/__init__.py,
 line
   286,
in dumps
return _default_encoder.encode(obj)
  File /usr/lib/python2.7/dist-packages/simplejson/encoder.py,
 line
   226,
in encode
chunks = self.iterencode(o, _one_shot=True)
  File /usr/lib/python2.7/dist-packages/simplejson/encoder.py,
 line
   296,
in iterencode
return _iterencode(o, 0)
  File /usr/lib/python2.7/dist-packages/simplejson/encoder.py,
 line
   202,
in default
raise TypeError(repr(o) +  is not JSON serializable)
TypeError: __main__.ForgivingValue object at 0x7fc6d4040fd0 is
 not
   JSON
serializable
   
   
Regards,
   
D.
   
   
On Tue, Aug 13, 2013 at 8:10 AM, Roman Chyla 
 roman.ch...@gmail.com
wrote:
   
 Hi Dmitry,



 On Mon, Aug 12, 2013 at 9:36 AM, Dmitry Kan 
 solrexp...@gmail.com
wrote:

  Hi Roman,
 
  Good point. I managed to run the command with -C and double
  quotes:
 
  python solrjmeter.py -a -C g1,cms -c hour -x
   ./jmx/SolrQueryTest.jmx
 
  As a result got several files (html, css, js, csv) in the
 running
 directory
  (any way to specify where the output 

Re: Measuring SOLR performance

2013-09-02 Thread Erick Erickson
filter and facet queries can be freely intermixed, it's not a problem.
What problem are you seeing when you try this?

Best,
Erick


On Mon, Sep 2, 2013 at 7:46 AM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 What's the format for running the facet+filter queries?

 Would something like this work:

 field:foo  =50  fq=other_field:bar facet=true facet.field=facet_field_name


 Thanks,
 Dmitry



 On Fri, Aug 23, 2013 at 2:34 PM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  With adminPath=/admin or adminPath=/admin/cores, no. Interestingly
  enough, though, I can access
  http://localhost:8983/solr/statements/admin/system
 
  But I can access http://localhost:8983/solr/admin/cores, only when with
  adminPath=/admin/cores (which suggests that this is the right value to
 be
  used for cores), and not with adminPath=/admin.
 
  Bottom line, these core configuration is not self-evident.
 
  Dmitry
 
 
 
 
  On Fri, Aug 23, 2013 at 4:18 AM, Roman Chyla roman.ch...@gmail.com
 wrote:
 
  Hi Dmitry,
  So it seems solrjmeter should not assume the adminPath - and perhaps
 needs
  to be passed as an argument. When you set the adminPath, are you able to
  access localhost:8983/solr/statements/admin/cores ?
 
  roman
 
 
  On Wed, Aug 21, 2013 at 7:36 AM, Dmitry Kan solrexp...@gmail.com
 wrote:
 
   Hi Roman,
  
   I have noticed a difference with different solr.xml config contents.
 It
  is
   probably legit, but thought to let you know (tests run on fresh
  checkout as
   of today).
  
   As mentioned before, I have two cores configured in solr.xml. If the
  file
   is:
  
   [code]
   solr persistent=false
  
 !--
 adminPath: RequestHandler path to manage cores.
   If 'null' (or absent), cores will not be manageable via request
  handler
 --
 cores adminPath=/admin/cores host=${host:}
   hostPort=${jetty.port:8983} hostContext=${hostContext:solr}
   core name=metadata instanceDir=metadata /
   core name=statements instanceDir=statements /
 /cores
   /solr
   [/code]
  
   then the instruction:
  
   python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
   ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs
 60
  -R
   cms -t /solr/statements -e statements -U 100
  
   works just fine. If however the solr.xml has adminPath set to /admin
   solrjmeter produces an error:
  
   [error]
   **ERROR**
 File solrjmeter.py, line 1386, in module
   main(sys.argv)
 File solrjmeter.py, line 1278, in main
   check_prerequisities(options)
 File solrjmeter.py, line 375, in check_prerequisities
   error('Cannot find admin pages: %s, please report a bug' % apath)
 File solrjmeter.py, line 66, in error
   traceback.print_stack()
   Cannot find admin pages: http://localhost:8983/solr/admin, please
  report a
   bug
   [/error]
  
   With both solr.xml configs the following url returns just fine:
  
   http://localhost:8983/solr/statements/admin/system?wt=json
  
   Regards,
  
   Dmitry
  
  
  
   On Wed, Aug 14, 2013 at 2:03 PM, Dmitry Kan solrexp...@gmail.com
  wrote:
  
Hi Roman,
   
This looks much better, thanks! The ordinary non-comarison mode
 works.
I'll post here, if there are other findings.
   
Thanks for quick turnarounds,
   
Dmitry
   
   
On Wed, Aug 14, 2013 at 1:32 AM, Roman Chyla roman.ch...@gmail.com
   wrote:
   
Hi Dmitry, oh yes, late night fixes... :) The latest commit should
  make
   it
work for you.
Thanks!
   
roman
   
   
On Tue, Aug 13, 2013 at 3:37 AM, Dmitry Kan solrexp...@gmail.com
   wrote:
   
 Hi Roman,

 Something bad happened in fresh checkout:

 python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
 ./queries/demo/demo.queries -s localhost -p 8983 -a
  --durationInSecs
   60
-R
 cms -t /solr/statements -e statements -U 100

 Traceback (most recent call last):
   File solrjmeter.py, line 1392, in module
 main(sys.argv)
   File solrjmeter.py, line 1347, in main
 save_into_file('before-test.json',
  simplejson.dumps(before_test))
   File /usr/lib/python2.7/dist-packages/simplejson/__init__.py,
  line
286,
 in dumps
 return _default_encoder.encode(obj)
   File /usr/lib/python2.7/dist-packages/simplejson/encoder.py,
  line
226,
 in encode
 chunks = self.iterencode(o, _one_shot=True)
   File /usr/lib/python2.7/dist-packages/simplejson/encoder.py,
  line
296,
 in iterencode
 return _iterencode(o, 0)
   File /usr/lib/python2.7/dist-packages/simplejson/encoder.py,
  line
202,
 in default
 raise TypeError(repr(o) +  is not JSON serializable)
 TypeError: __main__.ForgivingValue object at 0x7fc6d4040fd0 is
  not
JSON
 serializable


 Regards,

 D.


 On Tue, Aug 13, 2013 at 8:10 AM, Roman Chyla 
  roman.ch...@gmail.com
 wrote:

  Hi Dmitry,
 
 
 
  On 

Re: Measuring SOLR performance

2013-09-02 Thread Dmitry Kan
Hi Erick,

Agree, this is perfectly fine to mix them in solr. But my question is about
solrjmeter input query format. Just couldn't find a suitable example on the
solrjmeter's github.

Dmitry



On Mon, Sep 2, 2013 at 5:40 PM, Erick Erickson erickerick...@gmail.comwrote:

 filter and facet queries can be freely intermixed, it's not a problem.
 What problem are you seeing when you try this?

 Best,
 Erick


 On Mon, Sep 2, 2013 at 7:46 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  What's the format for running the facet+filter queries?
 
  Would something like this work:
 
  field:foo  =50  fq=other_field:bar facet=true
 facet.field=facet_field_name
 
 
  Thanks,
  Dmitry
 
 
 
  On Fri, Aug 23, 2013 at 2:34 PM, Dmitry Kan solrexp...@gmail.com
 wrote:
 
   Hi Roman,
  
   With adminPath=/admin or adminPath=/admin/cores, no. Interestingly
   enough, though, I can access
   http://localhost:8983/solr/statements/admin/system
  
   But I can access http://localhost:8983/solr/admin/cores, only when
 with
   adminPath=/admin/cores (which suggests that this is the right value
 to
  be
   used for cores), and not with adminPath=/admin.
  
   Bottom line, these core configuration is not self-evident.
  
   Dmitry
  
  
  
  
   On Fri, Aug 23, 2013 at 4:18 AM, Roman Chyla roman.ch...@gmail.com
  wrote:
  
   Hi Dmitry,
   So it seems solrjmeter should not assume the adminPath - and perhaps
  needs
   to be passed as an argument. When you set the adminPath, are you able
 to
   access localhost:8983/solr/statements/admin/cores ?
  
   roman
  
  
   On Wed, Aug 21, 2013 at 7:36 AM, Dmitry Kan solrexp...@gmail.com
  wrote:
  
Hi Roman,
   
I have noticed a difference with different solr.xml config contents.
  It
   is
probably legit, but thought to let you know (tests run on fresh
   checkout as
of today).
   
As mentioned before, I have two cores configured in solr.xml. If the
   file
is:
   
[code]
solr persistent=false
   
  !--
  adminPath: RequestHandler path to manage cores.
If 'null' (or absent), cores will not be manageable via request
   handler
  --
  cores adminPath=/admin/cores host=${host:}
hostPort=${jetty.port:8983} hostContext=${hostContext:solr}
core name=metadata instanceDir=metadata /
core name=statements instanceDir=statements /
  /cores
/solr
[/code]
   
then the instruction:
   
python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs
  60
   -R
cms -t /solr/statements -e statements -U 100
   
works just fine. If however the solr.xml has adminPath set to
 /admin
solrjmeter produces an error:
   
[error]
**ERROR**
  File solrjmeter.py, line 1386, in module
main(sys.argv)
  File solrjmeter.py, line 1278, in main
check_prerequisities(options)
  File solrjmeter.py, line 375, in check_prerequisities
error('Cannot find admin pages: %s, please report a bug' %
 apath)
  File solrjmeter.py, line 66, in error
traceback.print_stack()
Cannot find admin pages: http://localhost:8983/solr/admin, please
   report a
bug
[/error]
   
With both solr.xml configs the following url returns just fine:
   
http://localhost:8983/solr/statements/admin/system?wt=json
   
Regards,
   
Dmitry
   
   
   
On Wed, Aug 14, 2013 at 2:03 PM, Dmitry Kan solrexp...@gmail.com
   wrote:
   
 Hi Roman,

 This looks much better, thanks! The ordinary non-comarison mode
  works.
 I'll post here, if there are other findings.

 Thanks for quick turnarounds,

 Dmitry


 On Wed, Aug 14, 2013 at 1:32 AM, Roman Chyla 
 roman.ch...@gmail.com
wrote:

 Hi Dmitry, oh yes, late night fixes... :) The latest commit
 should
   make
it
 work for you.
 Thanks!

 roman


 On Tue, Aug 13, 2013 at 3:37 AM, Dmitry Kan 
 solrexp...@gmail.com
wrote:

  Hi Roman,
 
  Something bad happened in fresh checkout:
 
  python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
  ./queries/demo/demo.queries -s localhost -p 8983 -a
   --durationInSecs
60
 -R
  cms -t /solr/statements -e statements -U 100
 
  Traceback (most recent call last):
File solrjmeter.py, line 1392, in module
  main(sys.argv)
File solrjmeter.py, line 1347, in main
  save_into_file('before-test.json',
   simplejson.dumps(before_test))
File
 /usr/lib/python2.7/dist-packages/simplejson/__init__.py,
   line
 286,
  in dumps
  return _default_encoder.encode(obj)
File
 /usr/lib/python2.7/dist-packages/simplejson/encoder.py,
   line
 226,
  in encode
  chunks = self.iterencode(o, _one_shot=True)
File
 /usr/lib/python2.7/dist-packages/simplejson/encoder.py,
   line
 296,
  in iterencode
  

Re: Measuring SOLR performance

2013-09-02 Thread Roman Chyla
Hi Dmitry,

If it is something you want to pass with every request (which is my use
case), you can pass it as additional solr params, eg.

python solrjmeter
--additionalSolrParams=fq=other_field:bar+facet=true+facet.field=facet_field_name


the string should be url encoded.

If it is something that changes with every request, you should modify the
jmeter test. If you open/load it with jmeter GUI, in the HTTP request
processor you can define other additional fields to pass with the request.
These values can come from the CSV file, you'll see an example how to use
that when you open the test difinition file.

Cheers,

  roman




On Mon, Sep 2, 2013 at 3:12 PM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Erick,

 Agree, this is perfectly fine to mix them in solr. But my question is about
 solrjmeter input query format. Just couldn't find a suitable example on the
 solrjmeter's github.

 Dmitry



 On Mon, Sep 2, 2013 at 5:40 PM, Erick Erickson erickerick...@gmail.com
 wrote:

  filter and facet queries can be freely intermixed, it's not a problem.
  What problem are you seeing when you try this?
 
  Best,
  Erick
 
 
  On Mon, Sep 2, 2013 at 7:46 AM, Dmitry Kan solrexp...@gmail.com wrote:
 
   Hi Roman,
  
   What's the format for running the facet+filter queries?
  
   Would something like this work:
  
   field:foo  =50  fq=other_field:bar facet=true
  facet.field=facet_field_name
  
  
   Thanks,
   Dmitry
  
  
  
   On Fri, Aug 23, 2013 at 2:34 PM, Dmitry Kan solrexp...@gmail.com
  wrote:
  
Hi Roman,
   
With adminPath=/admin or adminPath=/admin/cores, no.
 Interestingly
enough, though, I can access
http://localhost:8983/solr/statements/admin/system
   
But I can access http://localhost:8983/solr/admin/cores, only when
  with
adminPath=/admin/cores (which suggests that this is the right value
  to
   be
used for cores), and not with adminPath=/admin.
   
Bottom line, these core configuration is not self-evident.
   
Dmitry
   
   
   
   
On Fri, Aug 23, 2013 at 4:18 AM, Roman Chyla roman.ch...@gmail.com
   wrote:
   
Hi Dmitry,
So it seems solrjmeter should not assume the adminPath - and perhaps
   needs
to be passed as an argument. When you set the adminPath, are you
 able
  to
access localhost:8983/solr/statements/admin/cores ?
   
roman
   
   
On Wed, Aug 21, 2013 at 7:36 AM, Dmitry Kan solrexp...@gmail.com
   wrote:
   
 Hi Roman,

 I have noticed a difference with different solr.xml config
 contents.
   It
is
 probably legit, but thought to let you know (tests run on fresh
checkout as
 of today).

 As mentioned before, I have two cores configured in solr.xml. If
 the
file
 is:

 [code]
 solr persistent=false

   !--
   adminPath: RequestHandler path to manage cores.
 If 'null' (or absent), cores will not be manageable via
 request
handler
   --
   cores adminPath=/admin/cores host=${host:}
 hostPort=${jetty.port:8983} hostContext=${hostContext:solr}
 core name=metadata instanceDir=metadata /
 core name=statements instanceDir=statements /
   /cores
 /solr
 [/code]

 then the instruction:

 python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
 ./queries/demo/demo.queries -s localhost -p 8983 -a
 --durationInSecs
   60
-R
 cms -t /solr/statements -e statements -U 100

 works just fine. If however the solr.xml has adminPath set to
  /admin
 solrjmeter produces an error:

 [error]
 **ERROR**
   File solrjmeter.py, line 1386, in module
 main(sys.argv)
   File solrjmeter.py, line 1278, in main
 check_prerequisities(options)
   File solrjmeter.py, line 375, in check_prerequisities
 error('Cannot find admin pages: %s, please report a bug' %
  apath)
   File solrjmeter.py, line 66, in error
 traceback.print_stack()
 Cannot find admin pages: http://localhost:8983/solr/admin, please
report a
 bug
 [/error]

 With both solr.xml configs the following url returns just fine:

 http://localhost:8983/solr/statements/admin/system?wt=json

 Regards,

 Dmitry



 On Wed, Aug 14, 2013 at 2:03 PM, Dmitry Kan solrexp...@gmail.com
 
wrote:

  Hi Roman,
 
  This looks much better, thanks! The ordinary non-comarison mode
   works.
  I'll post here, if there are other findings.
 
  Thanks for quick turnarounds,
 
  Dmitry
 
 
  On Wed, Aug 14, 2013 at 1:32 AM, Roman Chyla 
  roman.ch...@gmail.com
 wrote:
 
  Hi Dmitry, oh yes, late night fixes... :) The latest commit
  should
make
 it
  work for you.
  Thanks!
 
  roman
 
 
  On Tue, Aug 13, 2013 at 3:37 AM, Dmitry Kan 
  solrexp...@gmail.com
 wrote:
 
   Hi Roman,
  
   Something bad happened in fresh 

Re: Measuring SOLR performance

2013-08-23 Thread Dmitry Kan
Hi Roman,

With adminPath=/admin or adminPath=/admin/cores, no. Interestingly
enough, though, I can access
http://localhost:8983/solr/statements/admin/system

But I can access http://localhost:8983/solr/admin/cores, only when with
adminPath=/admin/cores (which suggests that this is the right value to be
used for cores), and not with adminPath=/admin.

Bottom line, these core configuration is not self-evident.

Dmitry




On Fri, Aug 23, 2013 at 4:18 AM, Roman Chyla roman.ch...@gmail.com wrote:

 Hi Dmitry,
 So it seems solrjmeter should not assume the adminPath - and perhaps needs
 to be passed as an argument. When you set the adminPath, are you able to
 access localhost:8983/solr/statements/admin/cores ?

 roman


 On Wed, Aug 21, 2013 at 7:36 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  I have noticed a difference with different solr.xml config contents. It
 is
  probably legit, but thought to let you know (tests run on fresh checkout
 as
  of today).
 
  As mentioned before, I have two cores configured in solr.xml. If the file
  is:
 
  [code]
  solr persistent=false
 
!--
adminPath: RequestHandler path to manage cores.
  If 'null' (or absent), cores will not be manageable via request
 handler
--
cores adminPath=/admin/cores host=${host:}
  hostPort=${jetty.port:8983} hostContext=${hostContext:solr}
  core name=metadata instanceDir=metadata /
  core name=statements instanceDir=statements /
/cores
  /solr
  [/code]
 
  then the instruction:
 
  python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
  ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60
 -R
  cms -t /solr/statements -e statements -U 100
 
  works just fine. If however the solr.xml has adminPath set to /admin
  solrjmeter produces an error:
 
  [error]
  **ERROR**
File solrjmeter.py, line 1386, in module
  main(sys.argv)
File solrjmeter.py, line 1278, in main
  check_prerequisities(options)
File solrjmeter.py, line 375, in check_prerequisities
  error('Cannot find admin pages: %s, please report a bug' % apath)
File solrjmeter.py, line 66, in error
  traceback.print_stack()
  Cannot find admin pages: http://localhost:8983/solr/admin, please
 report a
  bug
  [/error]
 
  With both solr.xml configs the following url returns just fine:
 
  http://localhost:8983/solr/statements/admin/system?wt=json
 
  Regards,
 
  Dmitry
 
 
 
  On Wed, Aug 14, 2013 at 2:03 PM, Dmitry Kan solrexp...@gmail.com
 wrote:
 
   Hi Roman,
  
   This looks much better, thanks! The ordinary non-comarison mode works.
   I'll post here, if there are other findings.
  
   Thanks for quick turnarounds,
  
   Dmitry
  
  
   On Wed, Aug 14, 2013 at 1:32 AM, Roman Chyla roman.ch...@gmail.com
  wrote:
  
   Hi Dmitry, oh yes, late night fixes... :) The latest commit should
 make
  it
   work for you.
   Thanks!
  
   roman
  
  
   On Tue, Aug 13, 2013 at 3:37 AM, Dmitry Kan solrexp...@gmail.com
  wrote:
  
Hi Roman,
   
Something bad happened in fresh checkout:
   
python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs
  60
   -R
cms -t /solr/statements -e statements -U 100
   
Traceback (most recent call last):
  File solrjmeter.py, line 1392, in module
main(sys.argv)
  File solrjmeter.py, line 1347, in main
save_into_file('before-test.json',
 simplejson.dumps(before_test))
  File /usr/lib/python2.7/dist-packages/simplejson/__init__.py,
 line
   286,
in dumps
return _default_encoder.encode(obj)
  File /usr/lib/python2.7/dist-packages/simplejson/encoder.py,
 line
   226,
in encode
chunks = self.iterencode(o, _one_shot=True)
  File /usr/lib/python2.7/dist-packages/simplejson/encoder.py,
 line
   296,
in iterencode
return _iterencode(o, 0)
  File /usr/lib/python2.7/dist-packages/simplejson/encoder.py,
 line
   202,
in default
raise TypeError(repr(o) +  is not JSON serializable)
TypeError: __main__.ForgivingValue object at 0x7fc6d4040fd0 is not
   JSON
serializable
   
   
Regards,
   
D.
   
   
On Tue, Aug 13, 2013 at 8:10 AM, Roman Chyla roman.ch...@gmail.com
 
wrote:
   
 Hi Dmitry,



 On Mon, Aug 12, 2013 at 9:36 AM, Dmitry Kan solrexp...@gmail.com
 
wrote:

  Hi Roman,
 
  Good point. I managed to run the command with -C and double
  quotes:
 
  python solrjmeter.py -a -C g1,cms -c hour -x
   ./jmx/SolrQueryTest.jmx
 
  As a result got several files (html, css, js, csv) in the
 running
 directory
  (any way to specify where the output should be stored in this
  case?)
 

 i know it is confusing, i plan to change it - but later, now it is
  too
busy
 here...


 
  When I look onto the comparison dashboard, I see this:
 
  http://pbrd.co/17IRI0b
 

 two 

Re: Measuring SOLR performance

2013-08-22 Thread Roman Chyla
Hi Dmitry,
So it seems solrjmeter should not assume the adminPath - and perhaps needs
to be passed as an argument. When you set the adminPath, are you able to
access localhost:8983/solr/statements/admin/cores ?

roman


On Wed, Aug 21, 2013 at 7:36 AM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 I have noticed a difference with different solr.xml config contents. It is
 probably legit, but thought to let you know (tests run on fresh checkout as
 of today).

 As mentioned before, I have two cores configured in solr.xml. If the file
 is:

 [code]
 solr persistent=false

   !--
   adminPath: RequestHandler path to manage cores.
 If 'null' (or absent), cores will not be manageable via request handler
   --
   cores adminPath=/admin/cores host=${host:}
 hostPort=${jetty.port:8983} hostContext=${hostContext:solr}
 core name=metadata instanceDir=metadata /
 core name=statements instanceDir=statements /
   /cores
 /solr
 [/code]

 then the instruction:

 python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
 ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60 -R
 cms -t /solr/statements -e statements -U 100

 works just fine. If however the solr.xml has adminPath set to /admin
 solrjmeter produces an error:

 [error]
 **ERROR**
   File solrjmeter.py, line 1386, in module
 main(sys.argv)
   File solrjmeter.py, line 1278, in main
 check_prerequisities(options)
   File solrjmeter.py, line 375, in check_prerequisities
 error('Cannot find admin pages: %s, please report a bug' % apath)
   File solrjmeter.py, line 66, in error
 traceback.print_stack()
 Cannot find admin pages: http://localhost:8983/solr/admin, please report a
 bug
 [/error]

 With both solr.xml configs the following url returns just fine:

 http://localhost:8983/solr/statements/admin/system?wt=json

 Regards,

 Dmitry



 On Wed, Aug 14, 2013 at 2:03 PM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  This looks much better, thanks! The ordinary non-comarison mode works.
  I'll post here, if there are other findings.
 
  Thanks for quick turnarounds,
 
  Dmitry
 
 
  On Wed, Aug 14, 2013 at 1:32 AM, Roman Chyla roman.ch...@gmail.com
 wrote:
 
  Hi Dmitry, oh yes, late night fixes... :) The latest commit should make
 it
  work for you.
  Thanks!
 
  roman
 
 
  On Tue, Aug 13, 2013 at 3:37 AM, Dmitry Kan solrexp...@gmail.com
 wrote:
 
   Hi Roman,
  
   Something bad happened in fresh checkout:
  
   python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
   ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs
 60
  -R
   cms -t /solr/statements -e statements -U 100
  
   Traceback (most recent call last):
 File solrjmeter.py, line 1392, in module
   main(sys.argv)
 File solrjmeter.py, line 1347, in main
   save_into_file('before-test.json', simplejson.dumps(before_test))
 File /usr/lib/python2.7/dist-packages/simplejson/__init__.py, line
  286,
   in dumps
   return _default_encoder.encode(obj)
 File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line
  226,
   in encode
   chunks = self.iterencode(o, _one_shot=True)
 File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line
  296,
   in iterencode
   return _iterencode(o, 0)
 File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line
  202,
   in default
   raise TypeError(repr(o) +  is not JSON serializable)
   TypeError: __main__.ForgivingValue object at 0x7fc6d4040fd0 is not
  JSON
   serializable
  
  
   Regards,
  
   D.
  
  
   On Tue, Aug 13, 2013 at 8:10 AM, Roman Chyla roman.ch...@gmail.com
   wrote:
  
Hi Dmitry,
   
   
   
On Mon, Aug 12, 2013 at 9:36 AM, Dmitry Kan solrexp...@gmail.com
   wrote:
   
 Hi Roman,

 Good point. I managed to run the command with -C and double
 quotes:

 python solrjmeter.py -a -C g1,cms -c hour -x
  ./jmx/SolrQueryTest.jmx

 As a result got several files (html, css, js, csv) in the running
directory
 (any way to specify where the output should be stored in this
 case?)

   
i know it is confusing, i plan to change it - but later, now it is
 too
   busy
here...
   
   

 When I look onto the comparison dashboard, I see this:

 http://pbrd.co/17IRI0b

   
two things: the tests probably took more than one hour to finish, so
  they
are not aligned - try generating the comparison with '-c  14400'
  (ie.
4x3600 secs)
   
the other thing: if you have only two datapoints, the dygraph will
 not
   show
anything - there must be more datapoints/measurements
   
   
   

 One more thing: all the previous tests were run with softCommit
   disabled.
 After enabling it, the tests started to fail:

 $ python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
 ./queries/demo/demo.queries -s localhost -p 8983 -a
  --durationInSecs 60
-R
 g1 -t /solr/statements -e statements -U 100
 $ cd g1
 Reading 

Re: Measuring SOLR performance

2013-08-21 Thread Dmitry Kan
Hi Roman,

I have noticed a difference with different solr.xml config contents. It is
probably legit, but thought to let you know (tests run on fresh checkout as
of today).

As mentioned before, I have two cores configured in solr.xml. If the file
is:

[code]
solr persistent=false

  !--
  adminPath: RequestHandler path to manage cores.
If 'null' (or absent), cores will not be manageable via request handler
  --
  cores adminPath=/admin/cores host=${host:}
hostPort=${jetty.port:8983} hostContext=${hostContext:solr}
core name=metadata instanceDir=metadata /
core name=statements instanceDir=statements /
  /cores
/solr
[/code]

then the instruction:

python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60 -R
cms -t /solr/statements -e statements -U 100

works just fine. If however the solr.xml has adminPath set to /admin
solrjmeter produces an error:

[error]
**ERROR**
  File solrjmeter.py, line 1386, in module
main(sys.argv)
  File solrjmeter.py, line 1278, in main
check_prerequisities(options)
  File solrjmeter.py, line 375, in check_prerequisities
error('Cannot find admin pages: %s, please report a bug' % apath)
  File solrjmeter.py, line 66, in error
traceback.print_stack()
Cannot find admin pages: http://localhost:8983/solr/admin, please report a
bug
[/error]

With both solr.xml configs the following url returns just fine:

http://localhost:8983/solr/statements/admin/system?wt=json

Regards,

Dmitry



On Wed, Aug 14, 2013 at 2:03 PM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 This looks much better, thanks! The ordinary non-comarison mode works.
 I'll post here, if there are other findings.

 Thanks for quick turnarounds,

 Dmitry


 On Wed, Aug 14, 2013 at 1:32 AM, Roman Chyla roman.ch...@gmail.comwrote:

 Hi Dmitry, oh yes, late night fixes... :) The latest commit should make it
 work for you.
 Thanks!

 roman


 On Tue, Aug 13, 2013 at 3:37 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  Something bad happened in fresh checkout:
 
  python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
  ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60
 -R
  cms -t /solr/statements -e statements -U 100
 
  Traceback (most recent call last):
File solrjmeter.py, line 1392, in module
  main(sys.argv)
File solrjmeter.py, line 1347, in main
  save_into_file('before-test.json', simplejson.dumps(before_test))
File /usr/lib/python2.7/dist-packages/simplejson/__init__.py, line
 286,
  in dumps
  return _default_encoder.encode(obj)
File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line
 226,
  in encode
  chunks = self.iterencode(o, _one_shot=True)
File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line
 296,
  in iterencode
  return _iterencode(o, 0)
File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line
 202,
  in default
  raise TypeError(repr(o) +  is not JSON serializable)
  TypeError: __main__.ForgivingValue object at 0x7fc6d4040fd0 is not
 JSON
  serializable
 
 
  Regards,
 
  D.
 
 
  On Tue, Aug 13, 2013 at 8:10 AM, Roman Chyla roman.ch...@gmail.com
  wrote:
 
   Hi Dmitry,
  
  
  
   On Mon, Aug 12, 2013 at 9:36 AM, Dmitry Kan solrexp...@gmail.com
  wrote:
  
Hi Roman,
   
Good point. I managed to run the command with -C and double quotes:
   
python solrjmeter.py -a -C g1,cms -c hour -x
 ./jmx/SolrQueryTest.jmx
   
As a result got several files (html, css, js, csv) in the running
   directory
(any way to specify where the output should be stored in this case?)
   
  
   i know it is confusing, i plan to change it - but later, now it is too
  busy
   here...
  
  
   
When I look onto the comparison dashboard, I see this:
   
http://pbrd.co/17IRI0b
   
  
   two things: the tests probably took more than one hour to finish, so
 they
   are not aligned - try generating the comparison with '-c  14400'  (ie.
   4x3600 secs)
  
   the other thing: if you have only two datapoints, the dygraph will not
  show
   anything - there must be more datapoints/measurements
  
  
  
   
One more thing: all the previous tests were run with softCommit
  disabled.
After enabling it, the tests started to fail:
   
$ python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
./queries/demo/demo.queries -s localhost -p 8983 -a
 --durationInSecs 60
   -R
g1 -t /solr/statements -e statements -U 100
$ cd g1
Reading results of the previous test
$ cd 2013.08.12.16.32.48
$ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter/g1
$ mkdir 2013.08.12.16.33.02
$ cd 2013.08.12.16.33.02
$ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter/g1
$ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter
$ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter
Traceback (most recent call last):
  File solrjmeter.py, line 1427, in module

Re: Measuring SOLR performance

2013-08-14 Thread Dmitry Kan
Hi Roman,

This looks much better, thanks! The ordinary non-comarison mode works. I'll
post here, if there are other findings.

Thanks for quick turnarounds,

Dmitry


On Wed, Aug 14, 2013 at 1:32 AM, Roman Chyla roman.ch...@gmail.com wrote:

 Hi Dmitry, oh yes, late night fixes... :) The latest commit should make it
 work for you.
 Thanks!

 roman


 On Tue, Aug 13, 2013 at 3:37 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  Something bad happened in fresh checkout:
 
  python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
  ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60
 -R
  cms -t /solr/statements -e statements -U 100
 
  Traceback (most recent call last):
File solrjmeter.py, line 1392, in module
  main(sys.argv)
File solrjmeter.py, line 1347, in main
  save_into_file('before-test.json', simplejson.dumps(before_test))
File /usr/lib/python2.7/dist-packages/simplejson/__init__.py, line
 286,
  in dumps
  return _default_encoder.encode(obj)
File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line
 226,
  in encode
  chunks = self.iterencode(o, _one_shot=True)
File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line
 296,
  in iterencode
  return _iterencode(o, 0)
File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line
 202,
  in default
  raise TypeError(repr(o) +  is not JSON serializable)
  TypeError: __main__.ForgivingValue object at 0x7fc6d4040fd0 is not JSON
  serializable
 
 
  Regards,
 
  D.
 
 
  On Tue, Aug 13, 2013 at 8:10 AM, Roman Chyla roman.ch...@gmail.com
  wrote:
 
   Hi Dmitry,
  
  
  
   On Mon, Aug 12, 2013 at 9:36 AM, Dmitry Kan solrexp...@gmail.com
  wrote:
  
Hi Roman,
   
Good point. I managed to run the command with -C and double quotes:
   
python solrjmeter.py -a -C g1,cms -c hour -x
 ./jmx/SolrQueryTest.jmx
   
As a result got several files (html, css, js, csv) in the running
   directory
(any way to specify where the output should be stored in this case?)
   
  
   i know it is confusing, i plan to change it - but later, now it is too
  busy
   here...
  
  
   
When I look onto the comparison dashboard, I see this:
   
http://pbrd.co/17IRI0b
   
  
   two things: the tests probably took more than one hour to finish, so
 they
   are not aligned - try generating the comparison with '-c  14400'  (ie.
   4x3600 secs)
  
   the other thing: if you have only two datapoints, the dygraph will not
  show
   anything - there must be more datapoints/measurements
  
  
  
   
One more thing: all the previous tests were run with softCommit
  disabled.
After enabling it, the tests started to fail:
   
$ python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs
 60
   -R
g1 -t /solr/statements -e statements -U 100
$ cd g1
Reading results of the previous test
$ cd 2013.08.12.16.32.48
$ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter/g1
$ mkdir 2013.08.12.16.33.02
$ cd 2013.08.12.16.33.02
$ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter/g1
$ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter
$ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter
Traceback (most recent call last):
  File solrjmeter.py, line 1427, in module
main(sys.argv)
  File solrjmeter.py, line 1381, in main
before_test = harvest_details_about_montysolr(options)
  File solrjmeter.py, line 562, in harvest_details_about_montysolr
indexLstModified =
  cores_data['status'][cn]['index']['lastModified'],
KeyError: 'lastModified'
   
  
   Thanks for letting me know, that info is probably not available in this
   situation - i've cooked st quick to fix it, please try the latest
 commit
   (hope it doesn't do more harm, i should get some sleep ..;))
  
   roman
  
  
   
In case it matters:  Python 2.7.3, ubuntu, solr 4.3.1.
   
Thanks,
   
Dmitry
   
   
On Thu, Aug 8, 2013 at 2:22 AM, Roman Chyla roman.ch...@gmail.com
   wrote:
   
 Hi Dmitry,
 The command seems good. Are you sure your shell is not doing
  something
 funny with the params? You could try:

 python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx
  -a

 where g1 and foo are results of the individual runs, ie. something
  that
was
 started and saved with '-R g1' and '-R foo' respectively

 so, for example, i have these comparisons inside
 '/var/lib/montysolr/different-java-settings/solrjmeter', so I am
generating
 the comparison by:

 export

 SOLRJMETER_HOME=/var/lib/montysolr/different-java-settings/solrjmeter
 python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx
  -a


 roman


 On Wed, Aug 7, 2013 at 10:03 AM, Dmitry Kan solrexp...@gmail.com
wrote:

  Hi Roman,
 
  One more question. I tried to 

Re: Measuring SOLR performance

2013-08-13 Thread Dmitry Kan
Hi Roman,

Something bad happened in fresh checkout:

python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60 -R
cms -t /solr/statements -e statements -U 100

Traceback (most recent call last):
  File solrjmeter.py, line 1392, in module
main(sys.argv)
  File solrjmeter.py, line 1347, in main
save_into_file('before-test.json', simplejson.dumps(before_test))
  File /usr/lib/python2.7/dist-packages/simplejson/__init__.py, line 286,
in dumps
return _default_encoder.encode(obj)
  File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line 226,
in encode
chunks = self.iterencode(o, _one_shot=True)
  File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line 296,
in iterencode
return _iterencode(o, 0)
  File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line 202,
in default
raise TypeError(repr(o) +  is not JSON serializable)
TypeError: __main__.ForgivingValue object at 0x7fc6d4040fd0 is not JSON
serializable


Regards,

D.


On Tue, Aug 13, 2013 at 8:10 AM, Roman Chyla roman.ch...@gmail.com wrote:

 Hi Dmitry,



 On Mon, Aug 12, 2013 at 9:36 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  Good point. I managed to run the command with -C and double quotes:
 
  python solrjmeter.py -a -C g1,cms -c hour -x ./jmx/SolrQueryTest.jmx
 
  As a result got several files (html, css, js, csv) in the running
 directory
  (any way to specify where the output should be stored in this case?)
 

 i know it is confusing, i plan to change it - but later, now it is too busy
 here...


 
  When I look onto the comparison dashboard, I see this:
 
  http://pbrd.co/17IRI0b
 

 two things: the tests probably took more than one hour to finish, so they
 are not aligned - try generating the comparison with '-c  14400'  (ie.
 4x3600 secs)

 the other thing: if you have only two datapoints, the dygraph will not show
 anything - there must be more datapoints/measurements



 
  One more thing: all the previous tests were run with softCommit disabled.
  After enabling it, the tests started to fail:
 
  $ python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
  ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60
 -R
  g1 -t /solr/statements -e statements -U 100
  $ cd g1
  Reading results of the previous test
  $ cd 2013.08.12.16.32.48
  $ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter/g1
  $ mkdir 2013.08.12.16.33.02
  $ cd 2013.08.12.16.33.02
  $ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter/g1
  $ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter
  $ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter
  Traceback (most recent call last):
File solrjmeter.py, line 1427, in module
  main(sys.argv)
File solrjmeter.py, line 1381, in main
  before_test = harvest_details_about_montysolr(options)
File solrjmeter.py, line 562, in harvest_details_about_montysolr
  indexLstModified = cores_data['status'][cn]['index']['lastModified'],
  KeyError: 'lastModified'
 

 Thanks for letting me know, that info is probably not available in this
 situation - i've cooked st quick to fix it, please try the latest commit
 (hope it doesn't do more harm, i should get some sleep ..;))

 roman


 
  In case it matters:  Python 2.7.3, ubuntu, solr 4.3.1.
 
  Thanks,
 
  Dmitry
 
 
  On Thu, Aug 8, 2013 at 2:22 AM, Roman Chyla roman.ch...@gmail.com
 wrote:
 
   Hi Dmitry,
   The command seems good. Are you sure your shell is not doing something
   funny with the params? You could try:
  
   python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx -a
  
   where g1 and foo are results of the individual runs, ie. something that
  was
   started and saved with '-R g1' and '-R foo' respectively
  
   so, for example, i have these comparisons inside
   '/var/lib/montysolr/different-java-settings/solrjmeter', so I am
  generating
   the comparison by:
  
   export
   SOLRJMETER_HOME=/var/lib/montysolr/different-java-settings/solrjmeter
   python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx -a
  
  
   roman
  
  
   On Wed, Aug 7, 2013 at 10:03 AM, Dmitry Kan solrexp...@gmail.com
  wrote:
  
Hi Roman,
   
One more question. I tried to compare different runs (g1 vs cms)
 using
   the
command below, but get an error. Should I attach some other param(s)?
   
   
python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx
**ERROR**
  File solrjmeter.py, line 1427, in module
main(sys.argv)
  File solrjmeter.py, line 1303, in main
check_options(options, args)
  File solrjmeter.py, line 185, in check_options
error(The folder '%s' does not exist % rf)
  File solrjmeter.py, line 66, in error
traceback.print_stack()
The folder '0' does not exist
   
Dmitry
   
   
   
   
On Wed, Aug 7, 2013 at 4:13 PM, Dmitry Kan solrexp...@gmail.com
  wrote:
   
 Hi Roman,

 Finally, this has worked! 

Re: Measuring SOLR performance

2013-08-13 Thread Roman Chyla
Hi Dmitry, oh yes, late night fixes... :) The latest commit should make it
work for you.
Thanks!

roman


On Tue, Aug 13, 2013 at 3:37 AM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 Something bad happened in fresh checkout:

 python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
 ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60 -R
 cms -t /solr/statements -e statements -U 100

 Traceback (most recent call last):
   File solrjmeter.py, line 1392, in module
 main(sys.argv)
   File solrjmeter.py, line 1347, in main
 save_into_file('before-test.json', simplejson.dumps(before_test))
   File /usr/lib/python2.7/dist-packages/simplejson/__init__.py, line 286,
 in dumps
 return _default_encoder.encode(obj)
   File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line 226,
 in encode
 chunks = self.iterencode(o, _one_shot=True)
   File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line 296,
 in iterencode
 return _iterencode(o, 0)
   File /usr/lib/python2.7/dist-packages/simplejson/encoder.py, line 202,
 in default
 raise TypeError(repr(o) +  is not JSON serializable)
 TypeError: __main__.ForgivingValue object at 0x7fc6d4040fd0 is not JSON
 serializable


 Regards,

 D.


 On Tue, Aug 13, 2013 at 8:10 AM, Roman Chyla roman.ch...@gmail.com
 wrote:

  Hi Dmitry,
 
 
 
  On Mon, Aug 12, 2013 at 9:36 AM, Dmitry Kan solrexp...@gmail.com
 wrote:
 
   Hi Roman,
  
   Good point. I managed to run the command with -C and double quotes:
  
   python solrjmeter.py -a -C g1,cms -c hour -x ./jmx/SolrQueryTest.jmx
  
   As a result got several files (html, css, js, csv) in the running
  directory
   (any way to specify where the output should be stored in this case?)
  
 
  i know it is confusing, i plan to change it - but later, now it is too
 busy
  here...
 
 
  
   When I look onto the comparison dashboard, I see this:
  
   http://pbrd.co/17IRI0b
  
 
  two things: the tests probably took more than one hour to finish, so they
  are not aligned - try generating the comparison with '-c  14400'  (ie.
  4x3600 secs)
 
  the other thing: if you have only two datapoints, the dygraph will not
 show
  anything - there must be more datapoints/measurements
 
 
 
  
   One more thing: all the previous tests were run with softCommit
 disabled.
   After enabling it, the tests started to fail:
  
   $ python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
   ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60
  -R
   g1 -t /solr/statements -e statements -U 100
   $ cd g1
   Reading results of the previous test
   $ cd 2013.08.12.16.32.48
   $ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter/g1
   $ mkdir 2013.08.12.16.33.02
   $ cd 2013.08.12.16.33.02
   $ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter/g1
   $ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter
   $ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter
   Traceback (most recent call last):
 File solrjmeter.py, line 1427, in module
   main(sys.argv)
 File solrjmeter.py, line 1381, in main
   before_test = harvest_details_about_montysolr(options)
 File solrjmeter.py, line 562, in harvest_details_about_montysolr
   indexLstModified =
 cores_data['status'][cn]['index']['lastModified'],
   KeyError: 'lastModified'
  
 
  Thanks for letting me know, that info is probably not available in this
  situation - i've cooked st quick to fix it, please try the latest commit
  (hope it doesn't do more harm, i should get some sleep ..;))
 
  roman
 
 
  
   In case it matters:  Python 2.7.3, ubuntu, solr 4.3.1.
  
   Thanks,
  
   Dmitry
  
  
   On Thu, Aug 8, 2013 at 2:22 AM, Roman Chyla roman.ch...@gmail.com
  wrote:
  
Hi Dmitry,
The command seems good. Are you sure your shell is not doing
 something
funny with the params? You could try:
   
python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx
 -a
   
where g1 and foo are results of the individual runs, ie. something
 that
   was
started and saved with '-R g1' and '-R foo' respectively
   
so, for example, i have these comparisons inside
'/var/lib/montysolr/different-java-settings/solrjmeter', so I am
   generating
the comparison by:
   
export
SOLRJMETER_HOME=/var/lib/montysolr/different-java-settings/solrjmeter
python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx
 -a
   
   
roman
   
   
On Wed, Aug 7, 2013 at 10:03 AM, Dmitry Kan solrexp...@gmail.com
   wrote:
   
 Hi Roman,

 One more question. I tried to compare different runs (g1 vs cms)
  using
the
 command below, but get an error. Should I attach some other
 param(s)?


 python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx
 **ERROR**
   File solrjmeter.py, line 1427, in module
 main(sys.argv)
   File solrjmeter.py, line 1303, in main
 check_options(options, args)
   File solrjmeter.py, line 185, 

Re: Measuring SOLR performance

2013-08-12 Thread Dmitry Kan
Hi Roman,

Good point. I managed to run the command with -C and double quotes:

python solrjmeter.py -a -C g1,cms -c hour -x ./jmx/SolrQueryTest.jmx

As a result got several files (html, css, js, csv) in the running directory
(any way to specify where the output should be stored in this case?)

When I look onto the comparison dashboard, I see this:

http://pbrd.co/17IRI0b


One more thing: all the previous tests were run with softCommit disabled.
After enabling it, the tests started to fail:

$ python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60 -R
g1 -t /solr/statements -e statements -U 100
$ cd g1
Reading results of the previous test
$ cd 2013.08.12.16.32.48
$ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter/g1
$ mkdir 2013.08.12.16.33.02
$ cd 2013.08.12.16.33.02
$ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter/g1
$ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter
$ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter
Traceback (most recent call last):
  File solrjmeter.py, line 1427, in module
main(sys.argv)
  File solrjmeter.py, line 1381, in main
before_test = harvest_details_about_montysolr(options)
  File solrjmeter.py, line 562, in harvest_details_about_montysolr
indexLstModified = cores_data['status'][cn]['index']['lastModified'],
KeyError: 'lastModified'

In case it matters:  Python 2.7.3, ubuntu, solr 4.3.1.

Thanks,

Dmitry


On Thu, Aug 8, 2013 at 2:22 AM, Roman Chyla roman.ch...@gmail.com wrote:

 Hi Dmitry,
 The command seems good. Are you sure your shell is not doing something
 funny with the params? You could try:

 python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx -a

 where g1 and foo are results of the individual runs, ie. something that was
 started and saved with '-R g1' and '-R foo' respectively

 so, for example, i have these comparisons inside
 '/var/lib/montysolr/different-java-settings/solrjmeter', so I am generating
 the comparison by:

 export
 SOLRJMETER_HOME=/var/lib/montysolr/different-java-settings/solrjmeter
 python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx -a


 roman


 On Wed, Aug 7, 2013 at 10:03 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  One more question. I tried to compare different runs (g1 vs cms) using
 the
  command below, but get an error. Should I attach some other param(s)?
 
 
  python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx
  **ERROR**
File solrjmeter.py, line 1427, in module
  main(sys.argv)
File solrjmeter.py, line 1303, in main
  check_options(options, args)
File solrjmeter.py, line 185, in check_options
  error(The folder '%s' does not exist % rf)
File solrjmeter.py, line 66, in error
  traceback.print_stack()
  The folder '0' does not exist
 
  Dmitry
 
 
 
 
  On Wed, Aug 7, 2013 at 4:13 PM, Dmitry Kan solrexp...@gmail.com wrote:
 
   Hi Roman,
  
   Finally, this has worked! Thanks for quick support.
  
   The graphs look awesome. At least on the index sample :) It is quite
 easy
   to setup and run + possible to run directly on the shard server in
   background mode.
  
   my test run was:
  
   python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
   ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60
  -R
   foo -t /solr/statements -e statements
  
   Thanks!
  
   Dmitry
  
  
   On Wed, Aug 7, 2013 at 6:54 AM, Roman Chyla roman.ch...@gmail.com
  wrote:
  
   Hi Dmitry,
  
   I've modified the solrjmeter to retrieve data from under the core (the
  -t
   parameter) and the rest from the /solr/admin - I could test it only
   against
   4.0, but it is there the same as 4.3 - it seems...so you can try the
  fresh
   checkout
  
   my test was: python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -t
   /solr/collection1 -R foo -q ./queries/demo/* -p 9002 -s adsate
  
   Thanks!
  
   roman
  
  
   On Tue, Aug 6, 2013 at 9:46 AM, Dmitry Kan solrexp...@gmail.com
  wrote:
  
Hi,
   
Thanks for the clarification, Shawn!
   
So with this in mind, the following work:
   
http://localhost:8983/solr/statements/admin/system?wt=json
http://localhost:8983/solr/statements/admin/mbeans?wt=json
   
not copying their output to save space.
   
Roman:
   
is this something that should be set via -t parameter as well?
   
Dmitry
   
   
   
On Tue, Aug 6, 2013 at 4:34 PM, Shawn Heisey s...@elyograg.org
  wrote:
   
 On 8/6/2013 6:17 AM, Dmitry Kan wrote:
  Of three URLs you asked for, only the 3rd one gave response:
 snip
  The rest report 404.
 
  On Mon, Aug 5, 2013 at 8:38 PM, Roman Chyla 
  roman.ch...@gmail.com
 wrote:
 
  Hi Dmitry,
  So I think the admin pages are different on your version of
 solr,
   what
 do
  you see when you request... ?
 
  http://localhost:8983/solr/admin/system?wt=json
  http://localhost:8983/solr/admin/mbeans?wt=json
  

Re: Measuring SOLR performance

2013-08-12 Thread Roman Chyla
Hi Dmitry,



On Mon, Aug 12, 2013 at 9:36 AM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 Good point. I managed to run the command with -C and double quotes:

 python solrjmeter.py -a -C g1,cms -c hour -x ./jmx/SolrQueryTest.jmx

 As a result got several files (html, css, js, csv) in the running directory
 (any way to specify where the output should be stored in this case?)


i know it is confusing, i plan to change it - but later, now it is too busy
here...



 When I look onto the comparison dashboard, I see this:

 http://pbrd.co/17IRI0b


two things: the tests probably took more than one hour to finish, so they
are not aligned - try generating the comparison with '-c  14400'  (ie.
4x3600 secs)

the other thing: if you have only two datapoints, the dygraph will not show
anything - there must be more datapoints/measurements




 One more thing: all the previous tests were run with softCommit disabled.
 After enabling it, the tests started to fail:

 $ python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
 ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60 -R
 g1 -t /solr/statements -e statements -U 100
 $ cd g1
 Reading results of the previous test
 $ cd 2013.08.12.16.32.48
 $ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter/g1
 $ mkdir 2013.08.12.16.33.02
 $ cd 2013.08.12.16.33.02
 $ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter/g1
 $ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter
 $ cd /home/dmitry/projects/lab/solrjmeter4/solrjmeter
 Traceback (most recent call last):
   File solrjmeter.py, line 1427, in module
 main(sys.argv)
   File solrjmeter.py, line 1381, in main
 before_test = harvest_details_about_montysolr(options)
   File solrjmeter.py, line 562, in harvest_details_about_montysolr
 indexLstModified = cores_data['status'][cn]['index']['lastModified'],
 KeyError: 'lastModified'


Thanks for letting me know, that info is probably not available in this
situation - i've cooked st quick to fix it, please try the latest commit
(hope it doesn't do more harm, i should get some sleep ..;))

roman



 In case it matters:  Python 2.7.3, ubuntu, solr 4.3.1.

 Thanks,

 Dmitry


 On Thu, Aug 8, 2013 at 2:22 AM, Roman Chyla roman.ch...@gmail.com wrote:

  Hi Dmitry,
  The command seems good. Are you sure your shell is not doing something
  funny with the params? You could try:
 
  python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx -a
 
  where g1 and foo are results of the individual runs, ie. something that
 was
  started and saved with '-R g1' and '-R foo' respectively
 
  so, for example, i have these comparisons inside
  '/var/lib/montysolr/different-java-settings/solrjmeter', so I am
 generating
  the comparison by:
 
  export
  SOLRJMETER_HOME=/var/lib/montysolr/different-java-settings/solrjmeter
  python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx -a
 
 
  roman
 
 
  On Wed, Aug 7, 2013 at 10:03 AM, Dmitry Kan solrexp...@gmail.com
 wrote:
 
   Hi Roman,
  
   One more question. I tried to compare different runs (g1 vs cms) using
  the
   command below, but get an error. Should I attach some other param(s)?
  
  
   python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx
   **ERROR**
 File solrjmeter.py, line 1427, in module
   main(sys.argv)
 File solrjmeter.py, line 1303, in main
   check_options(options, args)
 File solrjmeter.py, line 185, in check_options
   error(The folder '%s' does not exist % rf)
 File solrjmeter.py, line 66, in error
   traceback.print_stack()
   The folder '0' does not exist
  
   Dmitry
  
  
  
  
   On Wed, Aug 7, 2013 at 4:13 PM, Dmitry Kan solrexp...@gmail.com
 wrote:
  
Hi Roman,
   
Finally, this has worked! Thanks for quick support.
   
The graphs look awesome. At least on the index sample :) It is quite
  easy
to setup and run + possible to run directly on the shard server in
background mode.
   
my test run was:
   
python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs
 60
   -R
foo -t /solr/statements -e statements
   
Thanks!
   
Dmitry
   
   
On Wed, Aug 7, 2013 at 6:54 AM, Roman Chyla roman.ch...@gmail.com
   wrote:
   
Hi Dmitry,
   
I've modified the solrjmeter to retrieve data from under the core
 (the
   -t
parameter) and the rest from the /solr/admin - I could test it only
against
4.0, but it is there the same as 4.3 - it seems...so you can try the
   fresh
checkout
   
my test was: python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -t
/solr/collection1 -R foo -q ./queries/demo/* -p 9002 -s adsate
   
Thanks!
   
roman
   
   
On Tue, Aug 6, 2013 at 9:46 AM, Dmitry Kan solrexp...@gmail.com
   wrote:
   
 Hi,

 Thanks for the clarification, Shawn!

 So with this in mind, the following work:

 

Re: Measuring SOLR performance

2013-08-07 Thread Dmitry Kan
Hi Roman,

Finally, this has worked! Thanks for quick support.

The graphs look awesome. At least on the index sample :) It is quite easy
to setup and run + possible to run directly on the shard server in
background mode.

my test run was:

python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60 -R
foo -t /solr/statements -e statements

Thanks!

Dmitry


On Wed, Aug 7, 2013 at 6:54 AM, Roman Chyla roman.ch...@gmail.com wrote:

 Hi Dmitry,

 I've modified the solrjmeter to retrieve data from under the core (the -t
 parameter) and the rest from the /solr/admin - I could test it only against
 4.0, but it is there the same as 4.3 - it seems...so you can try the fresh
 checkout

 my test was: python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -t
 /solr/collection1 -R foo -q ./queries/demo/* -p 9002 -s adsate

 Thanks!

 roman


 On Tue, Aug 6, 2013 at 9:46 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi,
 
  Thanks for the clarification, Shawn!
 
  So with this in mind, the following work:
 
  http://localhost:8983/solr/statements/admin/system?wt=json
  http://localhost:8983/solr/statements/admin/mbeans?wt=json
 
  not copying their output to save space.
 
  Roman:
 
  is this something that should be set via -t parameter as well?
 
  Dmitry
 
 
 
  On Tue, Aug 6, 2013 at 4:34 PM, Shawn Heisey s...@elyograg.org wrote:
 
   On 8/6/2013 6:17 AM, Dmitry Kan wrote:
Of three URLs you asked for, only the 3rd one gave response:
   snip
The rest report 404.
   
On Mon, Aug 5, 2013 at 8:38 PM, Roman Chyla roman.ch...@gmail.com
   wrote:
   
Hi Dmitry,
So I think the admin pages are different on your version of solr,
 what
   do
you see when you request... ?
   
http://localhost:8983/solr/admin/system?wt=json
http://localhost:8983/solr/admin/mbeans?wt=json
http://localhost:8983/solr/admin/cores?wt=json
  
   Unless you have a valid defaultCoreName set in your (old-style)
   solr.xml, the first two URLs won't work, as you've discovered.  Without
   that valid defaultCoreName (or if you wanted info from a different
   core), you'd need to add a core name to the URL for them to work.
  
   The third one, which works for you, is a global handler for
 manipulating
   cores, so naturally it doesn't need a core name to function.  The URL
   path for this handler is defined by solr.xml.
  
   Thanks,
   Shawn
  
  
 



Re: Measuring SOLR performance

2013-08-07 Thread Dmitry Kan
Hi Roman,

One more question. I tried to compare different runs (g1 vs cms) using the
command below, but get an error. Should I attach some other param(s)?


python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx
**ERROR**
  File solrjmeter.py, line 1427, in module
main(sys.argv)
  File solrjmeter.py, line 1303, in main
check_options(options, args)
  File solrjmeter.py, line 185, in check_options
error(The folder '%s' does not exist % rf)
  File solrjmeter.py, line 66, in error
traceback.print_stack()
The folder '0' does not exist

Dmitry




On Wed, Aug 7, 2013 at 4:13 PM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 Finally, this has worked! Thanks for quick support.

 The graphs look awesome. At least on the index sample :) It is quite easy
 to setup and run + possible to run directly on the shard server in
 background mode.

 my test run was:

 python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
 ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60 -R
 foo -t /solr/statements -e statements

 Thanks!

 Dmitry


 On Wed, Aug 7, 2013 at 6:54 AM, Roman Chyla roman.ch...@gmail.com wrote:

 Hi Dmitry,

 I've modified the solrjmeter to retrieve data from under the core (the -t
 parameter) and the rest from the /solr/admin - I could test it only
 against
 4.0, but it is there the same as 4.3 - it seems...so you can try the fresh
 checkout

 my test was: python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -t
 /solr/collection1 -R foo -q ./queries/demo/* -p 9002 -s adsate

 Thanks!

 roman


 On Tue, Aug 6, 2013 at 9:46 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi,
 
  Thanks for the clarification, Shawn!
 
  So with this in mind, the following work:
 
  http://localhost:8983/solr/statements/admin/system?wt=json
  http://localhost:8983/solr/statements/admin/mbeans?wt=json
 
  not copying their output to save space.
 
  Roman:
 
  is this something that should be set via -t parameter as well?
 
  Dmitry
 
 
 
  On Tue, Aug 6, 2013 at 4:34 PM, Shawn Heisey s...@elyograg.org wrote:
 
   On 8/6/2013 6:17 AM, Dmitry Kan wrote:
Of three URLs you asked for, only the 3rd one gave response:
   snip
The rest report 404.
   
On Mon, Aug 5, 2013 at 8:38 PM, Roman Chyla roman.ch...@gmail.com
   wrote:
   
Hi Dmitry,
So I think the admin pages are different on your version of solr,
 what
   do
you see when you request... ?
   
http://localhost:8983/solr/admin/system?wt=json
http://localhost:8983/solr/admin/mbeans?wt=json
http://localhost:8983/solr/admin/cores?wt=json
  
   Unless you have a valid defaultCoreName set in your (old-style)
   solr.xml, the first two URLs won't work, as you've discovered.
  Without
   that valid defaultCoreName (or if you wanted info from a different
   core), you'd need to add a core name to the URL for them to work.
  
   The third one, which works for you, is a global handler for
 manipulating
   cores, so naturally it doesn't need a core name to function.  The URL
   path for this handler is defined by solr.xml.
  
   Thanks,
   Shawn
  
  
 





Re: Measuring SOLR performance

2013-08-07 Thread Roman Chyla
Hi Dmitry,
The command seems good. Are you sure your shell is not doing something
funny with the params? You could try:

python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx -a

where g1 and foo are results of the individual runs, ie. something that was
started and saved with '-R g1' and '-R foo' respectively

so, for example, i have these comparisons inside
'/var/lib/montysolr/different-java-settings/solrjmeter', so I am generating
the comparison by:

export SOLRJMETER_HOME=/var/lib/montysolr/different-java-settings/solrjmeter
python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx -a


roman


On Wed, Aug 7, 2013 at 10:03 AM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 One more question. I tried to compare different runs (g1 vs cms) using the
 command below, but get an error. Should I attach some other param(s)?


 python solrjmeter.py -C g1,foo -c hour -x ./jmx/SolrQueryTest.jmx
 **ERROR**
   File solrjmeter.py, line 1427, in module
 main(sys.argv)
   File solrjmeter.py, line 1303, in main
 check_options(options, args)
   File solrjmeter.py, line 185, in check_options
 error(The folder '%s' does not exist % rf)
   File solrjmeter.py, line 66, in error
 traceback.print_stack()
 The folder '0' does not exist

 Dmitry




 On Wed, Aug 7, 2013 at 4:13 PM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  Finally, this has worked! Thanks for quick support.
 
  The graphs look awesome. At least on the index sample :) It is quite easy
  to setup and run + possible to run directly on the shard server in
  background mode.
 
  my test run was:
 
  python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
  ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60
 -R
  foo -t /solr/statements -e statements
 
  Thanks!
 
  Dmitry
 
 
  On Wed, Aug 7, 2013 at 6:54 AM, Roman Chyla roman.ch...@gmail.com
 wrote:
 
  Hi Dmitry,
 
  I've modified the solrjmeter to retrieve data from under the core (the
 -t
  parameter) and the rest from the /solr/admin - I could test it only
  against
  4.0, but it is there the same as 4.3 - it seems...so you can try the
 fresh
  checkout
 
  my test was: python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -t
  /solr/collection1 -R foo -q ./queries/demo/* -p 9002 -s adsate
 
  Thanks!
 
  roman
 
 
  On Tue, Aug 6, 2013 at 9:46 AM, Dmitry Kan solrexp...@gmail.com
 wrote:
 
   Hi,
  
   Thanks for the clarification, Shawn!
  
   So with this in mind, the following work:
  
   http://localhost:8983/solr/statements/admin/system?wt=json
   http://localhost:8983/solr/statements/admin/mbeans?wt=json
  
   not copying their output to save space.
  
   Roman:
  
   is this something that should be set via -t parameter as well?
  
   Dmitry
  
  
  
   On Tue, Aug 6, 2013 at 4:34 PM, Shawn Heisey s...@elyograg.org
 wrote:
  
On 8/6/2013 6:17 AM, Dmitry Kan wrote:
 Of three URLs you asked for, only the 3rd one gave response:
snip
 The rest report 404.

 On Mon, Aug 5, 2013 at 8:38 PM, Roman Chyla 
 roman.ch...@gmail.com
wrote:

 Hi Dmitry,
 So I think the admin pages are different on your version of solr,
  what
do
 you see when you request... ?

 http://localhost:8983/solr/admin/system?wt=json
 http://localhost:8983/solr/admin/mbeans?wt=json
 http://localhost:8983/solr/admin/cores?wt=json
   
Unless you have a valid defaultCoreName set in your (old-style)
solr.xml, the first two URLs won't work, as you've discovered.
   Without
that valid defaultCoreName (or if you wanted info from a different
core), you'd need to add a core name to the URL for them to work.
   
The third one, which works for you, is a global handler for
  manipulating
cores, so naturally it doesn't need a core name to function.  The
 URL
path for this handler is defined by solr.xml.
   
Thanks,
Shawn
   
   
  
 
 
 



Re: Measuring SOLR performance

2013-08-06 Thread Dmitry Kan
Hi Roman,

With fresh checkout, the reported admin_endpoint is:
http://localhost:8983/solr/admin. This url redirects to
http://localhost:8983/solr/#/ . I'm using solr 4.3.1. Is your tool
supporting this version?

Of three URLs you asked for, only the 3rd one gave response:

{responseHeader:{status:0,QTime:5},defaultCoreName:null,initFailures:{},status:{metadata:{name:metadata,isDefaultCore:false,instanceDir:multicore/metadata/,dataDir:/home/dmitry/projects/SOLR/solr4/solr-4.3.1/example/multicore/metadata/data/,config:solrconfig.xml,schema:schema.xml,startTime:2013-08-06T12:10:43.438Z,uptime:260200,index:{numDocs:0,maxDoc:0,deletedDocs:0,version:1,segmentCount:0,current:true,hasDeletions:false,directory:org.apache.lucene.store.NRTCachingDirectory:NRTCachingDirectory(org.apache.lucene.store.MMapDirectory@/home/dmitry/projects/SOLR/solr4/solr-4.3.1/example/multicore/metadata/data/index
lockFactory=org.apache.lucene.store.NativeFSLockFactory@2d23b007;
maxCacheMB=48.0
maxMergeSizeMB=4.0),userData:{},sizeInBytes:65,size:65
bytes}},statements:{name:statements,isDefaultCore:false,instanceDir:multicore/statements/,dataDir:/home/dmitry/projects/SOLR/solr4/solr-4.3.1/example/multicore/statements/data/,config:solrconfig.xml,schema:schema.xml,startTime:2013-08-06T12:10:43.468Z,uptime:260172,index:{numDocs:2588869,maxDoc:2588869,deletedDocs:0,version:45,segmentCount:1,current:true,hasDeletions:false,directory:org.apache.lucene.store.NRTCachingDirectory:NRTCachingDirectory(org.apache.lucene.store.MMapDirectory@/home/dmitry/projects/SOLR/solr4/solr-4.3.1/example/multicore/statements/data/index
lockFactory=org.apache.lucene.store.NativeFSLockFactory@1f9b2b8;
maxCacheMB=48.0
maxMergeSizeMB=4.0),userData:{commitTimeMSec:1375447171849},lastModified:2013-08-02T12:39:31.849Z,sizeInBytes:597238578,size:569.57
MB


The rest report 404.

Dmitry


On Mon, Aug 5, 2013 at 8:38 PM, Roman Chyla roman.ch...@gmail.com wrote:

 Hi Dmitry,
 So I think the admin pages are different on your version of solr, what do
 you see when you request... ?

 http://localhost:8983/solr/admin/system?wt=json
 http://localhost:8983/solr/admin/mbeans?wt=json
 http://localhost:8983/solr/admin/cores?wt=json

 If your core -t was '/solr/statements', the script should assume admin is
 at: /solr/admin (the script checks for /admin/system/cores - so that url
 already exists), thus I am guessing /admin/system is not there.

 if you can, please check out the latest version - the script will print its
 environment, the 'admin_endpoint' is the one that we are interested in.
 I'll update the docs, btw. you may want to use '-e statements' to indicate
 what core_name you want to harvest details for

 thanks,

 roman







 On Mon, Aug 5, 2013 at 6:22 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  No problem. Still trying to launch the thing..
 
  The query with the added -t parameter generated an error:
 
  1. python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
  ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60
 -R
  test -t /solr/statements   [passed relative path to -q param]
 
  (as you can see I added -t param and made -q param simpler)
 
  Traceback (most recent call last):
File solrjmeter.py, line 1425, in module
  main(sys.argv)
File solrjmeter.py, line 1379, in main
  before_test = harvest_details_about_montysolr(options)
File solrjmeter.py, line 505, in harvest_details_about_montysolr
  system_data = req('%s/system' % options.admin_endpoint)
File solrjmeter.py, line 113, in req
  raise r
  simplejson.decoder.JSONDecodeError: No JSON object could be decoded:
 line 1
  column 0 (char 0)
 
 
  The README.md on the github is somehow outdated, it suggests using -q
  ./demo/queries/demo.queries, but there is no such path in the fresh
  checkout.
 
  Nice to have the -t param.
 
  Dmitry
 
 
  On Sat, Aug 3, 2013 at 5:01 AM, Roman Chyla roman.ch...@gmail.com
 wrote:
 
   Hi Dmitry,
  
   Thanks, It was a toothing problem, fixed now, please try the fresh
  checkout
   AND add the following to your arguments: -t /solr/core1
  
   that sets the path under which solr should be contacted, the handler is
  set
   in the jmeter configuration, so if you were using different query
  handlers
   than /select, it should be edited there (SolrQueryTest.jmx)
  
   I hope it works this time, the script is trying to guess the admin page
   (when one cannot be contacted - but if the new solr introduces some new
   paths, i may be wrong - i am short on time to investigate deeper)
  
  
   roman
  
  
   On Fri, Aug 2, 2013 at 7:27 AM, Dmitry Kan solrexp...@gmail.com
 wrote:
  
Hi Roman,
   
Sure:
   
python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
/home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries -s
   localhost
-p 8983 -a --durationInSecs 60 -R test
   
This is vanilla install (git clone) except for one change that I had
 to
   do
related to solr cores:
   
 

Re: Measuring SOLR performance

2013-08-06 Thread Shawn Heisey
On 8/6/2013 6:17 AM, Dmitry Kan wrote:
 Of three URLs you asked for, only the 3rd one gave response:
snip
 The rest report 404.
 
 On Mon, Aug 5, 2013 at 8:38 PM, Roman Chyla roman.ch...@gmail.com wrote:
 
 Hi Dmitry,
 So I think the admin pages are different on your version of solr, what do
 you see when you request... ?

 http://localhost:8983/solr/admin/system?wt=json
 http://localhost:8983/solr/admin/mbeans?wt=json
 http://localhost:8983/solr/admin/cores?wt=json

Unless you have a valid defaultCoreName set in your (old-style)
solr.xml, the first two URLs won't work, as you've discovered.  Without
that valid defaultCoreName (or if you wanted info from a different
core), you'd need to add a core name to the URL for them to work.

The third one, which works for you, is a global handler for manipulating
cores, so naturally it doesn't need a core name to function.  The URL
path for this handler is defined by solr.xml.

Thanks,
Shawn



Re: Measuring SOLR performance

2013-08-06 Thread Dmitry Kan
Hi,

Thanks for the clarification, Shawn!

So with this in mind, the following work:

http://localhost:8983/solr/statements/admin/system?wt=json
http://localhost:8983/solr/statements/admin/mbeans?wt=json

not copying their output to save space.

Roman:

is this something that should be set via -t parameter as well?

Dmitry



On Tue, Aug 6, 2013 at 4:34 PM, Shawn Heisey s...@elyograg.org wrote:

 On 8/6/2013 6:17 AM, Dmitry Kan wrote:
  Of three URLs you asked for, only the 3rd one gave response:
 snip
  The rest report 404.
 
  On Mon, Aug 5, 2013 at 8:38 PM, Roman Chyla roman.ch...@gmail.com
 wrote:
 
  Hi Dmitry,
  So I think the admin pages are different on your version of solr, what
 do
  you see when you request... ?
 
  http://localhost:8983/solr/admin/system?wt=json
  http://localhost:8983/solr/admin/mbeans?wt=json
  http://localhost:8983/solr/admin/cores?wt=json

 Unless you have a valid defaultCoreName set in your (old-style)
 solr.xml, the first two URLs won't work, as you've discovered.  Without
 that valid defaultCoreName (or if you wanted info from a different
 core), you'd need to add a core name to the URL for them to work.

 The third one, which works for you, is a global handler for manipulating
 cores, so naturally it doesn't need a core name to function.  The URL
 path for this handler is defined by solr.xml.

 Thanks,
 Shawn




Re: Measuring SOLR performance

2013-08-06 Thread Roman Chyla
Hi Dmitry,

I've modified the solrjmeter to retrieve data from under the core (the -t
parameter) and the rest from the /solr/admin - I could test it only against
4.0, but it is there the same as 4.3 - it seems...so you can try the fresh
checkout

my test was: python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -t
/solr/collection1 -R foo -q ./queries/demo/* -p 9002 -s adsate

Thanks!

roman


On Tue, Aug 6, 2013 at 9:46 AM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi,

 Thanks for the clarification, Shawn!

 So with this in mind, the following work:

 http://localhost:8983/solr/statements/admin/system?wt=json
 http://localhost:8983/solr/statements/admin/mbeans?wt=json

 not copying their output to save space.

 Roman:

 is this something that should be set via -t parameter as well?

 Dmitry



 On Tue, Aug 6, 2013 at 4:34 PM, Shawn Heisey s...@elyograg.org wrote:

  On 8/6/2013 6:17 AM, Dmitry Kan wrote:
   Of three URLs you asked for, only the 3rd one gave response:
  snip
   The rest report 404.
  
   On Mon, Aug 5, 2013 at 8:38 PM, Roman Chyla roman.ch...@gmail.com
  wrote:
  
   Hi Dmitry,
   So I think the admin pages are different on your version of solr, what
  do
   you see when you request... ?
  
   http://localhost:8983/solr/admin/system?wt=json
   http://localhost:8983/solr/admin/mbeans?wt=json
   http://localhost:8983/solr/admin/cores?wt=json
 
  Unless you have a valid defaultCoreName set in your (old-style)
  solr.xml, the first two URLs won't work, as you've discovered.  Without
  that valid defaultCoreName (or if you wanted info from a different
  core), you'd need to add a core name to the URL for them to work.
 
  The third one, which works for you, is a global handler for manipulating
  cores, so naturally it doesn't need a core name to function.  The URL
  path for this handler is defined by solr.xml.
 
  Thanks,
  Shawn
 
 



Re: Measuring SOLR performance

2013-08-05 Thread Dmitry Kan
Hi Roman,

No problem. Still trying to launch the thing..

The query with the added -t parameter generated an error:

1. python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60 -R
test -t /solr/statements   [passed relative path to -q param]

(as you can see I added -t param and made -q param simpler)

Traceback (most recent call last):
  File solrjmeter.py, line 1425, in module
main(sys.argv)
  File solrjmeter.py, line 1379, in main
before_test = harvest_details_about_montysolr(options)
  File solrjmeter.py, line 505, in harvest_details_about_montysolr
system_data = req('%s/system' % options.admin_endpoint)
  File solrjmeter.py, line 113, in req
raise r
simplejson.decoder.JSONDecodeError: No JSON object could be decoded: line 1
column 0 (char 0)


The README.md on the github is somehow outdated, it suggests using -q
./demo/queries/demo.queries, but there is no such path in the fresh
checkout.

Nice to have the -t param.

Dmitry


On Sat, Aug 3, 2013 at 5:01 AM, Roman Chyla roman.ch...@gmail.com wrote:

 Hi Dmitry,

 Thanks, It was a toothing problem, fixed now, please try the fresh checkout
 AND add the following to your arguments: -t /solr/core1

 that sets the path under which solr should be contacted, the handler is set
 in the jmeter configuration, so if you were using different query handlers
 than /select, it should be edited there (SolrQueryTest.jmx)

 I hope it works this time, the script is trying to guess the admin page
 (when one cannot be contacted - but if the new solr introduces some new
 paths, i may be wrong - i am short on time to investigate deeper)


 roman


 On Fri, Aug 2, 2013 at 7:27 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  Sure:
 
  python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
  /home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries -s
 localhost
  -p 8983 -a --durationInSecs 60 -R test
 
  This is vanilla install (git clone) except for one change that I had to
 do
  related to solr cores:
 
   git diff
  diff --git a/solrjmeter.py b/solrjmeter.py
  index d18145a..7a0d2af 100644
  --- a/solrjmeter.py
  +++ b/solrjmeter.py
  @@ -129,7 +129,7 @@ def check_options(options, args):
   if not options.serverName and not options.serverPort:
   error(You must specify both server and port)
 
  -options.query_endpoint = 'http://%s:%s/solr' % (options.serverName,
  options.serverPort)
  +options.query_endpoint = 'http://%s:%s/solr/core1' %
  (options.serverName, options.serverPort)
 
   jmx_options = []
   for k, v in options.__dict__.items():
 
 
 
  Dmitry
 
 
  On Thu, Aug 1, 2013 at 6:41 PM, Roman Chyla roman.ch...@gmail.com
 wrote:
 
   Dmitry,
   Can you post the entire invocation line?
   roman
  
  
   On Thu, Aug 1, 2013 at 7:46 AM, Dmitry Kan solrexp...@gmail.com
 wrote:
  
Hi Roman,
   
When I try to run with -q
/home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries
   
here what is reported:
Traceback (most recent call last):
  File solrjmeter.py, line 1390, in module
main(sys.argv)
  File solrjmeter.py, line 1309, in main
tests = find_tests(options)
  File solrjmeter.py, line 461, in find_tests
with changed_dir(pattern):
  File /usr/lib/python2.7/contextlib.py, line 17, in __enter__
return self.gen.next()
  File solrjmeter.py, line 229, in changed_dir
os.chdir(new)
OSError: [Errno 20] Not a directory:
'/home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries'
   
Best,
   
Dmitry
   
   
   
On Wed, Jul 31, 2013 at 7:21 PM, Roman Chyla roman.ch...@gmail.com
wrote:
   
 Hi Dmitry,
 probably mistake in the readme, try calling it with -q
 /home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries

 as for the base_url, i was testing it on solr4.0, where it tries
contactin
 /solr/admin/system - is it different for 4.3? I guess I should make
  it
 configurable (it already is, the endpoint is set at the
   check_options())

 thanks

 roman


 On Wed, Jul 31, 2013 at 10:01 AM, Dmitry Kan solrexp...@gmail.com
 
wrote:

  Ok, got the error fixed by modifying the base solr ulr in
   solrjmeter.py
  (added core name after /solr part).
  Next error is:
 
  WARNING: no test name(s) supplied nor found in:
 
 ['/home/dmitry/projects/lab/solrjmeter/demo/queries/demo.queries']
 
  It is a 'slow start with new tool' symptom I guess.. :)
 
 
  On Wed, Jul 31, 2013 at 4:39 PM, Dmitry Kan 
 solrexp...@gmail.com
 wrote:
 
  Hi Roman,
 
  What  version and config of SOLR does the tool expect?
 
  Tried to run, but got:
 
  **ERROR**
File solrjmeter.py, line 1390, in module
  main(sys.argv)
File solrjmeter.py, line 1296, in main
  check_prerequisities(options)

Re: Measuring SOLR performance

2013-08-05 Thread Roman Chyla
Hi Dmitry,
So I think the admin pages are different on your version of solr, what do
you see when you request... ?

http://localhost:8983/solr/admin/system?wt=json
http://localhost:8983/solr/admin/mbeans?wt=json
http://localhost:8983/solr/admin/cores?wt=json

If your core -t was '/solr/statements', the script should assume admin is
at: /solr/admin (the script checks for /admin/system/cores - so that url
already exists), thus I am guessing /admin/system is not there.

if you can, please check out the latest version - the script will print its
environment, the 'admin_endpoint' is the one that we are interested in.
I'll update the docs, btw. you may want to use '-e statements' to indicate
what core_name you want to harvest details for

thanks,

roman







On Mon, Aug 5, 2013 at 6:22 AM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 No problem. Still trying to launch the thing..

 The query with the added -t parameter generated an error:

 1. python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
 ./queries/demo/demo.queries -s localhost -p 8983 -a --durationInSecs 60 -R
 test -t /solr/statements   [passed relative path to -q param]

 (as you can see I added -t param and made -q param simpler)

 Traceback (most recent call last):
   File solrjmeter.py, line 1425, in module
 main(sys.argv)
   File solrjmeter.py, line 1379, in main
 before_test = harvest_details_about_montysolr(options)
   File solrjmeter.py, line 505, in harvest_details_about_montysolr
 system_data = req('%s/system' % options.admin_endpoint)
   File solrjmeter.py, line 113, in req
 raise r
 simplejson.decoder.JSONDecodeError: No JSON object could be decoded: line 1
 column 0 (char 0)


 The README.md on the github is somehow outdated, it suggests using -q
 ./demo/queries/demo.queries, but there is no such path in the fresh
 checkout.

 Nice to have the -t param.

 Dmitry


 On Sat, Aug 3, 2013 at 5:01 AM, Roman Chyla roman.ch...@gmail.com wrote:

  Hi Dmitry,
 
  Thanks, It was a toothing problem, fixed now, please try the fresh
 checkout
  AND add the following to your arguments: -t /solr/core1
 
  that sets the path under which solr should be contacted, the handler is
 set
  in the jmeter configuration, so if you were using different query
 handlers
  than /select, it should be edited there (SolrQueryTest.jmx)
 
  I hope it works this time, the script is trying to guess the admin page
  (when one cannot be contacted - but if the new solr introduces some new
  paths, i may be wrong - i am short on time to investigate deeper)
 
 
  roman
 
 
  On Fri, Aug 2, 2013 at 7:27 AM, Dmitry Kan solrexp...@gmail.com wrote:
 
   Hi Roman,
  
   Sure:
  
   python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
   /home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries -s
  localhost
   -p 8983 -a --durationInSecs 60 -R test
  
   This is vanilla install (git clone) except for one change that I had to
  do
   related to solr cores:
  
git diff
   diff --git a/solrjmeter.py b/solrjmeter.py
   index d18145a..7a0d2af 100644
   --- a/solrjmeter.py
   +++ b/solrjmeter.py
   @@ -129,7 +129,7 @@ def check_options(options, args):
if not options.serverName and not options.serverPort:
error(You must specify both server and port)
  
   -options.query_endpoint = 'http://%s:%s/solr' %
 (options.serverName,
   options.serverPort)
   +options.query_endpoint = 'http://%s:%s/solr/core1' %
   (options.serverName, options.serverPort)
  
jmx_options = []
for k, v in options.__dict__.items():
  
  
  
   Dmitry
  
  
   On Thu, Aug 1, 2013 at 6:41 PM, Roman Chyla roman.ch...@gmail.com
  wrote:
  
Dmitry,
Can you post the entire invocation line?
roman
   
   
On Thu, Aug 1, 2013 at 7:46 AM, Dmitry Kan solrexp...@gmail.com
  wrote:
   
 Hi Roman,

 When I try to run with -q
 /home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries

 here what is reported:
 Traceback (most recent call last):
   File solrjmeter.py, line 1390, in module
 main(sys.argv)
   File solrjmeter.py, line 1309, in main
 tests = find_tests(options)
   File solrjmeter.py, line 461, in find_tests
 with changed_dir(pattern):
   File /usr/lib/python2.7/contextlib.py, line 17, in __enter__
 return self.gen.next()
   File solrjmeter.py, line 229, in changed_dir
 os.chdir(new)
 OSError: [Errno 20] Not a directory:
 '/home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries'

 Best,

 Dmitry



 On Wed, Jul 31, 2013 at 7:21 PM, Roman Chyla 
 roman.ch...@gmail.com
 wrote:

  Hi Dmitry,
  probably mistake in the readme, try calling it with -q
  /home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries
 
  as for the base_url, i was testing it on solr4.0, where it tries
 contactin
  /solr/admin/system - is it different for 4.3? I guess I should
 

Re: Measuring SOLR performance

2013-08-02 Thread Erick Erickson
Roman:

Thanks for putting this together. I confess I haven't dug in in detail yet,
but having the numbers available is a nice resource.

Best
Erick


On Thu, Aug 1, 2013 at 6:23 PM, Roman Chyla roman.ch...@gmail.com wrote:

 On Thu, Aug 1, 2013 at 6:11 PM, Shawn Heisey s...@elyograg.org wrote:

  On 8/1/2013 2:08 PM, Roman Chyla wrote:
 
  Hi, here is a short post describing the results of the yesterday run
 with
  added parameters as per Shawn's recommendation, have fun getting
 confused
  ;)
 
 
 http://29min.wordpress.com/**2013/08/01/measuring-solr-**performance-ii/
 http://29min.wordpress.com/2013/08/01/measuring-solr-performance-ii/
 
 
  I am having a very difficult time with the graphs.  I have no idea what
  I'm looking at.  The graphs are probably self-explanatory to you, because
  you created them and you've been staring at them for hours. There are
 both
  lines and shaded areas, and I can't tell what they mean.
 

 I know :) but I am rather investing time in preparing a better test,
 because as you said, worst case is the aim - and I would like to trigger
 the worst case (btw, all these remaining GC configs have comparable max
 execution time of less than 1.5s - that is the worst case in their case so
 far and with so a few measurements, there is no meaningful analysis of
 significance between them). But when I look at the heights of the areas, in
 the charts, the higher means worse - so the yellow seems to be the worst
 (g1-custom), your preferred configuration (i think it was cms-x1, green)
 seems better than g1-custom. But 'SEEMS' is an important qualifier here


 
  Tables with numbers, if they have a good legend, would be awesome.
 

 tables are there, just hidden, you would have to run it - the code is there
 as well...


 
  One thing I'd like to see, and when I have some time of my own I will do
  some comprehensive long-term comparisons on production systems, is to see
  what adding or changing *one* GC tuning parameter at a time does, so I
 can
  find the ideal settings and have some idea of which settings make the
 most
  difference.
 
  My concern with garbage collection tuning has been mostly worst-case
  scenario pauses.  I certainly do want averages to come down, but it's
  really the worst-case that concerns me.
 
  Let's say that one of my typical queries takes 100 milliseconds on
 average
  with my GC config.  Somebody comes up with another GC config that makes
 the
  same query take 25 milliseconds or less on average.  If that config also
  results in rare stop-the-world garbage collections that take 5 full
  seconds, I won't be using it.  I'd rather deal with the slower average
  queries than the GC pause problems.
 

 exactly


 
  I had to let my production systems run for days with jHiccup before I
  really noticed that I had a GC pause problem.  I've since learned that
 if I
  look at GC logs with GCLogViewer, I can get much the same information.
 

 well, and instead of days, I think it is possible to trigger the worst case
 scenario in a matter of hours (but that is my conjecture, to be proven
 wrong... ;))

 roman


 
  Thanks,
  Shawn
 
 



Re: Measuring SOLR performance

2013-08-02 Thread Dmitry Kan
Hi Roman,

Sure:

python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
/home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries -s localhost
-p 8983 -a --durationInSecs 60 -R test

This is vanilla install (git clone) except for one change that I had to do
related to solr cores:

 git diff
diff --git a/solrjmeter.py b/solrjmeter.py
index d18145a..7a0d2af 100644
--- a/solrjmeter.py
+++ b/solrjmeter.py
@@ -129,7 +129,7 @@ def check_options(options, args):
 if not options.serverName and not options.serverPort:
 error(You must specify both server and port)

-options.query_endpoint = 'http://%s:%s/solr' % (options.serverName,
options.serverPort)
+options.query_endpoint = 'http://%s:%s/solr/core1' %
(options.serverName, options.serverPort)

 jmx_options = []
 for k, v in options.__dict__.items():



Dmitry


On Thu, Aug 1, 2013 at 6:41 PM, Roman Chyla roman.ch...@gmail.com wrote:

 Dmitry,
 Can you post the entire invocation line?
 roman


 On Thu, Aug 1, 2013 at 7:46 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Hi Roman,
 
  When I try to run with -q
  /home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries
 
  here what is reported:
  Traceback (most recent call last):
File solrjmeter.py, line 1390, in module
  main(sys.argv)
File solrjmeter.py, line 1309, in main
  tests = find_tests(options)
File solrjmeter.py, line 461, in find_tests
  with changed_dir(pattern):
File /usr/lib/python2.7/contextlib.py, line 17, in __enter__
  return self.gen.next()
File solrjmeter.py, line 229, in changed_dir
  os.chdir(new)
  OSError: [Errno 20] Not a directory:
  '/home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries'
 
  Best,
 
  Dmitry
 
 
 
  On Wed, Jul 31, 2013 at 7:21 PM, Roman Chyla roman.ch...@gmail.com
  wrote:
 
   Hi Dmitry,
   probably mistake in the readme, try calling it with -q
   /home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries
  
   as for the base_url, i was testing it on solr4.0, where it tries
  contactin
   /solr/admin/system - is it different for 4.3? I guess I should make it
   configurable (it already is, the endpoint is set at the
 check_options())
  
   thanks
  
   roman
  
  
   On Wed, Jul 31, 2013 at 10:01 AM, Dmitry Kan solrexp...@gmail.com
  wrote:
  
Ok, got the error fixed by modifying the base solr ulr in
 solrjmeter.py
(added core name after /solr part).
Next error is:
   
WARNING: no test name(s) supplied nor found in:
['/home/dmitry/projects/lab/solrjmeter/demo/queries/demo.queries']
   
It is a 'slow start with new tool' symptom I guess.. :)
   
   
On Wed, Jul 31, 2013 at 4:39 PM, Dmitry Kan solrexp...@gmail.com
   wrote:
   
Hi Roman,
   
What  version and config of SOLR does the tool expect?
   
Tried to run, but got:
   
**ERROR**
  File solrjmeter.py, line 1390, in module
main(sys.argv)
  File solrjmeter.py, line 1296, in main
check_prerequisities(options)
  File solrjmeter.py, line 351, in check_prerequisities
error('Cannot contact: %s' % options.query_endpoint)
  File solrjmeter.py, line 66, in error
traceback.print_stack()
Cannot contact: http://localhost:8983/solr
   
   
complains about URL, clicking which leads properly to the admin
  page...
solr 4.3.1, 2 cores shard
   
Dmitry
   
   
On Wed, Jul 31, 2013 at 3:59 AM, Roman Chyla roman.ch...@gmail.com
   wrote:
   
Hello,
   
I have been wanting some tools for measuring performance of SOLR,
   similar
to Mike McCandles' lucene benchmark.
   
so yet another monitor was born, is described here:
   
  
 http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/
   
I tested it on the problem of garbage collectors (see the blogs for
details) and so far I can't conclude whether highly customized G1
 is
better
than highly customized CMS, but I think interesting details can be
  seen
there.
   
Hope this helps someone, and of course, feel free to improve the
 tool
   and
share!
   
roman
   
   
   
   
  
 



Re: Measuring SOLR performance

2013-08-02 Thread Roman Chyla
Hi Dmitry,

Thanks, It was a toothing problem, fixed now, please try the fresh checkout
AND add the following to your arguments: -t /solr/core1

that sets the path under which solr should be contacted, the handler is set
in the jmeter configuration, so if you were using different query handlers
than /select, it should be edited there (SolrQueryTest.jmx)

I hope it works this time, the script is trying to guess the admin page
(when one cannot be contacted - but if the new solr introduces some new
paths, i may be wrong - i am short on time to investigate deeper)


roman


On Fri, Aug 2, 2013 at 7:27 AM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 Sure:

 python solrjmeter.py -a -x ./jmx/SolrQueryTest.jmx -q
 /home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries -s localhost
 -p 8983 -a --durationInSecs 60 -R test

 This is vanilla install (git clone) except for one change that I had to do
 related to solr cores:

  git diff
 diff --git a/solrjmeter.py b/solrjmeter.py
 index d18145a..7a0d2af 100644
 --- a/solrjmeter.py
 +++ b/solrjmeter.py
 @@ -129,7 +129,7 @@ def check_options(options, args):
  if not options.serverName and not options.serverPort:
  error(You must specify both server and port)

 -options.query_endpoint = 'http://%s:%s/solr' % (options.serverName,
 options.serverPort)
 +options.query_endpoint = 'http://%s:%s/solr/core1' %
 (options.serverName, options.serverPort)

  jmx_options = []
  for k, v in options.__dict__.items():



 Dmitry


 On Thu, Aug 1, 2013 at 6:41 PM, Roman Chyla roman.ch...@gmail.com wrote:

  Dmitry,
  Can you post the entire invocation line?
  roman
 
 
  On Thu, Aug 1, 2013 at 7:46 AM, Dmitry Kan solrexp...@gmail.com wrote:
 
   Hi Roman,
  
   When I try to run with -q
   /home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries
  
   here what is reported:
   Traceback (most recent call last):
 File solrjmeter.py, line 1390, in module
   main(sys.argv)
 File solrjmeter.py, line 1309, in main
   tests = find_tests(options)
 File solrjmeter.py, line 461, in find_tests
   with changed_dir(pattern):
 File /usr/lib/python2.7/contextlib.py, line 17, in __enter__
   return self.gen.next()
 File solrjmeter.py, line 229, in changed_dir
   os.chdir(new)
   OSError: [Errno 20] Not a directory:
   '/home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries'
  
   Best,
  
   Dmitry
  
  
  
   On Wed, Jul 31, 2013 at 7:21 PM, Roman Chyla roman.ch...@gmail.com
   wrote:
  
Hi Dmitry,
probably mistake in the readme, try calling it with -q
/home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries
   
as for the base_url, i was testing it on solr4.0, where it tries
   contactin
/solr/admin/system - is it different for 4.3? I guess I should make
 it
configurable (it already is, the endpoint is set at the
  check_options())
   
thanks
   
roman
   
   
On Wed, Jul 31, 2013 at 10:01 AM, Dmitry Kan solrexp...@gmail.com
   wrote:
   
 Ok, got the error fixed by modifying the base solr ulr in
  solrjmeter.py
 (added core name after /solr part).
 Next error is:

 WARNING: no test name(s) supplied nor found in:
 ['/home/dmitry/projects/lab/solrjmeter/demo/queries/demo.queries']

 It is a 'slow start with new tool' symptom I guess.. :)


 On Wed, Jul 31, 2013 at 4:39 PM, Dmitry Kan solrexp...@gmail.com
wrote:

 Hi Roman,

 What  version and config of SOLR does the tool expect?

 Tried to run, but got:

 **ERROR**
   File solrjmeter.py, line 1390, in module
 main(sys.argv)
   File solrjmeter.py, line 1296, in main
 check_prerequisities(options)
   File solrjmeter.py, line 351, in check_prerequisities
 error('Cannot contact: %s' % options.query_endpoint)
   File solrjmeter.py, line 66, in error
 traceback.print_stack()
 Cannot contact: http://localhost:8983/solr


 complains about URL, clicking which leads properly to the admin
   page...
 solr 4.3.1, 2 cores shard

 Dmitry


 On Wed, Jul 31, 2013 at 3:59 AM, Roman Chyla 
 roman.ch...@gmail.com
wrote:

 Hello,

 I have been wanting some tools for measuring performance of SOLR,
similar
 to Mike McCandles' lucene benchmark.

 so yet another monitor was born, is described here:

   
  http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/

 I tested it on the problem of garbage collectors (see the blogs
 for
 details) and so far I can't conclude whether highly customized G1
  is
 better
 than highly customized CMS, but I think interesting details can
 be
   seen
 there.

 Hope this helps someone, and of course, feel free to improve the
  tool
and
 share!

 roman




   
  
 



Re: Measuring SOLR performance

2013-08-01 Thread Bernd Fehling
Yes, UseNuma is only for Parallel Scavenger garbage collector and only
for Solaris 9 and higher and Linux kernel 2.6.19 and glibc 2.6.1.
And it performs with 64-bit better than 32-bit.
So no effects for G1.

With standard applications CMS is very slightly better than G1 but
when it comes to huge heaps with high fragmentation G1 is better than CMS.
The documentation says, one benefit of G1 is if the application has
more than 50% of the Java heap occupied with live data.
So first step is to size the heap that you have about 3/4 of the heap
occupied with live data and then go on comparing CMS against G1.
Otherwise G1 and CMS are about same or as I said CMS might be slightly better.

Also, either turn swap off or also record vmstat. This should make sure
that during a garbage collection no other system activity, like moving
JVM heap to swap in background, is distorting your measurements.


Bernd


Am 31.07.2013 05:01, schrieb Shawn Heisey:
 On 7/30/2013 6:59 PM, Roman Chyla wrote:
 I have been wanting some tools for measuring performance of SOLR, similar
 to Mike McCandles' lucene benchmark.

 so yet another monitor was born, is described here:
 http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/

 I tested it on the problem of garbage collectors (see the blogs for
 details) and so far I can't conclude whether highly customized G1 is better
 than highly customized CMS, but I think interesting details can be seen
 there.

 Hope this helps someone, and of course, feel free to improve the tool and
 share!
 
 I have a CMS config that's even more tuned than before, and it has made
 things MUCH better.  This new config is inspired by more info that I got
 on IRC:
 
 http://wiki.apache.org/solr/ShawnHeisey#GC_Tuning
 
 The G1 customizations in your blog post don't look like they are really
 G1-specific - they may be useful with CMS as well.  This statement also
 applies to some of the CMS parameters, so I would use those with G1 as
 well for any testing.
 
 UseNUMA looks interesting for machines that actually are NUMA.  All the
 information that I can find says it is only for the throughput
 (parallel) collector, so it's probably not doing anything for G1.
 
 The pause parameters you've got for G1 are targets only.  It will *try*
 to stick within those parameters, but if a collection requires more than
 50 milliseconds or has to happen more often than once a second, the
 collector will ignore what you have told it.
 
 Thanks,
 Shawn
 



Re: Measuring SOLR performance

2013-08-01 Thread Dmitry Kan
Hi Roman,

When I try to run with -q
/home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries

here what is reported:
Traceback (most recent call last):
  File solrjmeter.py, line 1390, in module
main(sys.argv)
  File solrjmeter.py, line 1309, in main
tests = find_tests(options)
  File solrjmeter.py, line 461, in find_tests
with changed_dir(pattern):
  File /usr/lib/python2.7/contextlib.py, line 17, in __enter__
return self.gen.next()
  File solrjmeter.py, line 229, in changed_dir
os.chdir(new)
OSError: [Errno 20] Not a directory:
'/home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries'

Best,

Dmitry



On Wed, Jul 31, 2013 at 7:21 PM, Roman Chyla roman.ch...@gmail.com wrote:

 Hi Dmitry,
 probably mistake in the readme, try calling it with -q
 /home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries

 as for the base_url, i was testing it on solr4.0, where it tries contactin
 /solr/admin/system - is it different for 4.3? I guess I should make it
 configurable (it already is, the endpoint is set at the check_options())

 thanks

 roman


 On Wed, Jul 31, 2013 at 10:01 AM, Dmitry Kan solrexp...@gmail.com wrote:

  Ok, got the error fixed by modifying the base solr ulr in solrjmeter.py
  (added core name after /solr part).
  Next error is:
 
  WARNING: no test name(s) supplied nor found in:
  ['/home/dmitry/projects/lab/solrjmeter/demo/queries/demo.queries']
 
  It is a 'slow start with new tool' symptom I guess.. :)
 
 
  On Wed, Jul 31, 2013 at 4:39 PM, Dmitry Kan solrexp...@gmail.com
 wrote:
 
  Hi Roman,
 
  What  version and config of SOLR does the tool expect?
 
  Tried to run, but got:
 
  **ERROR**
File solrjmeter.py, line 1390, in module
  main(sys.argv)
File solrjmeter.py, line 1296, in main
  check_prerequisities(options)
File solrjmeter.py, line 351, in check_prerequisities
  error('Cannot contact: %s' % options.query_endpoint)
File solrjmeter.py, line 66, in error
  traceback.print_stack()
  Cannot contact: http://localhost:8983/solr
 
 
  complains about URL, clicking which leads properly to the admin page...
  solr 4.3.1, 2 cores shard
 
  Dmitry
 
 
  On Wed, Jul 31, 2013 at 3:59 AM, Roman Chyla roman.ch...@gmail.com
 wrote:
 
  Hello,
 
  I have been wanting some tools for measuring performance of SOLR,
 similar
  to Mike McCandles' lucene benchmark.
 
  so yet another monitor was born, is described here:
 
 http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/
 
  I tested it on the problem of garbage collectors (see the blogs for
  details) and so far I can't conclude whether highly customized G1 is
  better
  than highly customized CMS, but I think interesting details can be seen
  there.
 
  Hope this helps someone, and of course, feel free to improve the tool
 and
  share!
 
  roman
 
 
 
 



Re: Measuring SOLR performance

2013-08-01 Thread Roman Chyla
Dmitry,
Can you post the entire invocation line?
roman


On Thu, Aug 1, 2013 at 7:46 AM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 When I try to run with -q
 /home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries

 here what is reported:
 Traceback (most recent call last):
   File solrjmeter.py, line 1390, in module
 main(sys.argv)
   File solrjmeter.py, line 1309, in main
 tests = find_tests(options)
   File solrjmeter.py, line 461, in find_tests
 with changed_dir(pattern):
   File /usr/lib/python2.7/contextlib.py, line 17, in __enter__
 return self.gen.next()
   File solrjmeter.py, line 229, in changed_dir
 os.chdir(new)
 OSError: [Errno 20] Not a directory:
 '/home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries'

 Best,

 Dmitry



 On Wed, Jul 31, 2013 at 7:21 PM, Roman Chyla roman.ch...@gmail.com
 wrote:

  Hi Dmitry,
  probably mistake in the readme, try calling it with -q
  /home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries
 
  as for the base_url, i was testing it on solr4.0, where it tries
 contactin
  /solr/admin/system - is it different for 4.3? I guess I should make it
  configurable (it already is, the endpoint is set at the check_options())
 
  thanks
 
  roman
 
 
  On Wed, Jul 31, 2013 at 10:01 AM, Dmitry Kan solrexp...@gmail.com
 wrote:
 
   Ok, got the error fixed by modifying the base solr ulr in solrjmeter.py
   (added core name after /solr part).
   Next error is:
  
   WARNING: no test name(s) supplied nor found in:
   ['/home/dmitry/projects/lab/solrjmeter/demo/queries/demo.queries']
  
   It is a 'slow start with new tool' symptom I guess.. :)
  
  
   On Wed, Jul 31, 2013 at 4:39 PM, Dmitry Kan solrexp...@gmail.com
  wrote:
  
   Hi Roman,
  
   What  version and config of SOLR does the tool expect?
  
   Tried to run, but got:
  
   **ERROR**
 File solrjmeter.py, line 1390, in module
   main(sys.argv)
 File solrjmeter.py, line 1296, in main
   check_prerequisities(options)
 File solrjmeter.py, line 351, in check_prerequisities
   error('Cannot contact: %s' % options.query_endpoint)
 File solrjmeter.py, line 66, in error
   traceback.print_stack()
   Cannot contact: http://localhost:8983/solr
  
  
   complains about URL, clicking which leads properly to the admin
 page...
   solr 4.3.1, 2 cores shard
  
   Dmitry
  
  
   On Wed, Jul 31, 2013 at 3:59 AM, Roman Chyla roman.ch...@gmail.com
  wrote:
  
   Hello,
  
   I have been wanting some tools for measuring performance of SOLR,
  similar
   to Mike McCandles' lucene benchmark.
  
   so yet another monitor was born, is described here:
  
  http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/
  
   I tested it on the problem of garbage collectors (see the blogs for
   details) and so far I can't conclude whether highly customized G1 is
   better
   than highly customized CMS, but I think interesting details can be
 seen
   there.
  
   Hope this helps someone, and of course, feel free to improve the tool
  and
   share!
  
   roman
  
  
  
  
 



Re: Measuring SOLR performance

2013-08-01 Thread Roman Chyla
Hi Bernd,



On Thu, Aug 1, 2013 at 4:07 AM, Bernd Fehling 
bernd.fehl...@uni-bielefeld.de wrote:

 Yes, UseNuma is only for Parallel Scavenger garbage collector and only
 for Solaris 9 and higher and Linux kernel 2.6.19 and glibc 2.6.1.
 And it performs with 64-bit better than 32-bit.
 So no effects for G1.

 With standard applications CMS is very slightly better than G1 but
 when it comes to huge heaps with high fragmentation G1 is better than CMS.
 The documentation says, one benefit of G1 is if the application has
 more than 50% of the Java heap occupied with live data.


Could you rephrase this bit please?  I don't understand it, but I think it
is important concern.


So first step is to size the heap that you have about 3/4 of the heap
 occupied with live data and then go on comparing CMS against G1.


Thanks,

  roman




 Otherwise G1 and CMS are about same or as I said CMS might be slightly
 better.

 Also, either turn swap off or also record vmstat. This should make sure
 that during a garbage collection no other system activity, like moving
 JVM heap to swap in background, is distorting your measurements.


 Bernd


 Am 31.07.2013 05:01, schrieb Shawn Heisey:
  On 7/30/2013 6:59 PM, Roman Chyla wrote:
  I have been wanting some tools for measuring performance of SOLR,
 similar
  to Mike McCandles' lucene benchmark.
 
  so yet another monitor was born, is described here:
  http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/
 
  I tested it on the problem of garbage collectors (see the blogs for
  details) and so far I can't conclude whether highly customized G1 is
 better
  than highly customized CMS, but I think interesting details can be seen
  there.
 
  Hope this helps someone, and of course, feel free to improve the tool
 and
  share!
 
  I have a CMS config that's even more tuned than before, and it has made
  things MUCH better.  This new config is inspired by more info that I got
  on IRC:
 
  http://wiki.apache.org/solr/ShawnHeisey#GC_Tuning
 
  The G1 customizations in your blog post don't look like they are really
  G1-specific - they may be useful with CMS as well.  This statement also
  applies to some of the CMS parameters, so I would use those with G1 as
  well for any testing.
 
  UseNUMA looks interesting for machines that actually are NUMA.  All the
  information that I can find says it is only for the throughput
  (parallel) collector, so it's probably not doing anything for G1.
 
  The pause parameters you've got for G1 are targets only.  It will *try*
  to stick within those parameters, but if a collection requires more than
  50 milliseconds or has to happen more often than once a second, the
  collector will ignore what you have told it.
 
  Thanks,
  Shawn
 




Re: Measuring SOLR performance

2013-08-01 Thread Roman Chyla
Hi, here is a short post describing the results of the yesterday run with
added parameters as per Shawn's recommendation, have fun getting confused ;)

http://29min.wordpress.com/2013/08/01/measuring-solr-performance-ii/

roman


On Wed, Jul 31, 2013 at 12:32 PM, Roman Chyla roman.ch...@gmail.com wrote:

 I'll try to run it with the new parameters and let you know how it goes.
 I've rechecked details for the G1 (default) garbage collector run and I can
 confirm that 2 out of 3 runs were showing high max response times, in some
 cases even 10secs, but the customized G1 never - so definitely the
 parameters had effect because the max time for the customized G1 never went
 higher than 1.5secs (and that happend for 2 query classes only). Both the
 cms-custom and G1-custom are similar, the G1 seems to have higher values in
 the max fields, but that may be random. So, yes, now I am sure what to
 think of default G1 as 'bad', and that these G1 parameters, even if they
 don't seem G1 specific, have real effect.
 Thanks,

 roman


 On Tue, Jul 30, 2013 at 11:01 PM, Shawn Heisey s...@elyograg.org wrote:

 On 7/30/2013 6:59 PM, Roman Chyla wrote:
  I have been wanting some tools for measuring performance of SOLR,
 similar
  to Mike McCandles' lucene benchmark.
 
  so yet another monitor was born, is described here:
  http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/
 
  I tested it on the problem of garbage collectors (see the blogs for
  details) and so far I can't conclude whether highly customized G1 is
 better
  than highly customized CMS, but I think interesting details can be seen
  there.
 
  Hope this helps someone, and of course, feel free to improve the tool
 and
  share!

 I have a CMS config that's even more tuned than before, and it has made
 things MUCH better.  This new config is inspired by more info that I got
 on IRC:

 http://wiki.apache.org/solr/ShawnHeisey#GC_Tuning

 The G1 customizations in your blog post don't look like they are really
 G1-specific - they may be useful with CMS as well.  This statement also
 applies to some of the CMS parameters, so I would use those with G1 as
 well for any testing.

 UseNUMA looks interesting for machines that actually are NUMA.  All the
 information that I can find says it is only for the throughput
 (parallel) collector, so it's probably not doing anything for G1.

 The pause parameters you've got for G1 are targets only.  It will *try*
 to stick within those parameters, but if a collection requires more than
 50 milliseconds or has to happen more often than once a second, the
 collector will ignore what you have told it.

 Thanks,
 Shawn





Re: Measuring SOLR performance

2013-08-01 Thread Shawn Heisey

On 8/1/2013 2:08 PM, Roman Chyla wrote:

Hi, here is a short post describing the results of the yesterday run with
added parameters as per Shawn's recommendation, have fun getting confused ;)

http://29min.wordpress.com/2013/08/01/measuring-solr-performance-ii/


I am having a very difficult time with the graphs.  I have no idea what 
I'm looking at.  The graphs are probably self-explanatory to you, 
because you created them and you've been staring at them for hours. 
There are both lines and shaded areas, and I can't tell what they mean.


Tables with numbers, if they have a good legend, would be awesome.

One thing I'd like to see, and when I have some time of my own I will do 
some comprehensive long-term comparisons on production systems, is to 
see what adding or changing *one* GC tuning parameter at a time does, so 
I can find the ideal settings and have some idea of which settings make 
the most difference.


My concern with garbage collection tuning has been mostly worst-case 
scenario pauses.  I certainly do want averages to come down, but it's 
really the worst-case that concerns me.


Let's say that one of my typical queries takes 100 milliseconds on 
average with my GC config.  Somebody comes up with another GC config 
that makes the same query take 25 milliseconds or less on average.  If 
that config also results in rare stop-the-world garbage collections that 
take 5 full seconds, I won't be using it.  I'd rather deal with the 
slower average queries than the GC pause problems.


I had to let my production systems run for days with jHiccup before I 
really noticed that I had a GC pause problem.  I've since learned that 
if I look at GC logs with GCLogViewer, I can get much the same information.


Thanks,
Shawn



Re: Measuring SOLR performance

2013-08-01 Thread Roman Chyla
On Thu, Aug 1, 2013 at 6:11 PM, Shawn Heisey s...@elyograg.org wrote:

 On 8/1/2013 2:08 PM, Roman Chyla wrote:

 Hi, here is a short post describing the results of the yesterday run with
 added parameters as per Shawn's recommendation, have fun getting confused
 ;)

 http://29min.wordpress.com/**2013/08/01/measuring-solr-**performance-ii/http://29min.wordpress.com/2013/08/01/measuring-solr-performance-ii/


 I am having a very difficult time with the graphs.  I have no idea what
 I'm looking at.  The graphs are probably self-explanatory to you, because
 you created them and you've been staring at them for hours. There are both
 lines and shaded areas, and I can't tell what they mean.


I know :) but I am rather investing time in preparing a better test,
because as you said, worst case is the aim - and I would like to trigger
the worst case (btw, all these remaining GC configs have comparable max
execution time of less than 1.5s - that is the worst case in their case so
far and with so a few measurements, there is no meaningful analysis of
significance between them). But when I look at the heights of the areas, in
the charts, the higher means worse - so the yellow seems to be the worst
(g1-custom), your preferred configuration (i think it was cms-x1, green)
seems better than g1-custom. But 'SEEMS' is an important qualifier here



 Tables with numbers, if they have a good legend, would be awesome.


tables are there, just hidden, you would have to run it - the code is there
as well...



 One thing I'd like to see, and when I have some time of my own I will do
 some comprehensive long-term comparisons on production systems, is to see
 what adding or changing *one* GC tuning parameter at a time does, so I can
 find the ideal settings and have some idea of which settings make the most
 difference.

 My concern with garbage collection tuning has been mostly worst-case
 scenario pauses.  I certainly do want averages to come down, but it's
 really the worst-case that concerns me.

 Let's say that one of my typical queries takes 100 milliseconds on average
 with my GC config.  Somebody comes up with another GC config that makes the
 same query take 25 milliseconds or less on average.  If that config also
 results in rare stop-the-world garbage collections that take 5 full
 seconds, I won't be using it.  I'd rather deal with the slower average
 queries than the GC pause problems.


exactly



 I had to let my production systems run for days with jHiccup before I
 really noticed that I had a GC pause problem.  I've since learned that if I
 look at GC logs with GCLogViewer, I can get much the same information.


well, and instead of days, I think it is possible to trigger the worst case
scenario in a matter of hours (but that is my conjecture, to be proven
wrong... ;))

roman



 Thanks,
 Shawn




Re: Measuring SOLR performance

2013-07-31 Thread Dmitry Kan
Hi Roman,

What  version and config of SOLR does the tool expect?

Tried to run, but got:

**ERROR**
  File solrjmeter.py, line 1390, in module
main(sys.argv)
  File solrjmeter.py, line 1296, in main
check_prerequisities(options)
  File solrjmeter.py, line 351, in check_prerequisities
error('Cannot contact: %s' % options.query_endpoint)
  File solrjmeter.py, line 66, in error
traceback.print_stack()
Cannot contact: http://localhost:8983/solr


complains about URL, clicking which leads properly to the admin page...
solr 4.3.1, 2 cores shard

Dmitry


On Wed, Jul 31, 2013 at 3:59 AM, Roman Chyla roman.ch...@gmail.com wrote:

 Hello,

 I have been wanting some tools for measuring performance of SOLR, similar
 to Mike McCandles' lucene benchmark.

 so yet another monitor was born, is described here:
 http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/

 I tested it on the problem of garbage collectors (see the blogs for
 details) and so far I can't conclude whether highly customized G1 is better
 than highly customized CMS, but I think interesting details can be seen
 there.

 Hope this helps someone, and of course, feel free to improve the tool and
 share!

 roman



Re: Measuring SOLR performance

2013-07-31 Thread Dmitry Kan
Ok, got the error fixed by modifying the base solr ulr in solrjmeter.py
(added core name after /solr part).
Next error is:

WARNING: no test name(s) supplied nor found in:
['/home/dmitry/projects/lab/solrjmeter/demo/queries/demo.queries']

It is a 'slow start with new tool' symptom I guess.. :)


On Wed, Jul 31, 2013 at 4:39 PM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 What  version and config of SOLR does the tool expect?

 Tried to run, but got:

 **ERROR**
   File solrjmeter.py, line 1390, in module
 main(sys.argv)
   File solrjmeter.py, line 1296, in main
 check_prerequisities(options)
   File solrjmeter.py, line 351, in check_prerequisities
 error('Cannot contact: %s' % options.query_endpoint)
   File solrjmeter.py, line 66, in error
 traceback.print_stack()
 Cannot contact: http://localhost:8983/solr


 complains about URL, clicking which leads properly to the admin page...
 solr 4.3.1, 2 cores shard

 Dmitry


 On Wed, Jul 31, 2013 at 3:59 AM, Roman Chyla roman.ch...@gmail.comwrote:

 Hello,

 I have been wanting some tools for measuring performance of SOLR, similar
 to Mike McCandles' lucene benchmark.

 so yet another monitor was born, is described here:
 http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/

 I tested it on the problem of garbage collectors (see the blogs for
 details) and so far I can't conclude whether highly customized G1 is
 better
 than highly customized CMS, but I think interesting details can be seen
 there.

 Hope this helps someone, and of course, feel free to improve the tool and
 share!

 roman





Re: Measuring SOLR performance

2013-07-31 Thread Shawn Heisey
On 7/31/2013 12:24 AM, William Bell wrote:
 But that link does not tell me which on you are using?
 
 You are listing like 4 versions on your site.
 
 Also, what did it fix? Pause times?
 
 
 Any other words of wisdom ?

I'm not sure whether that was directed at me or Roman, but here's my
answers:

I run one copy of my index on Solr 3.5.0 and another copy on Solr 4.2.1.
 I have a completely separate (and much smaller) index using SolrCloud
on 4.2.1.

I was seeing GC pause times of 8-10 seconds on both 3.5.0 and 4.2.1 with
an untuned CMS collector.  When I switched that to G1 (also untuned), I
was seeing pause times of 12 seconds.  The average GC time did go down,
but the long stop-the-world pauses were worse.  I used the jHiccup tool
to see the problem.

I went to a CMS config much like what Roman used on his benchmarks, and
that improved things greatly, but I was still seeing occasional pauses
long enough to make my load balancer ping check (5 second timeout) think
that the index had gone down.

I later tried the CMS config that's on my wiki page.  That seems to have
fixed my load balancer problem.  I do still see pauses of up to a
second, but they are not frequent.  We have more page load delay from
our webapp than we do from Solr, so users aren't noticing when searches
occasionally take a little longer.

Thanks,
Shawn



Re: Measuring SOLR performance

2013-07-31 Thread Roman Chyla
Hi Dmitry,
probably mistake in the readme, try calling it with -q
/home/dmitry/projects/lab/solrjmeter/queries/demo/demo.queries

as for the base_url, i was testing it on solr4.0, where it tries contactin
/solr/admin/system - is it different for 4.3? I guess I should make it
configurable (it already is, the endpoint is set at the check_options())

thanks

roman


On Wed, Jul 31, 2013 at 10:01 AM, Dmitry Kan solrexp...@gmail.com wrote:

 Ok, got the error fixed by modifying the base solr ulr in solrjmeter.py
 (added core name after /solr part).
 Next error is:

 WARNING: no test name(s) supplied nor found in:
 ['/home/dmitry/projects/lab/solrjmeter/demo/queries/demo.queries']

 It is a 'slow start with new tool' symptom I guess.. :)


 On Wed, Jul 31, 2013 at 4:39 PM, Dmitry Kan solrexp...@gmail.com wrote:

 Hi Roman,

 What  version and config of SOLR does the tool expect?

 Tried to run, but got:

 **ERROR**
   File solrjmeter.py, line 1390, in module
 main(sys.argv)
   File solrjmeter.py, line 1296, in main
 check_prerequisities(options)
   File solrjmeter.py, line 351, in check_prerequisities
 error('Cannot contact: %s' % options.query_endpoint)
   File solrjmeter.py, line 66, in error
 traceback.print_stack()
 Cannot contact: http://localhost:8983/solr


 complains about URL, clicking which leads properly to the admin page...
 solr 4.3.1, 2 cores shard

 Dmitry


 On Wed, Jul 31, 2013 at 3:59 AM, Roman Chyla roman.ch...@gmail.comwrote:

 Hello,

 I have been wanting some tools for measuring performance of SOLR, similar
 to Mike McCandles' lucene benchmark.

 so yet another monitor was born, is described here:
 http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/

 I tested it on the problem of garbage collectors (see the blogs for
 details) and so far I can't conclude whether highly customized G1 is
 better
 than highly customized CMS, but I think interesting details can be seen
 there.

 Hope this helps someone, and of course, feel free to improve the tool and
 share!

 roman






Re: Measuring SOLR performance

2013-07-31 Thread Roman Chyla
I'll try to run it with the new parameters and let you know how it goes.
I've rechecked details for the G1 (default) garbage collector run and I can
confirm that 2 out of 3 runs were showing high max response times, in some
cases even 10secs, but the customized G1 never - so definitely the
parameters had effect because the max time for the customized G1 never went
higher than 1.5secs (and that happend for 2 query classes only). Both the
cms-custom and G1-custom are similar, the G1 seems to have higher values in
the max fields, but that may be random. So, yes, now I am sure what to
think of default G1 as 'bad', and that these G1 parameters, even if they
don't seem G1 specific, have real effect.
Thanks,

roman


On Tue, Jul 30, 2013 at 11:01 PM, Shawn Heisey s...@elyograg.org wrote:

 On 7/30/2013 6:59 PM, Roman Chyla wrote:
  I have been wanting some tools for measuring performance of SOLR, similar
  to Mike McCandles' lucene benchmark.
 
  so yet another monitor was born, is described here:
  http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/
 
  I tested it on the problem of garbage collectors (see the blogs for
  details) and so far I can't conclude whether highly customized G1 is
 better
  than highly customized CMS, but I think interesting details can be seen
  there.
 
  Hope this helps someone, and of course, feel free to improve the tool and
  share!

 I have a CMS config that's even more tuned than before, and it has made
 things MUCH better.  This new config is inspired by more info that I got
 on IRC:

 http://wiki.apache.org/solr/ShawnHeisey#GC_Tuning

 The G1 customizations in your blog post don't look like they are really
 G1-specific - they may be useful with CMS as well.  This statement also
 applies to some of the CMS parameters, so I would use those with G1 as
 well for any testing.

 UseNUMA looks interesting for machines that actually are NUMA.  All the
 information that I can find says it is only for the throughput
 (parallel) collector, so it's probably not doing anything for G1.

 The pause parameters you've got for G1 are targets only.  It will *try*
 to stick within those parameters, but if a collection requires more than
 50 milliseconds or has to happen more often than once a second, the
 collector will ignore what you have told it.

 Thanks,
 Shawn




RE: Measuring SOLR performance

2013-07-31 Thread Markus Jelsma
Did you also test indexing speed? With default G1GC settings we're seeing a 
slightly higher latency for queries than CMS. However, G1GC allows for much 
higher throughput than CMS when indexing. I haven't got the raw numbers here 
but it is roughly 45 minutes against 60 in favour of G1GC!

Load is obviously higher with G1GC.
 
 
-Original message-
 From:Roman Chyla roman.ch...@gmail.com
 Sent: Wednesday 31st July 2013 18:32
 To: solr-user@lucene.apache.org
 Subject: Re: Measuring SOLR performance
 
 I'll try to run it with the new parameters and let you know how it goes.
 I've rechecked details for the G1 (default) garbage collector run and I can
 confirm that 2 out of 3 runs were showing high max response times, in some
 cases even 10secs, but the customized G1 never - so definitely the
 parameters had effect because the max time for the customized G1 never went
 higher than 1.5secs (and that happend for 2 query classes only). Both the
 cms-custom and G1-custom are similar, the G1 seems to have higher values in
 the max fields, but that may be random. So, yes, now I am sure what to
 think of default G1 as 'bad', and that these G1 parameters, even if they
 don't seem G1 specific, have real effect.
 Thanks,
 
 roman
 
 
 On Tue, Jul 30, 2013 at 11:01 PM, Shawn Heisey s...@elyograg.org wrote:
 
  On 7/30/2013 6:59 PM, Roman Chyla wrote:
   I have been wanting some tools for measuring performance of SOLR, similar
   to Mike McCandles' lucene benchmark.
  
   so yet another monitor was born, is described here:
   http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/
  
   I tested it on the problem of garbage collectors (see the blogs for
   details) and so far I can't conclude whether highly customized G1 is
  better
   than highly customized CMS, but I think interesting details can be seen
   there.
  
   Hope this helps someone, and of course, feel free to improve the tool and
   share!
 
  I have a CMS config that's even more tuned than before, and it has made
  things MUCH better.  This new config is inspired by more info that I got
  on IRC:
 
  http://wiki.apache.org/solr/ShawnHeisey#GC_Tuning
 
  The G1 customizations in your blog post don't look like they are really
  G1-specific - they may be useful with CMS as well.  This statement also
  applies to some of the CMS parameters, so I would use those with G1 as
  well for any testing.
 
  UseNUMA looks interesting for machines that actually are NUMA.  All the
  information that I can find says it is only for the throughput
  (parallel) collector, so it's probably not doing anything for G1.
 
  The pause parameters you've got for G1 are targets only.  It will *try*
  to stick within those parameters, but if a collection requires more than
  50 milliseconds or has to happen more often than once a second, the
  collector will ignore what you have told it.
 
  Thanks,
  Shawn
 
 
 


Re: Measuring SOLR performance

2013-07-31 Thread Roman Chyla
No, I haven't had time for that (and unlikely won't have for the next few
weeks), but it is on the list - if it is 25% improvement, it would be
really worth of the change to G1.
Thanks,

roman


On Wed, Jul 31, 2013 at 1:00 PM, Markus Jelsma
markus.jel...@openindex.iowrote:

 Did you also test indexing speed? With default G1GC settings we're seeing
 a slightly higher latency for queries than CMS. However, G1GC allows for
 much higher throughput than CMS when indexing. I haven't got the raw
 numbers here but it is roughly 45 minutes against 60 in favour of G1GC!

 Load is obviously higher with G1GC.


 -Original message-
  From:Roman Chyla roman.ch...@gmail.com
  Sent: Wednesday 31st July 2013 18:32
  To: solr-user@lucene.apache.org
  Subject: Re: Measuring SOLR performance
 
  I'll try to run it with the new parameters and let you know how it goes.
  I've rechecked details for the G1 (default) garbage collector run and I
 can
  confirm that 2 out of 3 runs were showing high max response times, in
 some
  cases even 10secs, but the customized G1 never - so definitely the
  parameters had effect because the max time for the customized G1 never
 went
  higher than 1.5secs (and that happend for 2 query classes only). Both the
  cms-custom and G1-custom are similar, the G1 seems to have higher values
 in
  the max fields, but that may be random. So, yes, now I am sure what to
  think of default G1 as 'bad', and that these G1 parameters, even if they
  don't seem G1 specific, have real effect.
  Thanks,
 
  roman
 
 
  On Tue, Jul 30, 2013 at 11:01 PM, Shawn Heisey s...@elyograg.org
 wrote:
 
   On 7/30/2013 6:59 PM, Roman Chyla wrote:
I have been wanting some tools for measuring performance of SOLR,
 similar
to Mike McCandles' lucene benchmark.
   
so yet another monitor was born, is described here:
   
 http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/
   
I tested it on the problem of garbage collectors (see the blogs for
details) and so far I can't conclude whether highly customized G1 is
   better
than highly customized CMS, but I think interesting details can be
 seen
there.
   
Hope this helps someone, and of course, feel free to improve the
 tool and
share!
  
   I have a CMS config that's even more tuned than before, and it has made
   things MUCH better.  This new config is inspired by more info that I
 got
   on IRC:
  
   http://wiki.apache.org/solr/ShawnHeisey#GC_Tuning
  
   The G1 customizations in your blog post don't look like they are really
   G1-specific - they may be useful with CMS as well.  This statement also
   applies to some of the CMS parameters, so I would use those with G1 as
   well for any testing.
  
   UseNUMA looks interesting for machines that actually are NUMA.  All the
   information that I can find says it is only for the throughput
   (parallel) collector, so it's probably not doing anything for G1.
  
   The pause parameters you've got for G1 are targets only.  It will *try*
   to stick within those parameters, but if a collection requires more
 than
   50 milliseconds or has to happen more often than once a second, the
   collector will ignore what you have told it.
  
   Thanks,
   Shawn
  
  
 



Measuring SOLR performance

2013-07-30 Thread Roman Chyla
Hello,

I have been wanting some tools for measuring performance of SOLR, similar
to Mike McCandles' lucene benchmark.

so yet another monitor was born, is described here:
http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/

I tested it on the problem of garbage collectors (see the blogs for
details) and so far I can't conclude whether highly customized G1 is better
than highly customized CMS, but I think interesting details can be seen
there.

Hope this helps someone, and of course, feel free to improve the tool and
share!

roman


Re: Measuring SOLR performance

2013-07-30 Thread Shawn Heisey
On 7/30/2013 6:59 PM, Roman Chyla wrote:
 I have been wanting some tools for measuring performance of SOLR, similar
 to Mike McCandles' lucene benchmark.
 
 so yet another monitor was born, is described here:
 http://29min.wordpress.com/2013/07/31/measuring-solr-query-performance/
 
 I tested it on the problem of garbage collectors (see the blogs for
 details) and so far I can't conclude whether highly customized G1 is better
 than highly customized CMS, but I think interesting details can be seen
 there.
 
 Hope this helps someone, and of course, feel free to improve the tool and
 share!

I have a CMS config that's even more tuned than before, and it has made
things MUCH better.  This new config is inspired by more info that I got
on IRC:

http://wiki.apache.org/solr/ShawnHeisey#GC_Tuning

The G1 customizations in your blog post don't look like they are really
G1-specific - they may be useful with CMS as well.  This statement also
applies to some of the CMS parameters, so I would use those with G1 as
well for any testing.

UseNUMA looks interesting for machines that actually are NUMA.  All the
information that I can find says it is only for the throughput
(parallel) collector, so it's probably not doing anything for G1.

The pause parameters you've got for G1 are targets only.  It will *try*
to stick within those parameters, but if a collection requires more than
50 milliseconds or has to happen more often than once a second, the
collector will ignore what you have told it.

Thanks,
Shawn