What is your Nextcloud Web UI speed?

Relevant fragments of config.php, I have it like that for ages:

‘dbtype’ => ‘mysql’,
‘version’ => ‘28.0.2.5’,
‘dbname’ => ‘nextcloud’,
‘dbhost’ => ‘localhost’,
‘dbport’ => ‘’,
‘dbtableprefix’ => ‘oc_’,
‘mysql.utf8mb4’ => true,
‘installed’ => true,
‘memcache.local’ => ‘\OC\Memcache\APCu’,
‘memcache.distributed’ => ‘\OC\Memcache\Redis’,
‘memcache.locking’ => ‘\OC\Memcache\Redis’,
‘updater.release.channel’ => ‘stable’,
‘maintenance’ => false,
‘theme’ => ‘’,
‘maintenance_window_start’ => 1,

I am not expert in NC, but the Chrome profiler shows very little network overhead.

So I would suspect the frontend being slow specially if it shows significant times in the “Scripting” phases. Does anyone know how to interpret the times for NC? I am asking because long times in scripting could be caused by waiting for server.

The cache is not disabled in the browser. Look at the “Loading” phase and transferred data (30 kB).

Apologies if I missed something above, but do you see any setup warnings when you go to Administration Settings > Overview?
My UI load times in the browser are only about 2 seconds. Pretty snappy, I’d say, considering I’m self hosted on DIY hardware (nothing fancy). My NC server runs as a VM under Fedora with 3 other active VMs, so just comparatively speaking I’d say you can surely tune your NC to be much faster than it is currently. :slight_smile:

1 Like

Around 4,7 seconds.

1 Like

These two warnings came after recent upgrade. It was slow before and it is still now.

1 Like

I would like to ask you for a favor. Would you be so kind and record your server load times in Chrome?

If you would consider it, here is how to reproduce the test:

  1. Go to https://YOURSERVER/apps/files/ just to fill the cache
  2. Go to “Inspect” => Network and make sure the “Disable cache” is unchecked
  3. Go to “Inspect” => Performance and press Ctrl+Shift+E and keep recording until the page fully reloads (shall not take more than 10secs)
  4. The please share the pie chart (same I shared above)

I don’t have Chrome but here’s an output from Firefox. I haven’t done this before but I think this is the output you needed. Hope this helps.

This is mine from FF

One question:
You have compression enables on your server?

Recommendation (if not taken care of yet):
Please install all required PHP modules.

Organizations with single-server

  1. Did you specify the host and port details for Reis in your nextcloud config file?
  2. What is the status of Redis server (enabled and running)?

From the admin manual:

Use Redis for everything except local memcache:

‘memcache.local’ => ‘\OC\Memcache\APCu’, ‘memcache.distributed’ => ‘\OC\Memcache\Redis’, ‘memcache.locking’ => ‘\OC\Memcache\Redis’, ‘redis’ => [ ‘host’ => ‘localhost’, ‘port’ => 6379, ],

reference:
https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html

I left it with defaults. Redis is running and PHP is connected.

