[openstack-dev] [horizon] Fetch resources in parallel
e0ne at e0ne.info
Wed Dec 6 10:47:48 UTC 2017
Last week we had a hot discussion about this topic at the meeting . We
still don't have an agreement how to go forward with it. As was requested,
I did some perf testing with a current approach . TBH, these tests
results don't show real data but look realistic. I used the same VM with
the same code (just checked out to the previous commit of horizon). To
get better results, we need to re-test all but I don't have enough time
now:(. I hope, these results are good enoudh and we can make our final
decision on this topic.
On Tue, Oct 31, 2017 at 11:06 PM, Ivan Kolodyazhny <e0ne at e0ne.info> wrote:
> Just forgot to mention one other option: we can use celery  too but I
> didn't do any performance testing with it. This solution will be more
>  http://www.celeryproject.org/
> Ivan Kolodyazhny,
> On Tue, Oct 31, 2017 at 7:15 PM, Ivan Kolodyazhny <e0ne at e0ne.info> wrote:
>> Hi team,
>> We all know that unfortunately Horizon's performance not good enough in
>> some cases. That's why we try to fix it on both sides: client-side and
>> I would like to talk mostly about server-side now. On some views, we use
>> 'futurist' library  to fetch resources from API's in parallel. I've
>> filed a blueprint for this effort . You can find some work in progress
>> patches in the Gerrit.
>> For now, we use futurist.ThreadPoolExecutor in Horizon to fetch resources
>> from APIs. It requires some specific Apache configuration changes to allow
>> WSGI app to create threads. It means, our code execution depends on Apache
>> mod_wsgi configuration.
>> To avoid this, we can use futurist.GreenThreadPoolExecutor. It
>> uses eventlet green threads which can be used to speed-up I/O operations
>> like 'call external API'.
>> I did very simple performance testing  with proposed patch  for
>> volumes views. My tests are not ideal but you can see how it's going with
>> green thread. I propose to switch to the futurist.GreenThreadPoolExecutor
>> and add 'eventlet.monkey_patch()' call to the wsgi app for Horizon. It will
>> speed up parallel API calls and make Horizon independent on Apache or other
>> web server configuration.
>> I added this topic to the next weekly meeting agenda  so we can
>> discuss it there too.
>>  https://github.com/openstack/futurist/
>>  https://blueprints.launchpad.net/horizon/+spec/fetch-
>>  https://docs.google.com/spreadsheets/d/14zDpdkPUfGDR_ZycaGUo
>>  https://review.openstack.org/#/c/426493/
>>  https://wiki.openstack.org/wiki/Meetings/Horizon#Agenda_
>> Ivan Kolodyazhny,
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the OpenStack-dev