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 17.04 64b
15 * Quad core i7-6700HQ
16 * Oracle JDK 1.8.0_151 64b
17 * Dumbbench 0.111
18 * Yourkit 2017.02-b66
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 There hasn't been much work on performance in 9.x so it's very similar to 8.4.4. Solr has been upgraded (from 6.2.1 to 6.4.2) and looks like it affected the speed of the job responsible for finding out what need to be indexed/removed but it does not seems to have any impact on actual indexing or standard document search.
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:orange" %)
62 |(% rowspan="2" width="150" %){{sl}}First access{{/sl}}|(% width="300" %){{sl id="HFirstaccesstonotexistingpagewithoutUI"}}not existing page without UI{{/sl}}|(% style="color:orange" %)
63 |{{sl id="HFirstaccesstonotexistingpagewithUI"}}not existing page with UI{{/sl}}|(% style="color:orange" %)
64 |(% rowspan="6" %){{sl}}Reload{{/sl}}|{{sl id="HReloadofnotexistingpagewithoutUI"}}not existing page without UI{{/sl}}|(% style="color:orange" %)
65 |{{sl id="HReloadofnotexistingpagewithUI"}}not existing page with UI{{/sl}}|(% style="color:orange" %)
66 |{{sl id="HReloadofemptypagewithoutUI"}}empty page without UI{{/sl}}|(% style="color:orange" %)
67 |{{sl id="HReloadofemptypagewithUI"}}empty page with UI{{/sl}}|(% style="color:orange" %)
68 |{{sl id="HReloadofMain.WebHomewithoutUI"}}Main.WebHome without UI{{/sl}}|(% style="color:orange" %)
69 |{{sl id="HReloadofMain.WebHomewithUI"}}Main.WebHome with UI{{/sl}}|(% style="color:orange" %)
70 |(% rowspan="5" %){{sl}}SOLR{{/sl}}|{{sl}}Full SOLR reindex{{/sl}}|(% style="color:orange" %)
71 |{{sl id="Hwhenindexisempty"}}SOLR sync when index is empty{{/sl}}|(% style="color:red" %)
72 |{{sl id="Hwhenthereisnothingtodo"}}SOLR sync when there is nothing to do{{/sl}}|(% style="color:red" %)
73 |{{sl}}Result of search finding lots of results{{/sl}}|(% style="color:orange" %)
74 |{{sl}}Result of search finding one result{{/sl}}|(% style="color:orange" %)
75 |(% rowspan="2" %){{sl}}Rendering{{/sl}}|{{sl}}Page with 1000 macros without UI{{/sl}}|(% style="color:orange" %)
76 |{{sl}}Page with 1000 html macros without UI{{/sl}}|(% style="color:orange" %)
77
78 === Memory ===
79
80 |=(% width="450" %)Actions|=Difference
81 |{{sl}}Heap Memory after jetty startup{{/sl}}|(% style="color:green" %)
82 |{{sl}}Heap Memory after full SOLR index{{/sl}}|(% style="color:orange" %)
83
84 == Jetty startup ==
85
86 Unit: seconds
87
88 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}}.
89
90 * {{previous/}}: 9
91 * {{next/}}:
92
93 == First access ==
94
95 First HTTP request after restarting Jetty.
96
97 === First access to not existing page without UI ===
98
99 (/xwiki/bin/get/NoSpace/NoPage)
100
101 Unit: seconds
102
103 Firefox network statistics to load the root resource (image/js/css/etc. resources are not taken into account).
104
105 * {{previous/}}: 5.9
106 * {{next/}}:
107
108 === First access to not existing page with UI ===
109
110 (/xwiki/bin/view/NoSpace/NoPage)
111
112 Unit: seconds
113
114 Done by hand with a chronometer (image/js/css/etc. resources are not taken into account).
115
116 * {{previous/}}: 11
117 * {{next/}}:
118
119 == Reload ==
120
121 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).
122
123 === Reload of not existing page without UI ===
124
125 {{code language="none"}}
126 dumbbench --float -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"
127 {{/code}}
128
129 Unit: milliseconds
130
131 * {{previous/}}: 6
132 * {{next/}}:
133
134 === Reload of not existing page with UI ===
135
136 {{code language="none"}}
137 dumbbench --float -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"
138 {{/code}}
139
140 Unit: milliseconds
141
142 * {{previous/}}: 89
143 * {{next/}}:
144
145 === Reload of empty page without UI ===
146
147 {{code language="none"}}
148 dumbbench --float -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"
149 {{/code}}
150
151 Unit: milliseconds
152
153 * {{previous/}}: 6
154 * {{next/}}:
155
156 === Reload of empty page with UI ===
157
158 {{code language="none"}}
159 dumbbench --float -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"
160 {{/code}}
161
162 Unit: milliseconds
163
164 * {{previous/}}: 85
165 * {{next/}}:
166
167 === Reload of Main.WebHome without UI ===
168
169 {{code language="none"}}
170 dumbbench --float -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"
171 {{/code}}
172
173 Unit: milliseconds
174
175 * {{previous/}}: 8
176 * {{next/}}:
177
178 === Reload of Main.WebHome with UI ===
179
180 {{code language="none"}}
181 dumbbench --float -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"
182 {{/code}}
183
184 Unit: milliseconds
185
186 * {{previous/}}: 79
187 * {{next/}}:
188
189 == SOLR ==
190
191 === Full SOLR reindex ===
192
193 Unit: seconds
194
195 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).
196
197 * {{previous/}}:
198 * {{next/}}:
199
200 === SOLR sync ===
201
202 Only the thread determining what need to be indexed and not the actual indexing.
203
204 ==== when index is empty ====
205
206 Unit: milliseconds
207
208 * {{previous/}}:
209 * {{next/}}:
210
211 ==== when there is nothing to do ====
212
213 Unit: milliseconds
214
215 * {{previous/}}:
216 * {{next/}}:
217
218 === Search ===
219
220 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).
221
222 Unit: milliseconds
223
224 ==== Result of search finding lots of results ====
225
226 Login with Admin user and make sure hidden document display is enabled.
227
228 {{code language="none"}}
229 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=*"
230 {{/code}}
231
232 * {{previous/}}: 171
233 * {{next/}}:
234
235 ==== Result of search finding one result ====
236
237 {{code language="none"}}
238 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"
239 {{/code}}
240
241 * {{previous/}}: 117
242 * {{next/}}:
243
244 == Rendering ==
245
246 === Page with 1000 macros without UI ===
247
248 {{code language="none"}}
249 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"
250 {{/code}}
251
252 Unit: milliseconds
253
254 * {{previous/}}: 91
255 * {{next/}}:
256
257 === Page with 1000 html macros without UI ===
258
259 {{code language="none"}}
260 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"
261 {{/code}}
262
263 Unit: milliseconds
264
265 * {{previous/}}: 680
266 * {{next/}}:
267
268 == Heap Memory ==
269
270 Attach Yourkit to get the information.
271
272 Unit: MB
273
274 === Heap Memory after jetty startup ===
275
276 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".
277
278 * {{previous/}}: used, allocated
279 * {{next/}}: used, allocated
280
281 === Heap Memory after full SOLR index ===
282
283 Delete the data/solr folder, restart, load home page then wait until nothing is happening in background. Force garbage collector before looking at "used".
284
285 Unit: MB
286
287 * {{previous/}}: used, allocated
288 * {{next/}}: used, allocated

Get Connected