Performance test on Jetty/HSQLDB with a single wiki between 7.1.2 and 7.2

Last modified by Thomas Mortagne on 2015/09/24 17:58

Environment

  • Ubuntu 15.04 64b
  • Quad core i7-3630QM
  • Oracle JDK 1.8.0_60 64b
  • standard jetty+hsqldb
  • permdir in a SSD
  • only main wiki
  • configuration
    • xwiki.cfg:
      • xwiki.store.cache.capacity=500
    • Admin user:
      • hidden documents enabled

Most response time statistics were made with Dumbbench, you can install it using cpan.
For example on Debian/Ubuntu:

$ sudo apt-get install cpanminus
$ sudo cpanm Dumbbench

Unless specifically indicated otherwise all the test are executed with a fully initialized instance (core extensions don't run anymore, SOLR index is fully up to date, etc.) and logged in with Admin user. Basically except for a few special tests we are using an instance that already been started and run until the proc is flat for some time.

Login with Admin uer:

wget --save-cookies cookies.txt --post-data 'j_username=Admin&j_password=admin&j_rememberme=true' -O /dev/null -o /dev/null "http://127.0.0.1:8080/xwiki/bin/loginsubmit/XWiki/XWikiLogin?j_username=Admin&j_password=admin&j_rememberme=true"

Summary

Note hat most of the speed related values are an average of very moving results, a lot of things is happening during a HTTP request and it's far from stable duration.

"similar": difference is lower than 10%
"slightly": difference is lower than 20%

Speed

ActionsDifference
Jetty startupsimilar
First accessnot existing page without UIsimilar
not existing page with UIslightly slower
Reloadnot existing page without UIsimilar
not existing page with UIsimilar
Main.WebHome with UIsimilar
Main.WebHome without UIslightly faster
SOLRFull SOLR reindexsimilar
SOLR sync when index is emptysimilar
SOLR sync when there is nothing to dosimilar
Result of search finding lots of resultsslightly slower
Result of search finding one resultsimilar
RenderingPage with 1000 macros without UIsimilar
Page with 1000 html macros without UI20% slower

Memory

ActionsDifference
Memory after jetty startupsimilar
Memory after full SOLR indexsimilar

Jetty startup

Unit: seconds

Execute echo `date` && ./start_xwiki.sh and compare "Server started..." log date the one printed before jetty startup.

  • 7.1.2: 9
  • 7.2: 10

First access

First HTTP request after restarting Jetty.

First access to not existing page without UI

(/xwiki/bin/get/NoSpace/NoPage)

Unit: seconds

Firefox network statistics to load the root resource (image/js/css/etc. resources are not taken into account).

  • 7.1.2: 6
  • 7.2: 6

First access to not existing page with UI

(/xwiki/bin/view/NoSpace/NoPage)

Unit: seconds

Done by hand with a chronometer (image/js/css/etc. resources are not taken into account).

  • 7.1.2: 12
  • 7.2: 14

Reload

XWiki is doing nothing on background and everything is both in server and client cache already. Values are calculated using dumbbench (image/js/css/etc. resources are not taken into account).

Reload of not existing page without UI

dumbbench -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/get/NoSpace/NoPage"

Unit: milliseconds

  • 7.1.2: 6
  • 7.2: 6

Reload of not existing page with UI

dumbbench -p 0.1 -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/view/NoSpace/NoPage"

Unit: milliseconds

  • 7.1.2: 52
  • 7.2: 56

Reload of Main.WebHome with UI

dumbbench -p 0.1 -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/view/Main/WebHome"

Unit: milliseconds

  • 7.1.2: 120
  • 7.2: 115

Reload of Main.WebHome without UI

dumbbench -p 0.1 -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/get/Main/WebHome"

Unit: milliseconds

  • 7.1.2: 60
  • 7.2: 50

SOLR

Full SOLR reindex

Unit: seconds

Delete the data/solr folder, restart, load home page and calculate the time of activity of the SOLR index thread using Yourkit (Yourkit is slowing down a bit all that but what is important is the difference anyway).

  • 7.1.2: 70
  • 7.2: 68

SOLR sync

Only the thread determining what need to be indexed and not the actual indexing.

when index is empty

Unit: seconds

  • 7.1.2: 1
  • 7.2: 1

when there is nothing to do

Unit: seconds

  • 7.1.2: < 1
  • 7.2: < 1

Search

XWiki is doing nothing on background and everything is both in server and client cache already. Values are calculated using dumbbench (image/js/css/etc. resources are not taken into account).

Unit: milliseconds

Result of search finding lots of results

Login with Admin user and make sure hidden document display is enabled.

dumbbench -p 0.1 -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/view/Main/Search?sort=score&sortOrder=desc&r=1&f_type=DOCUMENT&text=*"
  • 7.1.2: 215
  • 7.2: 233

Result of search finding one result

dumbbench -p 0.1 -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/view/Main/Search?sort=score&sortOrder=desc&r=1&f_type=DOCUMENT&text=%22Learn+how+to+use+XWiki%22"
  • 7.1.2: 140
  • 7.2: 140

Rendering

Page with 1000 macros without UI

1000 {{id}} macros.

dumbbench -p 0.1 -i 1000 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/get/Test/1000Macros"

Unit: milliseconds

  • 7.1.2: 82
  • 7.2: 83

Page with 1000 html macros without UI

1000 standalone {{html}} macros.

dumbbench -p 0.1 -i 100 -- wget -q -o /dev/null -O /dev/null --load-cookies cookies.txt "http://127.0.0.1:8080/xwiki/bin/get/Test/1000HTMLMacros"

Unit: milliseconds

  • 7.1.2: 700
  • 7.2: 870

Heap Memory

Attach Yourkit to get the information.

Unit: MB

Heap Memory after jetty startup

Start jetty and wait until java is not doing anything on both (wait for potential initialization of various stuff like core extension cache, etc). Force garbage collector before looking at the values.

  • 7.1.2: 40 used, 494 allocated
  • 7.2: 45 used, 375 allocated

Heap Memory after full SOLR index

Delete the data/solr folder, restart, load home page then wait until nothing is happening in background. Force garbage collector before looking at the values.

Unit: MB

  • 7.1.2: 144 used, 503 allocated
  • 7.2: 145 used, 505 allocated
Tags:
Created by Thomas Mortagne on 2015/09/23 17:39
   

Get Connected