Performance of Calender App in Browser catastrophic - Information

I wanted to move from owncloud 7.0.15 to nextcloud 11. I only use the Calendar App in Browser so its important that its running.
To avoid that anybody else has to go through this i decided to write a post.

Here are the results (Environment at the bottom)

Time until Refresh is fully completed:

NextCloud with Sql Lite:
7.04 sec/ 6.83 sec / 6.83 sec / 9.25 sec / 8.35 sec

NextCloud with mysql:
6.04 sec / 7.03 sec / 6.42 sec / 6.32 sec / 6.39 sec

Owncloud 7.0.15 older php version:
8.90 sec / 9.24 sec / 8.00 sec / 8.35 sec / 9.25 sec

Owncloud 7.0.15 with php 5.5
3.38 sec / 2.21 sec / 1.91 sec / 2.22 sec / 2.14 sec

Response Time when making an event on a tablet (with firefox):
Nextcloud 11.0: around 6 seconds.
OwnCloud 7.x: Instant

Response Time when making an event on a tablet (with normal Browser):
NextCloud 11.0: Not working
OwnCloud 7.x: Instant

Unfortunatly Calendar app is hardly useable in browser and catastrophic on a Tablet.

Environment:

All Response Times are testet with Firebug.

Server:
For testing I installed nextcloud on a normal amd PC with Dual Core Kaveri and 4 Gb RAM with a 500 GB Harddisk.
I Installed Debian Jessi. Nexcloud 11 and Owncloud 7.x at separated times.
Php5, apache2 and all needed liberies.I did not install https Implementation or encryption.

NextCloud Client:
Android Tablet (Version 4.4.2) and Firefox App (Version 50.1.0)
Normal PC with Firefox (Version 50.1) and IE (Version 11)

Use HTTP 2.0 to speed up parallel script download (which is responsible for the biggest chunk of the time)

Where do you mean i should use HTTP 2.0 ?
In my knowledge firefox already uses HTTP 2.0

You need to run HTTPS and enable it on your server.

Whatā€™s ā€œnormalā€ browser when youā€™re testing on Tablet?

On my phone (android) I prefer to use the caldav synchronization processand a dedicated app for the calendar in order to have access to widget. (and for more efficient than logging onto nextcloud).

At work (= slow network actually due to issue on network) the first load of calendar (3 calendars to be loaded in fact) is pretty slow around 20 to 30s (but Iā€™m not able to have a clear view of the impact of my network). And then, if I change for a month to another itā€™s less than one second.

Nextcloud is running on Raspberry 3 / Debian Jessie / Nginx / php7 (I do not remember the exact release) / MariaDB.

I also use secp521r1, which is a little be heavier as other elliptic curves.

@BernhardPosselt
Hi,
Did not think it makes this much difference (for the better) but cant test it anymore since I already use my test hardware for other applications. Never the less the server never used even 50 % of CPU and RAM neither did the client. Probably i will try it later.

@AlexM

Hi,
ā€œnormalā€ Browser is the preinstalled Browser on Android Phones/Tablets (which is not Chrome its called only ā€œBrowserā€).

You are right caldev is a dedicated app for calendars but dont want to use it cause ā€œmostā€ apps want calendar access, which I cannot deny since i want to use ā€œmostā€ apps (apps like facebook).

Wow, 20 to 30 seconds is something I never had ( but its only one calendar). 6 Seconds delay i get if i want to create a new entry. As i already use my test hardware for other applications i cannot tell the reaction time for changing month anymore.
You say the first load ā€¦ how long does it take when you use the refresh button?

Since you use php7, nginx and secp521r1 we cannot really compare results, but it seems that its even worse.

Never the less I hope a big Performance boost and more Compatibility will come with in the next releases.

@Frankenstein I think it will speed up page request 200% to 300% times check out http://www.http2demo.io/

Another idea: enable gzip compression on your server :slight_smile:

Iā€™ve checked at home. And the conclusion is that office network is not as efficient as it could be.
Iā€™ve around 8s response time.(the raspberry is a 100MB ethernet port on USB which is also a limitation).

And about calendar access, depending on your android version, you can manage app per app the access youā€™re autorizing (I think Android 6 is the minimum).

But as far as the page is loaded, everything else is responsive in a second, new entry, month change, activation of a calendarā€¦
But as Iā€™m almost never using this page to use the calendar, using most of the caldav sync option (outlook, android etcā€¦) I cannot really juge the impact of those performance for daily usage.

did you use tablet (Browser, Firefox) or PC (Firefox or Other).

I thinkt response time on PC (Firefox) was instant too, but half times in need Calendar when I am not on a PC, so its important for me.

I donā€™t own a tablet but Firefox on Android is known to be slow.

Checking the Network console on Firefox (PC) makes it absolutely obvious that serial loading is the culprit (takes 6s out of 7.5s)

You can probably get it down to 0.5s with HTTP 2.0 (probably even lower).

Chrome seems to parallelize it better: all scripts only take 0.3s to load and the page is fully loaded after 1.5s

Hi @BernhardPosselt ,

Honestly I am confused. First I did get up the environment again for testing, cause performance in less then 1 second is amazing and if there is a slight chance that Android Browser will be supported its worth it.

I think something is missing in my configuration, but here are the path and results:

------ Using commands:
sudo a2enmod ssl
sudo openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -out /path/server.crt -keyout /path/server.key

getting a https connection up and running. Unfortunatly no results.

Before:

After:

And then the link of HTTP2.0

These are likely little off the mark, but some things to try maybe;

Firefox: set in the about:config ā€˜pageā€™ (open a page and type that in) Network.http.max-connections to something higher. My desktop is at 900, and my android firefox is at 20. so set your android higher maybe and see if that helps. Iā€™d doubt it as itā€™s for page request, but hey.

Caching: Do you use memory caching at all on your server (apcu, memcached, redis)? If youā€™re not having issues with other apps, this also likely isnā€™t a source of issues, but itā€™s certainly worth the effort of implementing.

Plugins: Do you have some sort of adblocker or filtering system in place. It could just be the calendering system alone is being affected by it? Try turnning off any javascript affecting plugins.

Hi @stiiixy ,

I did changed the firefox settings on the tablet but did not help.

Caching: I use caching apcu method. NextCloud Admin page does not show any issues.

Plugins: I dont use addblock on this testing client, but it should not affect Calendar performance. Also Javascript should not have such a huge impact.

I wont be able to respond until next week.

We discuss performance on github and there have to be improvements. But to my knowledge http2 should have an impact.

Hi @eppfel ,

I am glad tu hear that there is a response in github, altough it is from November last year.
I hope that there will be improvments as well aus support for more browsers.

I will be happy to give nextcloud a new try once there are improvements.

I was posted in Nov 16, but is an ongoing discussion. Check it out for updates. Right now we started working on a few steps to improve speed.