<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 17, 2017 at 6:03 PM, Juan Hernández <span dir="ltr">&lt;<a href="mailto:jhernand@redhat.com" target="_blank">jhernand@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"><div class="HOEnZb"><div class="h5">On 01/17/2017 04:59 PM, Nicolas Ecarnot wrote:<br>
&gt; Le 17/01/2017 à 16:26, Juan Hernández a écrit :<br>
&gt;&gt; On 01/17/2017 03:56 PM, Nicolas Ecarnot wrote:<br>
&gt;&gt;&gt; Hello,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On a 3.6.5 DC, I&#39;m trying to figure out how many VMs there are, using<br>
&gt;&gt;&gt; two methods :<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _*Python SDK :*_<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; *from ovirtsdk.xml import params<br>
&gt;&gt;&gt; from ovirtsdk.api import API<br>
&gt;&gt;&gt; api = API(url=&#39;<a href="https://engine.fqdn/ovirt-engine/api" rel="noreferrer" target="_blank">https://engine.fqdn/<wbr>ovirt-engine/api</a>&#39;,<br>
&gt;&gt;&gt; username=&#39;admin@internal&#39;, password=&#39;xxx&#39;, insecure=True)<br>
&gt;&gt;&gt; print len(api.vms.list())*<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; time ./getMvm.py<br>
&gt;&gt;&gt; 62<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; real    0m23.016s<br>
&gt;&gt;&gt; user    0m22.288s<br>
&gt;&gt;&gt; sys    0m0.054s<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _*REST :*_<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; *time curl -H &quot;Version: 3&quot; -H &quot;Prefer: persistent-auth&quot; -H &quot;Filter:<br>
&gt;&gt;&gt; false&quot; -H &quot;Accept: application/xml&quot; -H &quot;Content-Type: application/xml&quot;<br>
&gt;&gt;&gt; -k -u &#39;admin@internal:xxx&#39; https://***engine.fqdn*/ovirt-<wbr>engine/api/vms*<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; (Then grep or anything that would get the values from the xml returned.)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; real    0m0.383s<br>
&gt;&gt;&gt; user    0m0.036s<br>
&gt;&gt;&gt; sys    0m0.038s<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I am a beginner in both methods, but I would prefer play with Python.<br>
&gt;&gt;&gt; I&#39;m very surprised to have to wait more than 20 seconds to get an<br>
&gt;&gt;&gt; answer.<br>
&gt;&gt;&gt; Looking at the engine log, I see that the authentication part is<br>
&gt;&gt;&gt; finished after say 3 seconds, then 20 seconds with absolutely no error<br>
&gt;&gt;&gt; message, no CPU load, no RAM burst, no nothing.<br>
&gt;&gt;&gt; On the SPM, exactly triple null nothing nada niet void is obviously<br>
&gt;&gt;&gt; explaining such a delay.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;m wondering if this super hyper sluggishness is somewhat related to<br>
&gt;&gt;&gt; the GUI global slowness I&#39;m experiencing like other users since we left<br>
&gt;&gt;&gt; 3.2.x, and I would love that some oVirt ninja uses the comparison above<br>
&gt;&gt;&gt; to tell what parts in oVirt is used or not that could explain such a<br>
&gt;&gt;&gt; difference (database, access to SPM, LVM, network access, whatever...)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; Nicolas ECARNOT<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; The performance problem is inside version 3 of the Python SDK. That is<br>
&gt;&gt; one of the reasons that we had to do a new version of the Python SDK for<br>
&gt;&gt; version 4 of the engine. If you are using version 4 of the engine then<br>
&gt;&gt; you can use version 4 of the SDK:<br>
&gt;&gt;<br>
&gt;&gt;   <a href="https://github.com/oVirt/ovirt-engine-sdk/tree/master/sdk" rel="noreferrer" target="_blank">https://github.com/oVirt/<wbr>ovirt-engine-sdk/tree/master/<wbr>sdk</a><br>
&gt;&gt;<br>
&gt;&gt; <a href="https://github.com/oVirt/ovirt-engine-sdk/blob/master/sdk/examples/list_vms.py" rel="noreferrer" target="_blank">https://github.com/oVirt/<wbr>ovirt-engine-sdk/blob/master/<wbr>sdk/examples/list_vms.py</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; It should be much faster. Would be nice if you can repeat your test and<br>
&gt;&gt; report the results.<br>
&gt;&gt;<br>
&gt;<br>
&gt; Hello Juan,<br>
&gt;<br>
&gt; Indeed, you were right. I tried the same from a recent server with a<br>
&gt; recent SDK, and I let you have a look :<br>
&gt;<br>
&gt; # rpm -q python-ovirt-engine-sdk4<br>
&gt; python-ovirt-engine-sdk4-4.0.<wbr>1-1.el7.centos.x86_64<br>
&gt;<br>
&gt; # time ./getMvm.py<br>
&gt; 62<br>
&gt;<br>
&gt; real    0m1.004s<br>
&gt; user    0m0.234s<br>
&gt; sys    0m0.031s<br>
&gt;<br>
&gt; And repeating the same test gives a very decent average, so thank you.<br>
&gt;<br>
<br>
</div></div>Twenty times faster, approx, good to know. Thanks. By the way, if you<br>
want even better performance, then make sure to disable debug and enable<br>
compression:<br>
<br>
  connection = sdk.Connection(<br>
    ...<br>
    debug=False,<br>
    compress=True,<br>
  )<br></blockquote><div><br></div><div>Shouldn&#39;t it be the default?</div><div>Y.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5"><br>
______________________________<wbr>_________________<br>
Users mailing list<br>
<a href="mailto:Users@ovirt.org">Users@ovirt.org</a><br>
<a href="http://lists.ovirt.org/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.ovirt.org/<wbr>mailman/listinfo/users</a><br>
</div></div></blockquote></div><br></div></div>