<div dir="ltr"><div><div>looks like great work has been done here.<br></div>following QE validation and internal customers input assuming feedback is very positive and regressions are covered , i would like to take this information to our customers.<br></div>would probably worth a post on rhev-tech. what are the exceptions for the performance boost due to the changes on 3.6 branch?<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 30, 2016 at 7:46 PM, Vojtech Szocs <span dir="ltr">&lt;<a href="mailto:vszocs@redhat.com" target="_blank">vszocs@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks Greg for the excellent write-up!<br>
<br>
oVirt WebAdmin UI is quite complex, with lots of abstractions (the GWT<br>
technology being a Java-on-top-of-Web-APIs abstraction itself) as well<br>
as many features (and lots of dialogs..) so this task wasn&#39;t easy, but<br>
I guess we managed to get UI into a stabilized state now.<br>
<br>
Dialogs (non-singleton by design) were a major source of memory leaks,<br>
so we added UI infra to ensure automatic dialog cleanup.<br>
<br>
In 4.2, we&#39;d like to upgrade GWT SDK version to latest stable (2.8.x)<br>
which will hopefully improve GWT compiler performance and, importantly,<br>
allow us to use Java 8 language features in our GWT UI code.<br>
<br>
There&#39;s still potential for improvement, we&#39;re tracking that through:<br>
<br>
  [tracker] oVirt UI performance improvements<br>
  <a href="https://bugzilla.redhat.com/1378935" rel="noreferrer" target="_blank">https://bugzilla.redhat.com/<wbr>1378935</a><br>
<br>
(some IE-specific improvements are already submitted as part of ^^)<br>
<br>
Regards,<br>
Vojtech<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
----- Original Message -----<br>
&gt; From: &quot;Greg Sheremeta&quot; &lt;<a href="mailto:gshereme@redhat.com">gshereme@redhat.com</a>&gt;<br>
&gt; To: &quot;devel&quot; &lt;<a href="mailto:devel@ovirt.org">devel@ovirt.org</a>&gt;<br>
&gt; Sent: Monday, November 28, 2016 7:43:27 PM<br>
&gt; Subject: [ovirt-devel] performance improvements and gwt-rpc switch<br>
&gt;<br>
&gt; Hi everyone,<br>
&gt;<br>
&gt; For the upcoming oVirt 4.1, the UX team has been focused hard on webadmin<br>
&gt; performance improvements. There have been some reports [1] [2] of UI<br>
&gt; sluggishness in both 3.6 and 4.0, usually after the browser had been open<br>
&gt; some time, and usually in scale environments.<br>
&gt;<br>
&gt; After some research, we determined that the primary cause of this<br>
&gt; sluggishness was memory leaks.<br>
&gt;<br>
&gt; We embarked on several weeks of hunting down memory leak bugs and squashing<br>
&gt; them. Alexander Wels and Vojtech Szocs led this work, and I helped test the<br>
&gt; performance of each patch as they created them. As they created patches to<br>
&gt; squash leaks, performance kept getting better and better. Today we&#39;ve merged<br>
&gt; the last of our patches [*], and I&#39;m happy to announce that we are now<br>
&gt; seeing much better UI performance on 4.1-master and 4.0.6.<br>
&gt;<br>
&gt; Over the course of several hours with the browser window open, users should<br>
&gt; see no sluggishness at all.<br>
&gt;<br>
&gt; [*] This last patch switches oVirt from using de-rpc to gwt-rpc in the<br>
&gt; frontend. This improves performance, but it also allows us to upgrade to GWT<br>
&gt; 2.8. We&#39;d been previously blocked on that.<br>
&gt;<br>
&gt; If you&#39;re interested in UI performance testing, continue reading. If not, you<br>
&gt; can stop here :)<br>
&gt;<br>
&gt; .....<br>
&gt;<br>
&gt; To verify our performance improvements, we took some simple measurements<br>
&gt; using selenium webdriver. The tests were unscientific, but very helpful. We<br>
&gt; ran a webdriver flow through oVirt that clicked some buttons and tabs and<br>
&gt; refreshed some grids. We did it a few hundred or thousand times. The tests<br>
&gt; were run using stubbed hosts (ovirt-vdsmfake) so that only the engine and UI<br>
&gt; were under test.<br>
&gt;<br>
&gt; Below are the important takeaways. The x axis is time, and each point on a<br>
&gt; graph is a loop through the same webdriver flow. The (ms) y axes are<br>
&gt; response times, and memory is in MB.<br>
&gt;<br>
&gt; In this graph, we compare oVirt 4.1 with and without our most impactful patch<br>
&gt; applied. As you can see, with the patch applied, response time stays flat<br>
&gt; for 200 loops of my test script over the course of 18 and 43 minutes.<br>
&gt; Without the patch applied, response time quickly degraded such that 200<br>
&gt; loops of my test script took 1 hr 2 minutes vs. 18 minutes with the patch<br>
&gt; applied -- a 66% improvement!<br>
&gt;<br>
</div></div><span class="im HOEnZb">&gt; In this graph [ignore the spike], we tested oVirt hard for 6 hours 25 minutes<br>
&gt; (2000 loops). As you can see, the response times stay relatively flat over 6<br>
&gt; hours! This is a great improvement. Do note that the memory is still<br>
&gt; growing, albeit much more slowly now. You can see towards the end of this<br>
&gt; run, maybe around hour 5, that the deviation starts to go up (the line<br>
&gt; thickens). Takeaway: maybe refresh your browser after many hours of having<br>
&gt; webadmin open. But, this is a stress test -- I&#39;m betting users won&#39;t notice<br>
&gt; this slowdown after even 6 hours of regular webadmin use or idling.<br>
&gt;<br>
&gt; ​<br>
</span><span class="im HOEnZb">&gt; Last, here is a graph that shows gwt-rpc performing slightly better than<br>
&gt; de-rpc. Memory consumption is about the same -- gwt-rpc is just a faster rpc<br>
&gt; implementation.<br>
&gt;<br>
&gt; ​<br>
</span><span class="im HOEnZb">&gt; Reply with any questions or concerns. Thanks!<br>
&gt;<br>
&gt; Best wishes,<br>
&gt; Greg<br>
&gt;<br>
&gt; [1] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1368101" rel="noreferrer" target="_blank">https://bugzilla.redhat.com/<wbr>show_bug.cgi?id=1368101</a><br>
&gt; [2] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1388462" rel="noreferrer" target="_blank">https://bugzilla.redhat.com/<wbr>show_bug.cgi?id=1388462</a><br>
&gt;<br>
&gt; --<br>
&gt; Greg Sheremeta, MBA<br>
&gt; Red Hat, Inc.<br>
&gt; Sr. Software Engineer<br>
&gt; <a href="mailto:gshereme@redhat.com">gshereme@redhat.com</a><br>
&gt;<br>
</span><div class="HOEnZb"><div class="h5">&gt; ______________________________<wbr>_________________<br>
&gt; Devel mailing list<br>
&gt; <a href="mailto:Devel@ovirt.org">Devel@ovirt.org</a><br>
&gt; <a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/<wbr>mailman/listinfo/devel</a><br>
______________________________<wbr>_________________<br>
Devel mailing list<br>
<a href="mailto:Devel@ovirt.org">Devel@ovirt.org</a><br>
<a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/<wbr>mailman/listinfo/devel</a></div></div></blockquote></div><br></div>