[ome-users] Improving webclient performance

Paul van Schayck paul at vanschayck.nl
Tue May 10 14:35:05 BST 2016

Dear all,

I've been looking into the OMERO.web requests time. We sometimes have
the feeling that the interface is a bit sluggish, and could respond
more snappy. So I've done some small tests.

Note that this is not a detailed analysis yet. But based on viewing
the logs and doing some small experiments for an hour or two.

* Tests done on Ubuntu 14.04 VM with nginx and gunicorn. 4 cores, 4
GiB of memory. Increased shared memory settings for postgresql. No
other load on the server.

* Requests to 404 pages of OMERO.web have a typical response time of
25 ms. Leading me to believe that the nginx/gunicorn combination gives
relative little overhead.

* Requests to real OMERO pages (like metadata details, the main index
or for example a tile) give about a time anywhere between 400 and 500
ms. With sometimes outliers to 300ms or 600ms.

* Because I saw so little difference between metadata details or an
image tile I opted to just get the main index page. I used this
command in the end for most testing:

curl "http://omero.local/webclient/?server=1&bsession=21145499-5e24-451c-b5de-5b95c95d7c9a"
-w "time_starttransfer:  %{time_starttransfer}, time_total:
%{time_total}\n" -o /dev/null

A typical request would give this output:

time_starttransfer:  0,412 s, time_total:  0,415 s

Looking at this representative Blitz.log (also attached) the following
things stood out for me:

* The time spent directly in OMERO is about 383 ms. Confirming again
that the network, nginx and gunicorn overhead is low as the total
request (as seen from the client was 415 ms)

* There are 13 calls to getConfigValue. In total spending about 143 ms.

* The queries executed are only a few ms.

* There is a (unexplained for me) gap between two queries of 80 ms.

What really struck me is the 13 calls to getConfigValue taking so much
time. In general this is about 25% of the request time. Especially as
those values will in general be static between requests. Is there
something wrong on my side? Is there anything else I can do to speed
up web requests?


Paul van Schayck
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Blitz.log
Type: text/x-log
Size: 19204 bytes
Desc: not available
URL: <http://lists.openmicroscopy.org.uk/pipermail/ome-users/attachments/20160510/d9cec52f/attachment.bin>

More information about the ome-users mailing list