Performance test on Jetty/MySQL with 100 wikis between 6.4.4 and 7.1

Last modified by Thomas Mortagne on 2015/05/28 11:26

Environment

  • Ubuntu 15.04 64b
  • Quad core i7-3630QM
  • Oracle JDK 1.8.0_45 64b
  • MySQL 5.6.24
  • standard jetty+mysql
  • 100 wikis
  • configuration
    • xwiki.cfg:
      • xwiki.store.cache.capacity=500
    • JVM
      • -Xmx2048m

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.). 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.

Summary

Speed

ActionsDifference
Create 100 wikis
Jetty startup
First accessnot existing page without UI
not existing page with UI
Reloadnot existing page without UI
not existing page with UI
Main.WebHome with UI
Main.WebHome without UI
SOLRFull SOLR reindex
SOLR sync when index is empty
SOLR sync when there is nothing to do
Result of search finding lots of results
Result of search finding one result
RenderingPage with 1000 macros without UI
Page with 1000 html macros without UI

Memory

ActionsDifference
Memory after jetty startup
Memory after full SOLR index

Setup

Create 100 wikis

Unit: minutes

Execute a script which create empty wiki and install default subwiki UI in it using EM. The script log the beginning, the end and each creation.

  • 6.4.4:
  • 7.1:

Jetty startup

Unit: seconds

Until end message is printed. Done by hand with a chronometer.

  • 6.4.4:
  • 7.1:

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).

  • 6.4.4:
  • 7.1:

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).

  • 6.4.4:
  • 7.1:

Reload

XWiki is doing nothing on background and everything is both in server and client cache already. Firefox network statistics to load the root resource (image/js/css/etc. resources are not taken into account).

Reload of not existing page without UI (/xwiki/bin/get/NoSpace/NoPage)

Unit: milliseconds

  • 6.4.4:
  • 7.1:

Reload of not existing page with UI (/xwiki/bin/view/NoSpace/NoPage)

Unit: milliseconds

  • 6.4.4:
  • 7.1:

Reload of Main.WebHome with UI

Unit: milliseconds

  • 6.4.4:
  • 7.1:

Reload of Main.WebHome without UI

Unit: milliseconds

  • 6.4.4:
  • 7.1:

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).

  • 6.4.4:
  • 7.1:

SOLR sync

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

when index is empty

Unit: seconds

  • 6.4.4:
  • 7.1:

when there is nothing to do

Unit: seconds

  • 6.4.4: < 1
  • 7.1: < 1

Search

XWiki is doing nothing on background and everything is both in server and client cache already. Firefox network statistics to load the root resource (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.

http://127.0.0.1:8080/xwiki/bin/view/Main/Search?sort=score&sortOrder=desc&r=1&f_type=DOCUMENT&text=*

  • 6.4.4:
  • 7.1:

Result of search finding one result

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

  • 6.4.4:
  • 7.1:

Rendering

Page with 1000 macros without UI

1000 {{id}} macros.

Unit: seconds

  • 6.4.4:
  • 7.1:

Page with 1000 html macros without UI

1000 standalone {{html}} macros.

Unit: seconds

  • 6.4.4:
  • 7.1:

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.

  • 6.4.4:  used,  allocated
  • 7.1:  used,  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

  • 6.4.4:  used,  allocated
  • 7.1:  used,  allocated

Get Connected