
------=_Part_23935490_2012384362.1403872214216 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi, Due to the recent discussion (http://gerrit.ovirt.org/#/c/28712/), and as part of the ongoing focus on scalability and performances (http://gerrit.ovirt.org/#/c/17694/ and many others), I took the chance to do a very quick and dirty bench to see how it really cost to do XML processing in sampling threads (thanks to Nir for the kickstart!), and, in general, how much the XML processing costs. Please find attached the test script and the example XML (real one made by VDSM master on my RHEL6.5 box). On my laptop: $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 58 Model name: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz Stepping: 9 CPU MHz: 1359.375 CPU max MHz: 3600.0000 CPU min MHz: 1200.0000 BogoMIPS: 5786.91 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 4096K NUMA node0 CPU(s): 0-3 8 GiBs of RAM, running GNOME desktop and the usual development stuff xmlbench.py linuxvm1.xml MODE 300 MODE is either 'md' (minidom) or 'cet' (cElementTree). This will run $NUMTHREADS threads fast and loose without synchronization. We can actually have this behaviour if a customer just mass start VMs. In general I expect some clustering of the sampling activity, not a nice evenly interleaved time sequence. CPU measurement: just opened a terminal and run 'htop' on it. CPU profile: clustered around the sampling interval. Usage negligible most of time, peak on sampling as shown below 300 VMs minidom: ~38% CPU cElementTree: ~5% CPU 500 VMs minidom: ~48% CPU cElementTree: ~6% CPU 1000 VMs python thread error :) File "/usr/lib64/python2.7/threading.py", line 746, in start _start_new_thread(self.__bootstrap, ()) thread.error: can't start new thread I think this is another proof (if we need more of them) that * we _really need_ to move away from the 1 thread per VM model -> http://gerrit.ovirt.org/#/c/29189/ and friends! Let's fire up the discussion! * we should move to cElementTree anyway in the near future: faster processing, scales better, nicer API. It is also a pet peeve of mine, I do have some patches floating but we need still some preparation work in the virt package. -- Francesco Romani RedHat Engineering Virtualization R & D Phone: 8261328 IRC: fromani ------=_Part_23935490_2012384362.1403872214216 Content-Type: text/x-python; name=xmlbench.py Content-Disposition: attachment; filename=xmlbench.py Content-Transfer-Encoding: base64 IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCgppbXBvcnQgc3lzCmltcG9ydCB0aHJlYWRpbmcKaW1wb3J0 IHRpbWUKI2ltcG9ydCBseG1sLmV0cmVlCmltcG9ydCB4bWwuZG9tLm1pbmlkb20KaW1wb3J0IHht bC5ldHJlZS5jRWxlbWVudFRyZWUKaW1wb3J0IHhtbC5ldHJlZS5FbGVtZW50VHJlZQoKCmNsYXNz IFdvcmtlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jLCB4 bWwsIGRlbGF5LCBudW1ydW5zKToKICAgICAgICBzdXBlcihXb3JrZXIsIHNlbGYpLl9faW5pdF9f KCkKICAgICAgICBzZWxmLmRhZW1vbiA9IFRydWUKICAgICAgICBzZWxmLmZ1bmMgPSBmdW5jCiAg ICAgICAgc2VsZi54bWwgPSB4bWwKICAgICAgICBzZWxmLmRlbGF5ID0gZGVsYXkKICAgICAgICBz ZWxmLm51bXJ1bnMgPSBudW1ydW5zCgogICAgZGVmIG11c3RnbyhzZWxmKToKICAgICAgICBpZiBz ZWxmLm51bXJ1bnMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIHNlbGYubnVtcnVucyAtPSAxCiAg ICAgICAgICAgIGlmIHNlbGYubnVtcnVucyA8PSAwOgogICAgICAgICAgICAgICAgcmV0dXJuIEZh bHNlCiAgICAgICAgcmV0dXJuIFRydWUKCiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIHByaW50 ICclcyBkZWxheT0laSBzdGFydGluZyEnICUoc2VsZi5uYW1lLCBzZWxmLmRlbGF5KQogICAgICAg IHdoaWxlIHNlbGYubXVzdGdvKCk6CiAgICAgICAgICAgIHRpbWUuc2xlZXAoc2VsZi5kZWxheSkK ICAgICAgICAgICAgcHJpbnQgJyVzIGdvJyAlKHNlbGYubmFtZSkKICAgICAgICAgICAgc2VsZi5m dW5jKHNlbGYueG1sKQogICAgICAgIHByaW50ICclcyBkb25lIScgJShzZWxmLm5hbWUpCgoKUEFS U0VSUyA9IHsKICAgICdtZCc6IHhtbC5kb20ubWluaWRvbS5wYXJzZVN0cmluZywKIyAgICAnbHgn OiBseG1sLmV0cmVlLmZyb21zdHJpbmcsCiAgICAnZXQnOiB4bWwuZXRyZWUuRWxlbWVudFRyZWUu ZnJvbXN0cmluZywKICAgICdjZXQnOiB4bWwuZXRyZWUuY0VsZW1lbnRUcmVlLmZyb21zdHJpbmcK fQoKCmRlZiBydW5uZXIoeG1sLCBtb2RlLCBudGhyZWFkcywgZGVsYXksIG51bXJ1bnMpOgogICAg d29ya2VycyA9IFtdCiAgICBmb3IgaSBpbiByYW5nZShudGhyZWFkcyk6CiAgICAgICAgdyA9IFdv cmtlcihQQVJTRVJTW21vZGVdLCB4bWwsIGRlbGF5LCBudW1ydW5zKQogICAgICAgIHcuc3RhcnQo KQogICAgICAgIHdvcmtlcnMuYXBwZW5kKHcpCgogICAgaWYgbnVtcnVucyBpcyBOb25lOgogICAg ICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgIHRpbWUuc2xlZXAoMS4wKQogICAgZWxzZToKICAg ICAgICBmb3IgdyBpbiB3b3JrZXJzOgogICAgICAgICAgICB3LmpvaW4oKQoKCmRlZiBfdXNhZ2Uo KToKICAgIHByaW50ICJ1c2FnZTogeG1sYmVuY2ggeG1scGF0aCBtb2RlIG50aHJlYWRzIFtkZWxh eSBbbnVtcnVuc11dIgogICAgcHJpbnQgImF2YWlsYWJsZSBtb2RlczogJXMiICUgJyAnLmpvaW4o UEFSU0VSUy5rZXlzKCkpCgpkZWYgX21haW4oYXJncyk6CiAgICBpZiBsZW4oYXJncykgPCAzOgog ICAgICAgIF91c2FnZSgpCiAgICAgICAgc3lzLmV4aXQoMSkKICAgIGVsc2U6CiAgICAgICAgeG1s cGF0aCA9IGFyZ3NbMF0KICAgICAgICBtb2RlID0gYXJnc1sxXQogICAgICAgIG50aHJlYWRzID0g aW50KGFyZ3NbMl0pCiAgICAgICAgZGVsYXkgPSBpbnQoYXJnc1szXSkgaWYgbGVuKGFyZ3MpID4g MyBlbHNlIDE1CiAgICAgICAgbnVtcnVucyA9IGFyZ3NbNF0gaWYgbGVuKGFyZ3MpID4gNCBlbHNl IE5vbmUKICAgICAgICBpZiBtb2RlIG5vdCBpbiBQQVJTRVJTOgogICAgICAgICAgICBfdXNhZ2Uo KQogICAgICAgICAgICBzeXMuZXhpdCgyKQogICAgICAgIHdpdGggb3Blbih4bWxwYXRoLCAncnQn KSBhcyB4bWw6CiAgICAgICAgICAgIHJ1bm5lcih4bWwucmVhZCgpLCBtb2RlLCBudGhyZWFkcywg ZGVsYXksIG51bXJ1bnMpCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgX21haW4oc3lz LmFyZ3ZbMTpdKQo= ------=_Part_23935490_2012384362.1403872214216 Content-Type: application/xml; name=linuxvm1.xml Content-Disposition: attachment; filename=linuxvm1.xml Content-Transfer-Encoding: base64 PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGRvbWFpbiB0eXBlPSJrdm0i PgogICAgICAgIDxuYW1lPkYyMF9DMTwvbmFtZT4KICAgICAgICA8dXVpZD41NmQxYzY1Ny1kZDc2 LTQ2MDktYTIwNy1jMDUwNjk5YmU1YmU8L3V1aWQ+CiAgICAgICAgPG1lbW9yeT40MTk0MzA0PC9t ZW1vcnk+CiAgICAgICAgPGN1cnJlbnRNZW1vcnk+NDE5NDMwNDwvY3VycmVudE1lbW9yeT4KICAg ICAgICA8dmNwdSBjdXJyZW50PSIyIj4xNjA8L3ZjcHU+CiAgICAgICAgPG1lbXR1bmU+CiAgICAg ICAgICAgICAgICA8bWluX2d1YXJhbnRlZT4yMDk3MTUyPC9taW5fZ3VhcmFudGVlPgogICAgICAg IDwvbWVtdHVuZT4KICAgICAgICA8ZGV2aWNlcz4KICAgICAgICAgICAgICAgIDxjaGFubmVsIHR5 cGU9InVuaXgiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGFyZ2V0IG5hbWU9ImNvbS5yZWRo YXQucmhldm0udmRzbSIgdHlwZT0idmlydGlvIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxz b3VyY2UgbW9kZT0iYmluZCIgcGF0aD0iL3Zhci9saWIvbGlidmlydC9xZW11L2NoYW5uZWxzLzU2 ZDFjNjU3LWRkNzYtNDYwOS1hMjA3LWMwNTA2OTliZTViZS5jb20ucmVkaGF0LnJoZXZtLnZkc20i Lz4KICAgICAgICAgICAgICAgIDwvY2hhbm5lbD4KICAgICAgICAgICAgICAgIDxjaGFubmVsIHR5 cGU9InVuaXgiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGFyZ2V0IG5hbWU9Im9yZy5xZW11 Lmd1ZXN0X2FnZW50LjAiIHR5cGU9InZpcnRpbyIvPgogICAgICAgICAgICAgICAgICAgICAgICA8 c291cmNlIG1vZGU9ImJpbmQiIHBhdGg9Ii92YXIvbGliL2xpYnZpcnQvcWVtdS9jaGFubmVscy81 NmQxYzY1Ny1kZDc2LTQ2MDktYTIwNy1jMDUwNjk5YmU1YmUub3JnLnFlbXUuZ3Vlc3RfYWdlbnQu MCIvPgogICAgICAgICAgICAgICAgPC9jaGFubmVsPgogICAgICAgICAgICAgICAgPGlucHV0IGJ1 cz0icHMyIiB0eXBlPSJtb3VzZSIvPgogICAgICAgICAgICAgICAgPG1lbWJhbGxvb24gbW9kZWw9 InZpcnRpbyIvPgogICAgICAgICAgICAgICAgPHZpZGVvPgogICAgICAgICAgICAgICAgICAgICAg ICA8YWRkcmVzcyBidXM9IjB4MDAiIGRvbWFpbj0iMHgwMDAwIiBmdW5jdGlvbj0iMHgwIiBzbG90 PSIweDAyIiB0eXBlPSJwY2kiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGVsIGhlYWRz PSIxIiB0eXBlPSJxeGwiIHZyYW09IjMyNzY4Ii8+CiAgICAgICAgICAgICAgICA8L3ZpZGVvPgog ICAgICAgICAgICAgICAgPGdyYXBoaWNzIGF1dG9wb3J0PSJ5ZXMiIGtleW1hcD0iZW4tdXMiIHBh c3N3ZD0iKioqKioiIHBhc3N3ZFZhbGlkVG89IjE5NzAtMDEtMDFUMDA6MDA6MDEiIHBvcnQ9Ii0x IiB0bHNQb3J0PSItMSIgdHlwZT0ic3BpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGlz dGVuIG5ldHdvcms9InZkc20tb3ZpcnRtZ210IiB0eXBlPSJuZXR3b3JrIi8+CiAgICAgICAgICAg ICAgICA8L2dyYXBoaWNzPgogICAgICAgICAgICAgICAgPGludGVyZmFjZSB0eXBlPSJicmlkZ2Ui PgogICAgICAgICAgICAgICAgICAgICAgICA8YWRkcmVzcyBidXM9IjB4MDAiIGRvbWFpbj0iMHgw MDAwIiBmdW5jdGlvbj0iMHgwIiBzbG90PSIweDAzIiB0eXBlPSJwY2kiLz4KICAgICAgICAgICAg ICAgICAgICAgICAgPG1hYyBhZGRyZXNzPSIwMDoxYTo0YTpjNzoyMjoxNyIvPgogICAgICAgICAg ICAgICAgICAgICAgICA8bW9kZWwgdHlwZT0idmlydGlvIi8+CiAgICAgICAgICAgICAgICAgICAg ICAgIDxzb3VyY2UgYnJpZGdlPSJvdmlydG1nbXQiLz4KICAgICAgICAgICAgICAgICAgICAgICAg PGZpbHRlcnJlZiBmaWx0ZXI9InZkc20tbm8tbWFjLXNwb29maW5nIi8+CiAgICAgICAgICAgICAg ICAgICAgICAgIDxsaW5rIHN0YXRlPSJ1cCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8Ym9v dCBvcmRlcj0iMiIvPgogICAgICAgICAgICAgICAgICAgICAgICA8YmFuZHdpZHRoLz4KICAgICAg ICAgICAgICAgIDwvaW50ZXJmYWNlPgogICAgICAgICAgICAgICAgPGRpc2sgZGV2aWNlPSJjZHJv bSIgc25hcHNob3Q9Im5vIiB0eXBlPSJmaWxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGFk ZHJlc3MgYnVzPSIxIiBjb250cm9sbGVyPSIwIiB0YXJnZXQ9IjAiIHR5cGU9ImRyaXZlIiB1bml0 PSIwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgZmlsZT0iIiBzdGFydHVwUG9s aWN5PSJvcHRpb25hbCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8dGFyZ2V0IGJ1cz0iaWRl IiBkZXY9ImhkYyIvPgogICAgICAgICAgICAgICAgICAgICAgICA8cmVhZG9ubHkvPgogICAgICAg ICAgICAgICAgICAgICAgICA8c2VyaWFsLz4KICAgICAgICAgICAgICAgIDwvZGlzaz4KICAgICAg ICAgICAgICAgIDxkaXNrIGRldmljZT0iZGlzayIgc25hcHNob3Q9Im5vIiB0eXBlPSJibG9jayI+ CiAgICAgICAgICAgICAgICAgICAgICAgIDxhZGRyZXNzIGJ1cz0iMHgwMCIgZG9tYWluPSIweDAw MDAiIGZ1bmN0aW9uPSIweDAiIHNsb3Q9IjB4MDUiIHR5cGU9InBjaSIvPgogICAgICAgICAgICAg ICAgICAgICAgICA8c291cmNlIGRldj0iL3JoZXYvZGF0YS1jZW50ZXIvbW50L2Jsb2NrU0QvOGNl YjgzOGEtNGU3NC00MjBkLWIxZTItODE3YzBlOWY4ZWVhL2ltYWdlcy9kNWVkMjZkNS0zZDM1LTRl ZjgtYjUyYy1hNjVkOTllMTJhZDAvZGZmNjMxY2YtMTM1OC00Yjc0LTk3MzItNTYwODMyNjM0ODEw Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YXJnZXQgYnVzPSJ2aXJ0aW8iIGRldj0idmRh Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZXJpYWw+ZDVlZDI2ZDUtM2QzNS00ZWY4LWI1 MmMtYTY1ZDk5ZTEyYWQwPC9zZXJpYWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxib290IG9y ZGVyPSIxIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkcml2ZXIgY2FjaGU9Im5vbmUiIGVy cm9yX3BvbGljeT0ic3RvcCIgaW89Im5hdGl2ZSIgbmFtZT0icWVtdSIgdHlwZT0icWNvdzIiLz4K ICAgICAgICAgICAgICAgIDwvZGlzaz4KICAgICAgICAgICAgICAgIDxjaGFubmVsIHR5cGU9InNw aWNldm1jIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRhcmdldCBuYW1lPSJjb20ucmVkaGF0 LnNwaWNlLjAiIHR5cGU9InZpcnRpbyIvPgogICAgICAgICAgICAgICAgPC9jaGFubmVsPgogICAg ICAgIDwvZGV2aWNlcz4KICAgICAgICA8b3M+CiAgICAgICAgICAgICAgICA8dHlwZSBhcmNoPSJ4 ODZfNjQiIG1hY2hpbmU9InJoZWw2LjUuMCI+aHZtPC90eXBlPgogICAgICAgICAgICAgICAgPHNt YmlvcyBtb2RlPSJzeXNpbmZvIi8+CiAgICAgICAgPC9vcz4KICAgICAgICA8c3lzaW5mbyB0eXBl PSJzbWJpb3MiPgogICAgICAgICAgICAgICAgPHN5c3RlbT4KICAgICAgICAgICAgICAgICAgICAg ICAgPGVudHJ5IG5hbWU9Im1hbnVmYWN0dXJlciI+b1ZpcnQ8L2VudHJ5PgogICAgICAgICAgICAg ICAgICAgICAgICA8ZW50cnkgbmFtZT0icHJvZHVjdCI+b1ZpcnQgTm9kZTwvZW50cnk+CiAgICAg ICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJ2ZXJzaW9uIj42U2VydmVyLTYuNS4wLjEu ZWw2PC9lbnRyeT4KICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InNlcmlhbCI+ NEM0QzQ1NDQtMDA1OS00NDEwLTgwNDMtQjZDMDRGNEU1QTMxXzEwOmZlOmVkOjAyOjAyOmU0PC9l bnRyeT4KICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InV1aWQiPjU2ZDFjNjU3 LWRkNzYtNDYwOS1hMjA3LWMwNTA2OTliZTViZTwvZW50cnk+CiAgICAgICAgICAgICAgICA8L3N5 c3RlbT4KICAgICAgICA8L3N5c2luZm8+CiAgICAgICAgPGNsb2NrIGFkanVzdG1lbnQ9IjAiIG9m ZnNldD0idmFyaWFibGUiPgogICAgICAgICAgICAgICAgPHRpbWVyIG5hbWU9InJ0YyIgdGlja3Bv bGljeT0iY2F0Y2h1cCIvPgogICAgICAgICAgICAgICAgPHRpbWVyIG5hbWU9InBpdCIgdGlja3Bv bGljeT0iZGVsYXkiLz4KICAgICAgICAgICAgICAgIDx0aW1lciBuYW1lPSJocGV0IiBwcmVzZW50 PSJubyIvPgogICAgICAgIDwvY2xvY2s+CiAgICAgICAgPGZlYXR1cmVzPgogICAgICAgICAgICAg ICAgPGFjcGkvPgogICAgICAgIDwvZmVhdHVyZXM+CiAgICAgICAgPGNwdSBtYXRjaD0iZXhhY3Qi PgogICAgICAgICAgICAgICAgPG1vZGVsPlNhbmR5QnJpZGdlPC9tb2RlbD4KICAgICAgICAgICAg ICAgIDx0b3BvbG9neSBjb3Jlcz0iMSIgc29ja2V0cz0iMTYwIiB0aHJlYWRzPSIxIi8+CiAgICAg ICAgPC9jcHU+CjwvZG9tYWluPgo= ------=_Part_23935490_2012384362.1403872214216--

Of course this is VDSM-only, I tend to forget the tag, sorry. Bests, ----- Original Message -----
From: "Francesco Romani" <fromani@redhat.com> To: devel@ovirt.org Sent: Friday, June 27, 2014 2:30:14 PM Subject: [ovirt-devel] XML benchmarks
Hi,
Due to the recent discussion (http://gerrit.ovirt.org/#/c/28712/), and as part of the ongoing focus on scalability and performances (http://gerrit.ovirt.org/#/c/17694/ and many others),
I took the chance to do a very quick and dirty bench to see how it really cost to do XML processing in sampling threads (thanks to Nir for the kickstart!), and, in general, how much the XML processing costs.
Please find attached the test script and the example XML (real one made by VDSM master on my RHEL6.5 box).
On my laptop:
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 58 Model name: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz Stepping: 9 CPU MHz: 1359.375 CPU max MHz: 3600.0000 CPU min MHz: 1200.0000 BogoMIPS: 5786.91 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 4096K NUMA node0 CPU(s): 0-3
8 GiBs of RAM, running GNOME desktop and the usual development stuff
xmlbench.py linuxvm1.xml MODE 300
MODE is either 'md' (minidom) or 'cet' (cElementTree). This will run $NUMTHREADS threads fast and loose without synchronization. We can actually have this behaviour if a customer just mass start VMs. In general I expect some clustering of the sampling activity, not a nice evenly interleaved time sequence.
CPU measurement: just opened a terminal and run 'htop' on it. CPU profile: clustered around the sampling interval. Usage negligible most of time, peak on sampling as shown below
300 VMs minidom: ~38% CPU cElementTree: ~5% CPU
500 VMs minidom: ~48% CPU cElementTree: ~6% CPU
1000 VMs python thread error :)
File "/usr/lib64/python2.7/threading.py", line 746, in start _start_new_thread(self.__bootstrap, ()) thread.error: can't start new thread
I think this is another proof (if we need more of them) that * we _really need_ to move away from the 1 thread per VM model -> http://gerrit.ovirt.org/#/c/29189/ and friends! Let's fire up the discussion! * we should move to cElementTree anyway in the near future: faster processing, scales better, nicer API. It is also a pet peeve of mine, I do have some patches floating but we need still some preparation work in the virt package.
-- Francesco Romani RedHat Engineering Virtualization R & D Phone: 8261328 IRC: fromani
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel
-- Francesco Romani RedHat Engineering Virtualization R & D Phone: 8261328 IRC: fromani

----- Original Message -----
From: "Francesco Romani" <fromani@redhat.com> To: devel@ovirt.org Sent: Friday, June 27, 2014 2:43:01 PM Subject: [ovirt-devel] [VDSM] Re: XML benchmarks
Of course this is VDSM-only, I tend to forget the tag, sorry.
Bests,
----- Original Message -----
From: "Francesco Romani" <fromani@redhat.com> To: devel@ovirt.org Sent: Friday, June 27, 2014 2:30:14 PM Subject: [ovirt-devel] XML benchmarks
Hi,
Due to the recent discussion (http://gerrit.ovirt.org/#/c/28712/), and as part of the ongoing focus on scalability and performances (http://gerrit.ovirt.org/#/c/17694/ and many others),
I took the chance to do a very quick and dirty bench to see how it really cost to do XML processing in sampling threads (thanks to Nir for the kickstart!), and, in general, how much the XML processing costs.
Please find attached the test script and the example XML (real one made by VDSM master on my RHEL6.5 box).
On my laptop:
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 58 Model name: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz Stepping: 9 CPU MHz: 1359.375 CPU max MHz: 3600.0000 CPU min MHz: 1200.0000 BogoMIPS: 5786.91 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 4096K NUMA node0 CPU(s): 0-3
8 GiBs of RAM, running GNOME desktop and the usual development stuff
xmlbench.py linuxvm1.xml MODE 300
MODE is either 'md' (minidom) or 'cet' (cElementTree). This will run $NUMTHREADS threads fast and loose without synchronization. We can actually have this behaviour if a customer just mass start VMs. In general I expect some clustering of the sampling activity, not a nice evenly interleaved time sequence.
CPU measurement: just opened a terminal and run 'htop' on it. CPU profile: clustered around the sampling interval. Usage negligible most of time, peak on sampling as shown below
300 VMs minidom: ~38% CPU cElementTree: ~5% CPU
500 VMs minidom: ~48% CPU cElementTree: ~6% CPU
1000 VMs python thread error :)
File "/usr/lib64/python2.7/threading.py", line 746, in start _start_new_thread(self.__bootstrap, ()) thread.error: can't start new thread
I think this is another proof (if we need more of them) that * we _really need_ to move away from the 1 thread per VM model -> http://gerrit.ovirt.org/#/c/29189/ and friends! Let's fire up the discussion!
I'm all for this.
* we should move to cElementTree anyway in the near future: faster processing, scales better, nicer API. It is also a pet peeve of mine, I do have some patches floating but we need still some preparation work in the virt package.
Agreed!
-- Francesco Romani RedHat Engineering Virtualization R & D Phone: 8261328 IRC: fromani
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel
-- Francesco Romani RedHat Engineering Virtualization R & D Phone: 8261328 IRC: fromani _______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel

On Fri, Jun 27, 2014 at 08:43:01AM -0400, Francesco Romani wrote:
1000 VMs python thread error :)
File "/usr/lib64/python2.7/threading.py", line 746, in start _start_new_thread(self.__bootstrap, ()) thread.error: can't start new thread
I think this is another proof (if we need more of them) that * we _really need_ to move away from the 1 thread per VM model -> http://gerrit.ovirt.org/#/c/29189/ and friends! Let's fire up the discussion!
True, but it's interesting to understand what is the limit that you have banged into. Not enough PIDs? Memory?