root@cloud:~# ss -tupan |grep 6379
tcp LISTEN 0 511 127.0.0.1:6379 0.0.0.0:* users:((“redis-server”,pid=183553,fd=6))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:37834 users:((“redis-server”,pid=183553,fd=24))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:38834 users:((“redis-server”,pid=183553,fd=34))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:36684 users:((“redis-server”,pid=183553,fd=12))
tcp ESTAB 0 0 127.0.0.1:37870 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185360,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:36706 users:((“redis-server”,pid=183553,fd=15))
tcp ESTAB 0 0 127.0.0.1:36640 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185342,fd=8))
tcp ESTAB 0 0 127.0.0.1:36696 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185348,fd=8))
tcp ESTAB 0 0 127.0.0.1:36668 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185343,fd=10))
tcp ESTAB 0 0 127.0.0.1:37840 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185358,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:58722 users:((“redis-server”,pid=183553,fd=20))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:58728 users:((“redis-server”,pid=183553,fd=21))
tcp ESTAB 0 0 127.0.0.1:36684 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185346,fd=8))
tcp ESTAB 0 0 127.0.0.1:36686 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185347,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:37854 users:((“redis-server”,pid=183553,fd=26))
tcp ESTAB 0 0 127.0.0.1:58720 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185353,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:36668 users:((“redis-server”,pid=183553,fd=11))
tcp ESTAB 0 0 127.0.0.1:55782 127.0.0.1:6379 users:((“php-fpm8.1”,pid=193826,fd=8))
tcp ESTAB 0 0 127.0.0.1:58746 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185379,fd=8))
tcp ESTAB 0 0 127.0.0.1:36712 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185350,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:37826 users:((“redis-server”,pid=183553,fd=23))
tcp ESTAB 0 0 127.0.0.1:36656 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185344,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:36696 users:((“redis-server”,pid=183553,fd=14))
tcp ESTAB 0 0 127.0.0.1:36720 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185351,fd=8))
tcp ESTAB 0 0 127.0.0.1:37834 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185345,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:58746 users:((“redis-server”,pid=183553,fd=28))
tcp ESTAB 0 0 127.0.0.1:58728 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185355,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:36686 users:((“redis-server”,pid=183553,fd=13))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:36656 users:((“redis-server”,pid=183553,fd=10))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:37822 users:((“redis-server”,pid=183553,fd=22))
tcp ESTAB 0 0 127.0.0.1:60294 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185394,fd=8))
tcp ESTAB 0 0 127.0.0.1:37822 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185356,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:36778 users:((“redis-server”,pid=183553,fd=30))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:37870 users:((“redis-server”,pid=183553,fd=27))
tcp ESTAB 0 0 127.0.0.1:36778 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185474,fd=8))
tcp ESTAB 0 0 127.0.0.1:37826 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185357,fd=8))
tcp ESTAB 0 0 127.0.0.1:49202 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185480,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:37840 users:((“redis-server”,pid=183553,fd=25))
tcp ESTAB 0 0 127.0.0.1:58706 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185352,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:36720 users:((“redis-server”,pid=183553,fd=17))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:58706 users:((“redis-server”,pid=183553,fd=18))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:36640 users:((“redis-server”,pid=183553,fd=9))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:36628 users:((“redis-server”,pid=183553,fd=8))
tcp ESTAB 0 0 127.0.0.1:36628 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185341,fd=10))
tcp ESTAB 0 0 127.0.0.1:40408 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185482,fd=8))
tcp ESTAB 0 0 127.0.0.1:58722 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185354,fd=8))
tcp ESTAB 0 0 127.0.0.1:40404 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185481,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:49202 users:((“redis-server”,pid=183553,fd=31))
tcp ESTAB 0 0 127.0.0.1:36706 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185349,fd=8))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:55782 users:((“redis-server”,pid=183553,fd=35))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:60294 users:((“redis-server”,pid=183553,fd=29))
tcp ESTAB 0 0 127.0.0.1:37854 127.0.0.1:6379 users:((“php-fpm8.1”,pid=185359,fd=10))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:58720 users:((“redis-server”,pid=183553,fd=19))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:36712 users:((“redis-server”,pid=183553,fd=16))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:40408 users:((“redis-server”,pid=183553,fd=33))
tcp ESTAB 0 0 127.0.0.1:6379 127.0.0.1:40404 users:((“redis-server”,pid=183553,fd=32))
tcp ESTAB 0 0 127.0.0.1:38834 127.0.0.1:6379 users:((“php-fpm8.1”,pid=193825,fd=8))
tcp LISTEN 0 511 [::1]:6379 [::]:* users:((“redis-server”,pid=183553,fd=7))

Yes

Already fixed

1 Like

Nice tool!
I’ve tracked my cloud too.

Unfortunately, I always find the Web GUI very slow, even though I have implemented all the performance optimizations. Unfortunately, other sites are always quite sluggish.

Here is my result. The loading time for my users is usually between 6-9 seconds. We mainly use the cloud internally in-house and are all connected via 1 GBit/s. The server has 6 CPU cores and 16 GB RAM. PHP 8.2 with MariaDB 10.11 on Ubuntu 20.04 with NC 27.1.6

How does so much idleness come about here?

Second test:

The biggest block is “scripting”.

Thanks for tipps!

1 Like

How did you configure the Background Jobs?
by AJAX, or by Cron?

Cron is the recommended one.

  • An other fact is that wireless network are slower than cabled network.
  • The performance of a proxy server can affect load performance of Nextcloud on the page!
  • To analyze a possible decrease of network congestion can be analyzed with Wireshark.
  • looking at the recorded times of Individual modules, scripting etc, that 'process during the loading time of the webpage can be very misleading.
  • Just keep track of the ‘loading time’ of the page. You will find the loading time at the bottom of the F12 page of you browser. The loading time is is actually all about the user experience of the page.

The dashboard of my instance, the loading time is: 4.41 on average
The Files page of the instance, the loading time is about 4.21 on average.
Measured with cabled network. NC instance 6GB RAM 3200MHz, AMD 5600G processor, virtualized, processor AES-NI enabled. no encryption for file storage, push client enabled, 10 users, external storage - no NFS, self hosted on a shared server.

I consider it as completely normal.

A few more things to explore:

Syslog based logging

Nextclouds file based logging has been a source of bottle neck for me in the past so I switched to syslog for Nextcloud.

NOTE this will break the Web GUI log reader

php occ log:manage --level=error --backend=syslog

"log_type" => "syslog",
"logfile" => "",
"loglevel" => 3,

DNS issues

Sometimes DNS issues can cause your server to slow down significantly

Incorrect system time

If your servers time sync is out of wack it can cause any number of issues resulting in perceived slow downs. Ensure your system clock is updating correctly

2 Likes

Cron, every 5 mins

I do not use syslog.

DNS works fine.

System time is NTP network synced and looks ok.

I do not use syslog.

The main reason I switched to syslog rather than Nexcloud’s file logging was due to my old server’s bottle neck being my storage medium (less of an issue now I use NVME). This locked up my DB significantly increasing DB query times and that was causing my frontend to slow down significantly.

There a bunch of items to consider based on information you haven’t provided yet:

  • What storage medium are you using?
  • What hardware are you using? (CPU, RAM ect)
  • What’s your deployment method? (Docker, Bare metal, ect)
  • How’s your RAM utilization? (i.e. are you dumping to swap too much?)

SSD

i7, 16GB ram, SSD drive

Bare metal along with LXD configured with ext4 dir storage

1 Like