Show last authors
1 {{toc/}}
2
3 = Environment =
4
5 {{velocity}}
6 #if ($xcontext.action == 'edit')
7 ; Previous version
8 : $doc.next
9 ; Next version
10 : $doc.previous
11 #end
12 {{/velocity}}
13
14 * Ubuntu 15.04 64b
15 * Quad core i7-3630QM
16 * Oracle JDK 1.8.0_60 64b
17 * standard jetty+hsqldb
18 * permdir in a SSD
19 * only main wiki
20 * configuration
21 ** ##xwiki.cfg##:
22 *** ##xwiki.store.cache.capacity=500##
23 ** ##Admin user:##
24 *** ##hidden documents enabled##
25
26 Most response time statistics were 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 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.
35
36 Login with Admin uer:
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 = Summary =
43
44 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.
45
46 "(% style="color:orange" %)similar(%%)": difference is lower than 10%
47 "slightly": difference is lower than 20%
48
49 == Speed ==
50
51 |=(% colspan="2" %)Actions|=Difference
52 |(% colspan="2" %){{sl}}Jetty startup{{/sl}}|(% style="color:orange" %)similar\\
53 |(% rowspan="2" width="150" %){{sl}}First access{{/sl}}|(% width="300" %){{sl id="HFirstaccesstonotexistingpagewithoutUI"}}not existing page without UI{{/sl}}|(% style="color:orange" %)similar\\
54 |{{sl id="HFirstaccesstonotexistingpagewithUI"}}not existing page with UI{{/sl}}|(% style="color:OrangeRed" %)slightly slower
55 |(% rowspan="4" %){{sl}}Reload{{/sl}}|{{sl id="HReloadofnotexistingpagewithoutUI"}}not existing page without UI{{/sl}}|(% style="color:orange" %)similar\\
56 |{{sl id="HReloadofnotexistingpagewithUI"}}not existing page with UI{{/sl}}|(% style="color:orange" %)similar\\
57 |{{sl id="HReloadofMain.WebHomewithUI"}}Main.WebHome with UI{{/sl}}|(% style="color:orange" %)similar\\
58 |{{sl id="HReloadofMain.WebHomewithoutUI"}}Main.WebHome without UI{{/sl}}|(% style="color:lightgreen" %)slightly faster\\
59 |(% rowspan="5" %){{sl}}SOLR{{/sl}}|{{sl}}Full SOLR reindex{{/sl}}|(% style="color:orange" %)similar\\
60 |{{sl id="Hwhenindexisempty"}}SOLR sync when index is empty{{/sl}}|(% style="color:orange" %)similar\\
61 |{{sl id="Hwhenthereisnothingtodo"}}SOLR sync when there is nothing to do{{/sl}}|(% style="color:orange" %)similar\\
62 |{{sl}}Result of search finding lots of results{{/sl}}|(% style="color:OrangeRed" %)slightly slower\\
63 |{{sl}}Result of search finding one result{{/sl}}|(% style="color:orange" %)similar\\
64 |(% rowspan="2" %){{sl}}Rendering{{/sl}}|{{sl}}Page with 1000 macros without UI{{/sl}}|(% style="color:orange" %)similar\\
65 |{{sl}}Page with 1000 html macros without UI{{/sl}}|(% style="color:red" %)20% slower\\
66
67 == Memory ==
68
69 |=(% width="450" %)Actions|=Difference
70 |{{sl}}Memory after jetty startup{{/sl}}|(% style="color:orange" %)similar\\
71 |{{sl}}Memory after full SOLR index{{/sl}}|(% style="color:orange" %)similar\\
72
73 = Jetty startup =
74
75 Unit: seconds
76
77 Execute {{code language="shell"}}echo `date` && ./start_xwiki.sh{{/code}} and compare "Server started..." log date the one printed before jetty startup.
78
79 * {{previous/}}: 9
80 * {{next/}}: 10
81
82 = First access =
83
84 First HTTP request after restarting Jetty.
85
86 == First access to not existing page without UI ==
87
88 (/xwiki/bin/get/NoSpace/NoPage)
89
90 Unit: seconds
91
92 Firefox network statistics to load the root resource (image/js/css/etc. resources are not taken into account).
93
94 * {{previous/}}: 6
95 * {{next/}}: 6
96
97 == First access to not existing page with UI ==
98
99 (/xwiki/bin/view/NoSpace/NoPage)
100
101 Unit: seconds
102
103 Done by hand with a chronometer (image/js/css/etc. resources are not taken into account).
104
105 * {{previous/}}: 12
106 * {{next/}}: 14
107
108 = Reload =
109
110 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).
111
112 == Reload of not existing page without UI ==
113
114 {{code language="none"}}
115 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"
116 {{/code}}
117
118 Unit: milliseconds
119
120 * {{previous/}}: 6
121 * {{next/}}: 6
122
123 == Reload of not existing page with UI ==
124
125 {{code language="none"}}
126 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"
127 {{/code}}
128
129 Unit: milliseconds
130
131 * {{previous/}}: 52
132 * {{next/}}: 56
133
134 == Reload of Main.WebHome with UI ==
135
136 {{code language="none"}}
137 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"
138 {{/code}}
139
140 Unit: milliseconds
141
142 * {{previous/}}: 120
143 * {{next/}}: 115
144
145 == Reload of Main.WebHome without UI ==
146
147 {{code language="none"}}
148 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"
149 {{/code}}
150
151 Unit: milliseconds
152
153 * {{previous/}}: 60
154 * {{next/}}: 50
155
156 = SOLR =
157
158 == Full SOLR reindex ==
159
160 Unit: seconds
161
162 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).
163
164 * {{previous/}}: 70
165 * {{next/}}: 68
166
167 == SOLR sync ==
168
169 Only the thread determining what need to be indexed and not the actual indexing.
170
171 === when index is empty ===
172
173 Unit: seconds
174
175 * {{previous/}}: 1
176 * {{next/}}: 1
177
178 === when there is nothing to do ===
179
180 Unit: seconds
181
182 * {{previous/}}: < 1
183 * {{next/}}: < 1
184
185 == Search ==
186
187 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).
188
189 Unit: milliseconds
190
191 === Result of search finding lots of results ===
192
193 Login with Admin user and make sure hidden document display is enabled.
194
195 {{code language="none"}}
196 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=*"
197 {{/code}}
198
199 * {{previous/}}: 215
200 * {{next/}}: 233
201
202 === Result of search finding one result ===
203
204 {{code language="none"}}
205 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"
206 {{/code}}
207
208 * {{previous/}}: 140
209 * {{next/}}: 140
210
211 = Rendering =
212
213 == Page with 1000 macros without UI ==
214
215 [[1000 ~~{~~{id}} macros>>attach:Test.1000Macros.xar]].
216
217 {{code language="none"}}
218 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"
219 {{/code}}
220
221 Unit: milliseconds
222
223 * {{previous/}}: 82
224 * {{next/}}: 83
225
226 == Page with 1000 html macros without UI ==
227
228 [[1000 standalone ~~{~~{html}} macros>>attach:Test.1000HTMLMacros.xar]].
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/get/Test/1000HTMLMacros"
232 {{/code}}
233
234 Unit: milliseconds
235
236 * {{previous/}}: 700
237 * {{next/}}: 870
238
239 = Heap Memory =
240
241 Attach Yourkit to get the information.
242
243 Unit: MB
244
245 == Heap Memory after jetty startup ==
246
247 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.
248
249 * {{previous/}}: 40 used, 494 allocated
250 * {{next/}}: 45 used, 375 allocated
251
252 == Heap Memory after full SOLR index ==
253
254 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.
255
256 Unit: MB
257
258 * {{previous/}}: 144 used, 503 allocated
259 * {{next/}}: 145 used, 505 allocated

Get Connected