----- Original Message -----
From: "Dan Kenigsberg" <danken@redhat.com> To: "Francesco Romani" <fromani@redhat.com> Cc: devel@ovirt.org Sent: Friday, June 27, 2014 4:41:25 PM Subject: Re: [ovirt-devel] [VDSM] Re: XML benchmarks
On Fri, Jun 27, 2014 at 08:43:01AM -0400, Francesco Romani wrote:
1000 VMs python thread error :)
File "/usr/lib64/python2.7/threading.py", line 746, in start _start_new_thread(self.__bootstrap, ()) thread.error: can't start new thread
I think this is another proof (if we need more of them) that * we _really need_ to move away from the 1 thread per VM model -> http://gerrit.ovirt.org/#/c/29189/ and friends! Let's fire up the discussion!
True, but it's interesting to understand what is the limit that you have banged into. Not enough PIDs? Memory?
Good point. Will investigate a bit more and report the results. -- Francesco Romani RedHat Engineering Virtualization R & D Phone: 8261328 IRC: fromani

----- Original Message -----
From: "Francesco Romani" <fromani@redhat.com> To: devel@ovirt.org Sent: Friday, June 27, 2014 3:30:14 PM Subject: [ovirt-devel] XML benchmarks
Hi,
Due to the recent discussion (http://gerrit.ovirt.org/#/c/28712/), and as part of the ongoing focus on scalability and performances (http://gerrit.ovirt.org/#/c/17694/ and many others),
I took the chance to do a very quick and dirty bench to see how it really cost to do XML processing in sampling threads (thanks to Nir for the kickstart!), and, in general, how much the XML processing costs.
Please find attached the test script and the example XML (real one made by VDSM master on my RHEL6.5 box).
On my laptop:
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 58 Model name: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz Stepping: 9 CPU MHz: 1359.375 CPU max MHz: 3600.0000 CPU min MHz: 1200.0000 BogoMIPS: 5786.91 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 4096K NUMA node0 CPU(s): 0-3
8 GiBs of RAM, running GNOME desktop and the usual development stuff
xmlbench.py linuxvm1.xml MODE 300
MODE is either 'md' (minidom) or 'cet' (cElementTree). This will run $NUMTHREADS threads fast and loose without synchronization. We can actually have this behaviour if a customer just mass start VMs. In general I expect some clustering of the sampling activity, not a nice evenly interleaved time sequence.
CPU measurement: just opened a terminal and run 'htop' on it. CPU profile: clustered around the sampling interval. Usage negligible most of time, peak on sampling as shown below
300 VMs minidom: ~38% CPU cElementTree: ~5% CPU
What is 38% - (38% of one core? how may cores are on the machine?)
500 VMs minidom: ~48% CPU cElementTree: ~6% CPU
1000 VMs python thread error :)
File "/usr/lib64/python2.7/threading.py", line 746, in start _start_new_thread(self.__bootstrap, ()) thread.error: can't start new thread
I think this is another proof (if we need more of them) that * we _really need_ to move away from the 1 thread per VM model -> http://gerrit.ovirt.org/#/c/29189/ and friends! Let's fire up the discussion! * we should move to cElementTree anyway in the near future: faster processing, scales better, nicer API. It is also a pet peeve of mine, I do have some patches floating but we need still some preparation work in the virt package.
Seeing this load created by parsing libvirt xml every 15 seconds, I think we should consider decreasing the sample rate suggested in http://gerrit.ovirt.org/28712 Or collecting the data in another way. Nir

