Last modified by Thomas Mortagne on 2017/01/11 10:14

Show last authors
1 {{toc/}}
2
3 = Environment =
4
5 {{velocity}}
6 #if ($xcontext.action == 'edit')
7 ; Next version
8 : $doc.next
9 ; Previous version
10 : $doc.previous
11 #end
12 {{/velocity}}
13
14 * Ubuntu 16.10 64b
15 * Quad core i7-6700HQ
16 * Oracle JDK 1.8.0_101 64b
17 * Dumbbench 0.10
18 * standard jetty+hsqldb
19 * permdir in a SSD
20 * only main wiki
21 * configuration
22 ** ##Admin user:##
23 *** ##hidden documents enabled##
24 * import attach:perf.xar
25
26 Most of response time statistics are made with [[Dumbbench>>https://github.com/tsee/dumbbench]], you can install it using cpan.
27 For example on Debian/Ubuntu:
28
29 {{code language="bash"}}
30 $ sudo apt-get install cpanminus
31 $ sudo cpanm Dumbbench
32 {{/code}}
33
34 Unless specifically indicated otherwise all the tests 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.
35
36 Login with Admin user:
37
38 {{code language="none"}}
39 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"
40 {{/code}}
41
42 = Tests =
43
44 == Summary ==
45
46 "(% style="color:orange" %)similar(%%)": difference is lower than 10%
47 "slightly": difference is lower than 20%
48
49 Note that 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 (that's why 10% may sounds a lot for something called "similar" but the variable can go up and down around 5% sometimes so 10% average is really not that much of a clear win). Dumbbench based tests are executed several times and the lowest result is selected.
50
51 === Speed ===
52
53 |=(% colspan="2" %)Actions|=Difference
54 |(% colspan="2" %){{sl}}Jetty startup{{/sl}}|(% style="color:red" %)slightly slower
55 |(% rowspan="2" width="150" %){{sl}}First access{{/sl}}|(% width="300" %){{sl id="HFirstaccesstonotexistingpagewithoutUI"}}not existing page without UI{{/sl}}|(% style="color:red" %)slightly slower
56 |{{sl id="HFirstaccesstonotexistingpagewithUI"}}not existing page with UI{{/sl}}|(% style="color:orange" %)similar
57 |(% rowspan="6" %){{sl}}Reload{{/sl}}|{{sl id="HReloadofnotexistingpagewithoutUI"}}not existing page without UI{{/sl}}|(% style="color:orange" %)similar
58 |{{sl id="HReloadofnotexistingpagewithUI"}}not existing page with UI{{/sl}}|(% style="color:red" %)+27%
59 |{{sl id="HReloadofemptypagewithoutUI"}}empty page without UI{{/sl}}|(% style="color:orange" %)similar
60 |{{sl id="HReloadofemptypagewithUI"}}empty page with UI{{/sl}}|(% style="color:red" %)slightly slower
61 |{{sl id="HReloadofMain.WebHomewithoutUI"}}Main.WebHome without UI{{/sl}}|(% style="color:green" %)/5
62 |{{sl id="HReloadofMain.WebHomewithUI"}}Main.WebHome with UI{{/sl}}|(% style="color:green" %)-23%
63 |(% rowspan="5" %){{sl}}SOLR{{/sl}}|{{sl}}Full SOLR reindex{{/sl}}|(% style="color:orange" %)similar
64 |{{sl id="Hwhenindexisempty"}}SOLR sync when index is empty{{/sl}}|(% style="color:orange" %)similar
65 |{{sl id="Hwhenthereisnothingtodo"}}SOLR sync when there is nothing to do{{/sl}}|(% style="color:orange" %)similar
66 |{{sl}}Result of search finding lots of results{{/sl}}|(% style="color:orange" %)similar
67 |{{sl}}Result of search finding one result{{/sl}}|(% style="color:green" %)similar
68 |(% rowspan="2" %){{sl}}Rendering{{/sl}}|{{sl}}Page with 1000 macros without UI{{/sl}}|(% style="color:orange" %)similar
69 |{{sl}}Page with 1000 html macros without UI{{/sl}}|(% style="color:orange" %)slightly slower
70
71 === Memory ===
72
73 |=(% width="450" %)Actions|=Difference
74 |{{sl}}Heap Memory after jetty startup{{/sl}}|(% style="color:red" %)+24MB
75 |{{sl}}Heap Memory after full SOLR index{{/sl}}|(% style="color:red" %)+29MB
76
77 == Jetty startup ==
78
79 Unit: seconds
80
81 You get this from the log with the line looking like {{code language="none"}}2016-10-19 16:52:25.309:INFO:oejs.Server:main: Started @8434ms{{/code}}.
82
83 * {{previous/}}: 8
84 * {{next/}}: 9
85
86 == First access ==
87
88 First HTTP request after restarting Jetty.
89
90 === First access to not existing page without UI ===
91
92 (/xwiki/bin/get/NoSpace/NoPage)
93
94 Unit: seconds
95
96 Firefox network statistics to load the root resource (image/js/css/etc. resources are not taken into account).
97
98 * {{previous/}}: 5
99 * {{next/}}: 6
100
101 === First access to not existing page with UI ===
102
103 (/xwiki/bin/view/NoSpace/NoPage)
104
105 Unit: seconds
106
107 Done by hand with a chronometer (image/js/css/etc. resources are not taken into account).
108
109 * {{previous/}}: 12
110 * {{next/}}: 13
111
112 == Reload ==
113
114 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).
115
116 === Reload of not existing page without UI ===
117
118 {{code language="none"}}
119 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/NoSpace/NoPage"
120 {{/code}}
121
122 Unit: milliseconds
123
124 * {{previous/}}: 6
125 * {{next/}}: 6
126
127 === Reload of not existing page with UI ===
128
129 {{code language="none"}}
130 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"
131 {{/code}}
132
133 Unit: milliseconds
134
135 * {{previous/}}: 55
136 * {{next/}}: 70
137
138 === Reload of empty page without UI ===
139
140 {{code language="none"}}
141 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/EmptySpace/EmptyPage"
142 {{/code}}
143
144 Unit: milliseconds
145
146 * {{previous/}}: 6
147 * {{next/}}: 6
148
149 === Reload of empty page with UI ===
150
151 {{code language="none"}}
152 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/EmptySpace/EmptyPage"
153 {{/code}}
154
155 Unit: milliseconds
156
157 * {{previous/}}: 62
158 * {{next/}}: 72
159
160 === Reload of Main.WebHome without UI ===
161
162 {{code language="none"}}
163 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"
164 {{/code}}
165
166 Unit: milliseconds
167
168 * {{previous/}}: 37
169 * {{next/}}: 7
170
171 === Reload of Main.WebHome with UI ===
172
173 {{code language="none"}}
174 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"
175 {{/code}}
176
177 Unit: milliseconds
178
179 * {{previous/}}: 98
180 * {{next/}}: 75
181
182 == SOLR ==
183
184 === Full SOLR reindex ===
185
186 Unit: seconds
187
188 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).
189
190 * {{previous/}}: 49
191 * {{next/}}: 52
192
193 === SOLR sync ===
194
195 Only the thread determining what need to be indexed and not the actual indexing.
196
197 ==== when index is empty ====
198
199 Unit: seconds
200
201 * {{previous/}}: < 1
202 * {{next/}}: < 1
203
204 ==== when there is nothing to do ====
205
206 Unit: seconds
207
208 * {{previous/}}: < 1
209 * {{next/}}: < 1
210
211 === Search ===
212
213 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).
214
215 Unit: milliseconds
216
217 ==== Result of search finding lots of results ====
218
219 Login with Admin user and make sure hidden document display is enabled.
220
221 {{code language="none"}}
222 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/view/Main/Search?sort=score&sortOrder=desc&r=1&f_type=DOCUMENT&text=*"
223 {{/code}}
224
225 * {{previous/}}: 203
226 * {{next/}}: 216
227
228 ==== Result of search finding one result ====
229
230 {{code language="none"}}
231 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/view/Main/Search?sort=score&sortOrder=desc&r=1&f_type=DOCUMENT&text=name%3A1000Macros"
232 {{/code}}
233
234 * {{previous/}}: 132
235 * {{next/}}: 142
236
237 == Rendering ==
238
239 === Page with 1000 macros without UI ===
240
241 {{code language="none"}}
242 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/1000Macros"
243 {{/code}}
244
245 Unit: milliseconds
246
247 * {{previous/}}: 64
248 * {{next/}}: 67
249
250 === Page with 1000 html macros without UI ===
251
252 {{code language="none"}}
253 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"
254 {{/code}}
255
256 Unit: milliseconds
257
258 * {{previous/}}: 629
259 * {{next/}}: 695
260
261 == Heap Memory ==
262
263 Attach Yourkit to get the information.
264
265 Unit: MB
266
267 === Heap Memory after jetty startup ===
268
269 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.
270
271 * {{previous/}}: 47 used, 380 allocated
272 * {{next/}}: 71 used, 554 allocated
273
274 === Heap Memory after full SOLR index ===
275
276 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.
277
278 Unit: MB
279
280 * {{previous/}}: 159 used, 505 allocated
281 * {{next/}}: 188 used, 712 allocated

Get Connected