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 19.04 64b
15 * Quad core i7-8750H
16 * Oracle JDK 1.8.0_222 64b
17 * Dumbbench 0.111
18 * Yourkit 2018.04-b87
19 * standard jetty+hsqldb
20 * permdir in a SSD
21 * jetty/hsqldb package
22 * only main wiki
23 * configuration
24 ** ##Admin user:##
25 *** ##hidden documents enabled##
26 * import attach:perf.xar
27
28 Most of response time statistics are made with [[Dumbbench>>https://metacpan.org/pod/Dumbbench]], you can install it using cpan.
29 For example on Debian/Ubuntu:
30
31 {{code language="bash"}}
32 $ sudo apt-get install cpanminus
33 $ sudo cpanm Module::Install
34 $ sudo cpanm Dumbbench
35 {{/code}}
36
37 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.
38
39 Login with Admin user:
40
41 {{code language="none"}}
42 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"
43 {{/code}}
44
45 = Tests =
46
47 == Summary ==
48
49 The skin is back on track compared to 8.4.6 mostly thanks to asynchonous elements (which means it's still slower but it now feels similar). 11.8 contains more documents (~70 more) than 8.4.6 which make most tasks in charge of loading all documents take longer, it also contains more wiki components which take slighly more time to save (because they are registered at save time). While the memory is more optimized (explaining the lower memory used before initializing the DB) we simply store more stuff in it (mostly more cached wiki components and also a bit of asynchronous elements).
50
51 "(% style="color:orange" %)similar(%%)": difference is lower than 10%
52 "slightly": difference is lower than 20%
53
54 {{info}}
55 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.
56 {{/info}}
57
58 === Speed ===
59
60 |=(% colspan="2" %)Actions|=Difference
61 |(% colspan="2" %){{sl}}Jetty startup{{/sl}}|(% style="color:red" %)+30%
62 |(% rowspan="2" width="150" %){{sl}}First access{{/sl}}|(% width="300" %){{sl id="HFirstaccesstonotexistingpagewithoutUI"}}not existing page without UI{{/sl}}|(% style="color:red" %)+23%
63 |{{sl id="HFirstaccesstonotexistingpagewithUI"}}not existing page with UI{{/sl}}|(% style="color:orange" %)similar
64 |(% rowspan="6" %){{sl}}Reload{{/sl}}|{{sl id="HReloadofnotexistingpagewithoutUI"}}not existing page without UI{{/sl}}|(% style="color:orange" %)similar
65 |{{sl id="HReloadofnotexistingpagewithUI"}}not existing page with UI{{/sl}}|(% style="color:orange" %)similar
66 |{{sl id="HReloadofemptypagewithoutUI"}}empty page without UI{{/sl}}|(% style="color:red" %)slightly slower
67 |{{sl id="HReloadofemptypagewithUI"}}empty page with UI{{/sl}}|(% style="color:orange" %)similar
68 |{{sl id="HReloadofMain.WebHomewithoutUI"}}Main.WebHome without UI{{/sl}}|(% style="color:red" %)x2
69 |{{sl id="HReloadofMain.WebHomewithUI"}}Main.WebHome with UI{{/sl}}|(% style="color:orange" %)similar
70 |(% rowspan="5" %){{sl}}SOLR{{/sl}}|{{sl}}Full SOLR reindex{{/sl}}|(% style="color:red" %)+25%
71 |{{sl id="Hwhenindexisempty"}}SOLR sync when index is empty{{/sl}}|(% style="color:red" %)x2
72 |{{sl id="Hwhenthereisnothingtodo"}}SOLR sync when there is nothing to do{{/sl}}|(% style="color:red" %)+26%
73 |{{sl}}Result of search finding lots of results{{/sl}}|(% style="color:orange" %)similar
74 |{{sl}}Result of search finding one result{{/sl}}|(% style="color:orange" %)similar
75 |(% rowspan="2" %){{sl}}Rendering{{/sl}}|{{sl}}Page with 1000 macros without UI{{/sl}}|(% style="color:orange" %)similar
76 |{{sl}}Page with 1000 html macros without UI{{/sl}}|(% style="color:green" %)/10.6
77 |(% rowspan="2" %){{sl}}Wiki creation{{/sl}}|{{sl}}From flavor{{/sl}}|(% style="color:green" %)-24%
78 |{{sl}}From template{{/sl}}|(% style="color:red" %)+40%
79
80 === Memory ===
81
82 |=(% width="450" %)Actions|=Difference
83 |{{sl}}Heap Memory after jetty startup{{/sl}}|(% style="color:red" %)-49
84 |{{sl}}Heap Memory after full SOLR index{{/sl}}|(% style="color:red" %)+53
85
86 == Jetty startup ==
87
88 Unit: milliseconds
89
90 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}}.
91
92 * {{previous/}}: 6646
93 * {{next/}}: 9631
94
95 == First access ==
96
97 First HTTP request after restarting Jetty.
98
99 === First access to not existing page without UI ===
100
101 (/xwiki/bin/get/NoSpace/NoPage)
102
103 Unit: milliseconds
104
105 Firefox network statistics to load the root resource (image/js/css/etc. resources are not taken into account).
106
107 * {{previous/}}: 4463
108 * {{next/}}: 5838
109
110 === First access to not existing page with UI ===
111
112 (/xwiki/bin/view/NoSpace/NoPage)
113
114 Unit: seconds
115
116 Done by hand with a chronometer (image/js/css/etc. resources are not taken into account).
117
118 * {{previous/}}: 9
119 * {{next/}}: 10
120
121 == Reload ==
122
123 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).
124
125 === Reload of not existing page without UI ===
126
127 {{code language="none"}}
128 dumbbench --float -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/NoSpace/NoPage"
129 {{/code}}
130
131 Unit: milliseconds
132
133 * {{previous/}}: 3.8
134 * {{next/}}: 4
135
136 === Reload of not existing page with UI ===
137
138 {{code language="none"}}
139 dumbbench --float -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/NoSpace/NoPage"
140 {{/code}}
141
142 Unit: milliseconds
143
144 * {{previous/}}: 67.5
145 * {{next/}}: 64.99
146
147 === Reload of empty page without UI ===
148
149 {{code language="none"}}
150 dumbbench --float -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/EmptySpace/EmptyPage"
151 {{/code}}
152
153 Unit: milliseconds
154
155 * {{previous/}}: 3.23
156 * {{next/}}: 3.7
157
158 === Reload of empty page with UI ===
159
160 {{code language="none"}}
161 dumbbench --float -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/EmptySpace/EmptyPage"
162 {{/code}}
163
164 Unit: milliseconds
165
166 * {{previous/}}: 64.98
167 * {{next/}}: 70.4
168
169 === Reload of Main.WebHome without UI ===
170
171 {{code language="none"}}
172 dumbbench --float -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/Main/WebHome"
173 {{/code}}
174
175 Unit: milliseconds
176
177 * {{previous/}}: 3.55
178 * {{next/}}: 6.4
179
180 === Reload of Main.WebHome with UI ===
181
182 {{code language="none"}}
183 dumbbench --float -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/WebHome"
184 {{/code}}
185
186 Unit: milliseconds
187
188 * {{previous/}}: 65.1
189 * {{next/}}: 72.2
190
191 == SOLR ==
192
193 === Full SOLR reindex ===
194
195 Unit: seconds
196
197 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).
198
199 * {{previous/}}: 76
200 * {{next/}}: 102
201
202 === SOLR sync ===
203
204 Only the thread determining what need to be indexed and not the actual indexing.
205
206 ##<perm dir>/data/jobs/status/solr/indexer/status.xml##
207
208 ==== when index is empty ====
209
210 Unit: nanoseconds
211
212 * {{previous/}}: 900920830
213 * {{next/}}: 1931773802
214
215 ==== when there is nothing to do ====
216
217 Unit: nanoseconds
218
219 * {{previous/}}: 407215988
220 * {{next/}}: 553533001
221
222 === Search ===
223
224 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).
225
226 Unit: milliseconds
227
228 ==== Result of search finding lots of results ====
229
230 Login with Admin user and make sure hidden document display is enabled.
231
232 {{code language="none"}}
233 dumbbench --float -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=*"
234 {{/code}}
235
236 * {{previous/}}: 134
237 * {{next/}}: 148
238
239 ==== Result of search finding one result ====
240
241 {{code language="none"}}
242 dumbbench --float -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"
243 {{/code}}
244
245 * {{previous/}}: 93.2
246 * {{next/}}: 102
247
248 == Rendering ==
249
250 === Page with 1000 macros without UI ===
251
252 {{code language="none"}}
253 dumbbench --float -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"
254 {{/code}}
255
256 Unit: milliseconds
257
258 * {{previous/}}: 61
259 * {{next/}}: 57
260
261 === Page with 1000 html macros without UI ===
262
263 {{code language="none"}}
264 dumbbench --float -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"
265 {{/code}}
266
267 Unit: milliseconds
268
269 * {{previous/}}: 602.4
270 * {{next/}}: 56.4
271
272 == Wiki creation ==
273
274 Unit: nanoseconds
275
276 === From flavor ===
277
278 Create the wiki ##test1## from default flavor and get the time spend from the job (##</rootStep>## in ##<permdir>/jobs/status/wikicreation/createandinstall/test1/status.xml##).
279
280 * {{previous/}}: 21127813415
281 * {{next/}}: 16015857760
282
283 === From template ===
284
285 Make ##test1## a template wiki.
286
287 Create the wiki ##test2## from wiki ##test1## and get the time spend from the job (##</rootStep>## in ##<permdir>/jobs/status/wikicreation/createandinstall/test2/status.xml##).
288
289 * {{previous/}}: 18780437402
290 * {{next/}}: 31799311910
291
292 == Heap Memory ==
293
294 Attach Yourkit to get the information.
295
296 Unit: MB
297
298 === Heap Memory after jetty startup ===
299
300 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 "used".
301
302 * {{previous/}}: 121 used, 908 allocated
303 * {{next/}}: 72 used, 608 allocated
304
305 === Heap Memory after full SOLR index ===
306
307 Delete the data/solr folder, restart, load home page then wait until nothing is happening in background. Force garbage collector before looking at "used".
308
309 Unit: MB
310
311 * {{previous/}}: 196 used, 970 allocated
312 * {{next/}}: 249 used, 971 allocated

Get Connected