----- Original Message -----
From: "Nir Soffer" <nsoffer@redhat.com> To: "Francesco Romani" <fromani@redhat.com> Cc: devel@ovirt.org, "Martin Sivak" <msivak@redhat.com> Sent: Sunday, June 29, 2014 10:34:08 AM Subject: Re: [ovirt-devel] XML benchmarks
CPU measurement: just opened a terminal and run 'htop' on it. CPU profile: clustered around the sampling interval. Usage negligible most of time, peak on sampling as shown below
300 VMs minidom: ~38% CPU cElementTree: ~5% CPU
What is 38% - (38% of one core? how may cores are on the machine?)
4 cores: 2 physical, 2 logical. I'm prepping a more precise test using a better and less ambiguous indicator.
Seeing this load created by parsing libvirt xml every 15 seconds, I think we should consider decreasing the sample rate suggested in http://gerrit.ovirt.org/28712 Or collecting the data in another way.
To collect the data in another way, maybe just after the event which will trigger the change would be the best way. As last resort, to move te code to use cElementTree. Bests, -- Francesco Romani RedHat Engineering Virtualization R & D Phone: 8261328 IRC: fromani

------=_Part_233010_1164979986.1404119674471 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit ----- Original Message -----
From: "Francesco Romani" <fromani@redhat.com> To: "Nir Soffer" <nsoffer@redhat.com> Cc: devel@ovirt.org Sent: Monday, June 30, 2014 8:47:15 AM Subject: Re: [ovirt-devel] XML benchmarks
----- Original Message -----
From: "Nir Soffer" <nsoffer@redhat.com> To: "Francesco Romani" <fromani@redhat.com> Cc: devel@ovirt.org, "Martin Sivak" <msivak@redhat.com> Sent: Sunday, June 29, 2014 10:34:08 AM Subject: Re: [ovirt-devel] XML benchmarks
CPU measurement: just opened a terminal and run 'htop' on it. CPU profile: clustered around the sampling interval. Usage negligible most of time, peak on sampling as shown below
300 VMs minidom: ~38% CPU cElementTree: ~5% CPU
What is 38% - (38% of one core? how may cores are on the machine?)
4 cores: 2 physical, 2 logical. I'm prepping a more precise test using a better and less ambiguous indicator.
Here. Attached un updated script (xmlbench2.py) which uses 'psutil' (https://pypi.python.org/pypi/psutil) to gather the samples. CPU sampled each 500ms (half a second). 100% is one core. My laptop reports 4 core (dualcore with hyperthreading). See attached some graphs for easier comsumption and their gnuplot recipe. cpu_300t_3m.png: load using the test script with 300 threads, each thread runs ~3 minutes cpu_500t_3m.png: load using the test script with 500 threads, each thread runs ~3 minutes sampling is not really accurate but it is more than enough to get an idea. -- Francesco Romani RedHat Engineering Virtualization R & D Phone: 8261328 IRC: fromani ------=_Part_233010_1164979986.1404119674471 Content-Type: text/x-python; name=xmlbench2.py Content-Disposition: attachment; filename=xmlbench2.py Content-Transfer-Encoding: base64 IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCgppbXBvcnQgc3lzCmltcG9ydCB0aHJlYWRpbmcKaW1wb3J0 IHRpbWUKaW1wb3J0IHhtbC5kb20ubWluaWRvbQppbXBvcnQgeG1sLmV0cmVlLmNFbGVtZW50VHJl ZQppbXBvcnQgeG1sLmV0cmVlLkVsZW1lbnRUcmVlCgppbXBvcnQgcHN1dGlsCgoKZGVmIGVwcmlu dChzKToKICAgIHN5cy5zdGRlcnIud3JpdGUoJyVzXG4nICUgcykKCgpjbGFzcyBXb3JrZXIodGhy ZWFkaW5nLlRocmVhZCk6CiAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuYywgeG1sLCBkZWxheSwg bnVtcnVucyk6CiAgICAgICAgc3VwZXIoV29ya2VyLCBzZWxmKS5fX2luaXRfXygpCiAgICAgICAg c2VsZi5kYWVtb24gPSBUcnVlCiAgICAgICAgc2VsZi5mdW5jID0gZnVuYwogICAgICAgIHNlbGYu eG1sID0geG1sCiAgICAgICAgc2VsZi5kZWxheSA9IGRlbGF5CiAgICAgICAgc2VsZi5udW1ydW5z ID0gbnVtcnVucwoKICAgIGRlZiBtdXN0Z28oc2VsZik6CiAgICAgICAgaWYgc2VsZi5udW1ydW5z IGlzIG5vdCBOb25lOgogICAgICAgICAgICBzZWxmLm51bXJ1bnMgLT0gMQogICAgICAgICAgICBp ZiBzZWxmLm51bXJ1bnMgPD0gMDoKICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAg IHJldHVybiBUcnVlCgogICAgZGVmIHJ1bihzZWxmKToKICAgICAgICB3aGlsZSBzZWxmLm11c3Rn bygpOgogICAgICAgICAgICB0aW1lLnNsZWVwKHNlbGYuZGVsYXkpCiAgICAgICAgICAgIHNlbGYu ZnVuYyhzZWxmLnhtbCkKCgpQQVJTRVJTID0gewogICAgJ21kJzogeG1sLmRvbS5taW5pZG9tLnBh cnNlU3RyaW5nLAogICAgJ2V0JzogeG1sLmV0cmVlLkVsZW1lbnRUcmVlLmZyb21zdHJpbmcsCiAg ICAnY2V0JzogeG1sLmV0cmVlLmNFbGVtZW50VHJlZS5mcm9tc3RyaW5nCn0KCgpkZWYgcnVubmVy KHhtbCwgbW9kZSwgbnRocmVhZHMsIGRlbGF5LCBudW1ydW5zKToKICAgIHdvcmtlcnMgPSBbXQog ICAgZm9yIGkgaW4gcmFuZ2UobnRocmVhZHMpOgogICAgICAgIHcgPSBXb3JrZXIoUEFSU0VSU1tt b2RlXSwgeG1sLCBkZWxheSwgbnVtcnVucykKICAgICAgICB3LnN0YXJ0KCkKICAgICAgICB3b3Jr ZXJzLmFwcGVuZCh3KQoKICAgIHAgPSBwc3V0aWwuUHJvY2VzcygpCiAgICBwLmNwdV9wZXJjZW50 KCkgICMgc2VlIHBzdXRpbCBkb2NzLiBEaXNjYXJkIHRoZSBmaXJzdCBvbmUKICAgIHNhbXBsZXMg PSBbXQoKICAgIHRzID0gMC4wCiAgICB3aGlsZSBhbnkody5pc19hbGl2ZSgpIGZvciB3IGluIHdv cmtlcnMpOgogICAgICAgIHRpbWUuc2xlZXAoMC41KQogICAgICAgIHRzICs9IDAuNQogICAgICAg IHNhbXBsZXMuYXBwZW5kKCh0cywgcC5jcHVfcGVyY2VudCgpKSkKCiAgICByZXR1cm4gc2FtcGxl cwoKCmRlZiBfdXNhZ2UoKToKICAgIGVwcmludCgidXNhZ2U6IHhtbGJlbmNoIHhtbHBhdGggbW9k ZSBudGhyZWFkcyBbZGVsYXkgW251bXJ1bnNdXSIpCiAgICBlcHJpbnQoImF2YWlsYWJsZSBtb2Rl czogJXMiICUgJyAnLmpvaW4oUEFSU0VSUy5rZXlzKCkpKQoKZGVmIF9tYWluKGFyZ3MpOgogICAg aWYgbGVuKGFyZ3MpIDwgMzoKICAgICAgICBfdXNhZ2UoKQogICAgICAgIHN5cy5leGl0KDEpCiAg ICBlbHNlOgogICAgICAgIHhtbHBhdGggPSBhcmdzWzBdCiAgICAgICAgbW9kZSA9IGFyZ3NbMV0K ICAgICAgICBudGhyZWFkcyA9IGludChhcmdzWzJdKQogICAgICAgIGRlbGF5ID0gaW50KGFyZ3Nb M10pIGlmIGxlbihhcmdzKSA+IDMgZWxzZSAxNQogICAgICAgIG51bXJ1bnMgPSBpbnQoYXJnc1s0 XSkgaWYgbGVuKGFyZ3MpID4gNCBlbHNlIE5vbmUKICAgICAgICBpZiBtb2RlIG5vdCBpbiBQQVJT RVJTOgogICAgICAgICAgICBfdXNhZ2UoKQogICAgICAgICAgICBzeXMuZXhpdCgyKQogICAgICAg IHdpdGggb3Blbih4bWxwYXRoLCAncnQnKSBhcyB4bWw6CiAgICAgICAgICAgIHNhbXBsZXMgPSBy dW5uZXIoeG1sLnJlYWQoKSwgbW9kZSwgbnRocmVhZHMsIGRlbGF5LCBudW1ydW5zKQogICAgICAg ICAgICBmb3IgKHRzLCB2YWx1ZSkgaW4gc2FtcGxlczoKICAgICAgICAgICAgICAgIHByaW50ICcl ZiwlZicgJSAodHMsIHZhbHVlKQoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIF9tYWlu KHN5cy5hcmd2WzE6XSkK ------=_Part_233010_1164979986.1404119674471 Content-Type: application/x-shellscript; name=plot.sh Content-Disposition: attachment; filename=plot.sh Content-Transfer-Encoding: base64 c2V0IGRhdGFmaWxlIHNlcGFyYXRvciAiLCIKc2V0IHRlcm1pbmFsIHBuZyBzaXplIDkwMCw0MDAK c2V0IHRpdGxlICJYTUwgUHJvY2Vzc2luZyBDUFUgdXNhZ2UiCnNldCB5bGFiZWwgIkNQVSBwZXJj ZW50YWdlICgxMDAlID0gMSBjb3JlKSIKc2V0IHhsYWJlbCAiVGltZSIKI3NldCB4ZGF0YSB0aW1l CiNzZXQgdGltZWZtdCAiJXMiCiNzZXQgZm9ybWF0IHggIiVtLyVkIgpzZXQga2V5IGxlZnQgdG9w CnNldCBncmlkCnBsb3QgIm1kXzUudHh0IiB1c2luZyAxOjIgd2l0aCBsaW5lcyBsdyAyIGx0IDMg dGl0bGUgJ21pbmlkb20nLCBcCiAgICAgImNldF81LnR4dCIgdXNpbmcgMToyIHdpdGggbGluZXMg bHcgMiBsdCAxIHRpdGxlICdjRWxlbWVudFRyZWUnCg== ------=_Part_233010_1164979986.1404119674471 Content-Type: image/png; name=cpu_500t_3m.png Content-Disposition: attachment; filename=cpu_500t_3m.png Content-Transfer-Encoding: base64 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 ------=_Part_233010_1164979986.1404119674471 Content-Type: image/png; name=cpu_300t_3m.png Content-Disposition: attachment; filename=cpu_300t_3m.png Content-Transfer-Encoding: base64 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 ------=_Part_233010_1164979986.1404119674471--

----- Original Message -----
From: "Francesco Romani" <fromani@redhat.com> To: devel@ovirt.org Cc: "Nir Soffer" <nsoffer@redhat.com>, "Martin Sivak" <msivak@redhat.com> Sent: Monday, June 30, 2014 12:14:34 PM Subject: Re: [ovirt-devel] XML benchmarks
----- Original Message -----
From: "Francesco Romani" <fromani@redhat.com> To: "Nir Soffer" <nsoffer@redhat.com> Cc: devel@ovirt.org Sent: Monday, June 30, 2014 8:47:15 AM Subject: Re: [ovirt-devel] XML benchmarks
----- Original Message -----
From: "Nir Soffer" <nsoffer@redhat.com> To: "Francesco Romani" <fromani@redhat.com> Cc: devel@ovirt.org, "Martin Sivak" <msivak@redhat.com> Sent: Sunday, June 29, 2014 10:34:08 AM Subject: Re: [ovirt-devel] XML benchmarks
CPU measurement: just opened a terminal and run 'htop' on it. CPU profile: clustered around the sampling interval. Usage negligible most of time, peak on sampling as shown below
300 VMs minidom: ~38% CPU cElementTree: ~5% CPU
What is 38% - (38% of one core? how may cores are on the machine?)
4 cores: 2 physical, 2 logical. I'm prepping a more precise test using a better and less ambiguous indicator.
Here. Attached un updated script (xmlbench2.py) which uses 'psutil' (https://pypi.python.org/pypi/psutil) to gather the samples.
CPU sampled each 500ms (half a second). 100% is one core. My laptop reports 4 core (dualcore with hyperthreading).
See attached some graphs for easier comsumption and their gnuplot recipe.
cpu_300t_3m.png: load using the test script with 300 threads, each thread runs ~3 minutes cpu_500t_3m.png: load using the test script with 500 threads, each thread runs ~3 minutes
sampling is not really accurate but it is more than enough to get an idea.
Nice!

It's good to see us moving away from minidom. I do think there is a place though to abstract out common use cases so we are not tied to an API and that we do the optimal thing more most use cases. ----- Original Message -----
From: "Francesco Romani" <fromani@redhat.com> To: devel@ovirt.org Sent: Friday, June 27, 2014 3:30:14 PM Subject: [ovirt-devel] XML benchmarks
Hi,
Due to the recent discussion (http://gerrit.ovirt.org/#/c/28712/), and as part of the ongoing focus on scalability and performances (http://gerrit.ovirt.org/#/c/17694/ and many others),
I took the chance to do a very quick and dirty bench to see how it really cost to do XML processing in sampling threads (thanks to Nir for the kickstart!), and, in general, how much the XML processing costs.
Please find attached the test script and the example XML (real one made by VDSM master on my RHEL6.5 box).
On my laptop:
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 58 Model name: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz Stepping: 9 CPU MHz: 1359.375 CPU max MHz: 3600.0000 CPU min MHz: 1200.0000 BogoMIPS: 5786.91 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 4096K NUMA node0 CPU(s): 0-3
8 GiBs of RAM, running GNOME desktop and the usual development stuff
xmlbench.py linuxvm1.xml MODE 300
MODE is either 'md' (minidom) or 'cet' (cElementTree). This will run $NUMTHREADS threads fast and loose without synchronization. We can actually have this behaviour if a customer just mass start VMs. In general I expect some clustering of the sampling activity, not a nice evenly interleaved time sequence.
CPU measurement: just opened a terminal and run 'htop' on it. CPU profile: clustered around the sampling interval. Usage negligible most of time, peak on sampling as shown below
300 VMs minidom: ~38% CPU cElementTree: ~5% CPU
500 VMs minidom: ~48% CPU cElementTree: ~6% CPU
1000 VMs python thread error :)
File "/usr/lib64/python2.7/threading.py", line 746, in start _start_new_thread(self.__bootstrap, ()) thread.error: can't start new thread
I think this is another proof (if we need more of them) that * we _really need_ to move away from the 1 thread per VM model -> http://gerrit.ovirt.org/#/c/29189/ and friends! Let's fire up the discussion! * we should move to cElementTree anyway in the near future: faster processing, scales better, nicer API. It is also a pet peeve of mine, I do have some patches floating but we need still some preparation work in the virt package.
-- Francesco Romani RedHat Engineering Virtualization R & D Phone: 8261328 IRC: fromani
_______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel
participants (5)
-
Antoni Segura Puimedon
-
Dan Kenigsberg
-
Francesco Romani
-
Nir Soffer
-
Saggi Mizrahi