Does High Performance backend improve overall performance or just Talk?

Hiya,
I’m a beginner admin of NextCloud and have it running on my server. I’m not a pro server admin and a lot of things are over my head, but I have been learning.

I’m still deep in the “configuration” mode of NextCloud and read about High Performance backend. I know that it’s primarily required for more than 2-3 users on a meeting/call.

But I wonder if it will also improve the overall performance of NextCloud on my server, like loading times, processing files etc?

My NextCloud is working fine. The only “problem” I have is that uploading photos and files seems to take a while, and starting a new Office document takes a little while too. (Typing in a document is laggy as well.) Uploading a standard selfie-like photo takes 20 ish seconds and then another 30-60 seconds for the thumbnail to appear. A new Office odt takes about 15-20 seconds to open.

I am still exploring further optimization but wondered if HPB would help in these areas and will it be worth my effort? I don’t even know what Docker is or how it works so I would have to significant reading and learning I think to get HPB to operating.

Honestly, this server is for personal use and would not be lost if I’m limited to 2-3 people in a conference call, but I wondered about HPB improving overall performance.

Page loads and navigating is relatively snappy. I just have a little lag when creating files, I think.

Thanks!

Hey @JupiterSnarled

we all started there…

well done, good job :+1:

yes, that is correct and it will have no performance effect on file upload or opening office documents.

can you tell us a little about your server? complete the Support template. Please use this when you request support and don’t forget to tell us about your system resources and internet connection… DSL of Fibre, suggested speeds (100Mbit/s, 250Mbit/s etc…) which router you’re using etc.

maybe the folks here can figure out where the bottleneck is. but be sure to give exact specs… subjective feels-like specs are nothing to go by.

its a good idea to compare your current self-hosted instance with a hosted Nextcloud… there are some providers that let you test Nextcloud. see Sign up for a free Nextcloud account or 🗃️ Hosting providers - Nextcloud community

2 Likes

Perhaps there is a misunderstanding here. First of all, HPB only improves Talk. Of course, this can reduce the load on the server. But then there is also High Performance Back-end for Nextcloud Files (“binary component developed in Rust.”), which is probably enterprise support.

However, you can see if you can perform a basic tuning for your Nextcloud. There are several approaches.

Memory caching

Server tuning

Post details from your server. Than we can help you.

1 Like

Nope, freely available GitHub - nextcloud/notify_push: Update notifications for nextcloud clients
But yea, the naming is a bit confusing for new people.

3 Likes

As @devnull already mentioned:

The steps described in…

…will make a huge difference. The problem is, without details about your setup, we can’t know what you’ve already done.

And yes, there’s also a high-performance backend for Files that helps reduce server load even more. But that requires Redis, so at least some of the steps from the “Memory caching” guide need to be in place first before you can take advantage of it.

Regarding faster preview generation, you might also want to look at:

Additionally, the Preview Generator app can pre-generate previews in the background. This way, photos (e.g. auto-uploaded from your phone) are already processed and load instantly when you browse them in Nextcloud.

If all this feels overwhelming, and you don’t want to dig too deep into manual optimization, you might consider trying Nextcloud AIO. It’s a well-optimized all-in-one package where most of these performance-related settings are already preconfigured.

Of course, your server’s hardware (CPU, RAM, storage type — spinning rust vs. SSD) also plays a role in overall performance. So yeah, there are a lot of variables we can only guess at. :wink:

Thanks. With this link i also found the GitHub website. Yes, Nextcloud does have some strange software names that are not really intuitive. But that is also a fundamental problem with free software. Marketing could often be better, and that includes good names.

Thank you bb77. Like I said, I’m a n00b at all this and I’m still working on tuning.
I have Redis and APCu setup and running.

Does this look right in the config file:

  'memcache.locking' => '\OC\Memcache\Redis',
  'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
     'timeout' => 0.0,
     'password' => '===REDACTED===', // Optional, if not defined no password will be used.
      ),
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'enabledPreviewProviders' => 
  array (
    0 => 'OC\\Preview\\Image',
    1 => 'OC\\Preview\\HEIC',
    2 => 'OC\\Preview\\TIFF',
    3 => 'OC\\Preview\\Movie',
  ),
  'memories.exiftool_no_local' => true,

I think I have it all configured right, but still get this in the Overview of the admin panel:

  • The database is used for transactional file locking. To enhance performance, please configure memcache, if available. For more details see the documentation :up_right_arrow:.

My Php Info file and SSH query both indicate Redis and APUc are enabled/running.

I’m wondering if there’s another way to check to see if NextCloud is properly seeing Redis?

You also wanna set memcache.distributed to redis. Also pay attention to the double backslashes vs double quotes. Memory caching — Nextcloud latest Administration Manual latest documentation

1 Like

Heh. I didn’t even notice that. I copy and paste everything from help articles/documentation so I wonder where I got that. Been doing so much config the last week I have no idea. LOL

… thanks for the tip… but the moment I add

'memcache.distributed' => '\OC\Memcache\Redis',

to the config file my site goes down with:

Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.

I’ve looked at several logs (Apache, Nextcloud.log, etc) on the server and don’t see anything related, but I might be missing a particular logfile

If I comment out the one memcache.distributed line, the site works.

Edit: I was wondering if it was problem with my Redis password and so I disabled it. That line still causes ISE without a password configured on Redis.

Thanks!

Sorry, this discussion has become a little disjointed.
I’ve already been through most of the tuning and config documentation. I do have Redis and APCu running but not sure it’s working properly (see above)

I also already have the Preview Generator app installed. Let me share some of the info:

Server Info

Version: Hub 31.0.8
PHP Version: 8.3.23
Memory limit: 2 GB
Max execution time: 9999
Upload max size: 20 GB
OPcache Revalidate Frequency: 60

Extensions: Core, date, libxml, openssl, pcre, zlib, filter, hash, json, pcntl, random, Reflection, SPL, session, standard, cgi-fcgi, bcmath, bz2, calendar, ctype, curl, dba, dom, mbstring, fileinfo, ftp, gd, gettext, gmp, iconv, imap, intl, exif, mysqlnd, PDO, pgsql, Phar, posix, SimpleXML, soap, sockets, sodium, sqlite3, tidy, tokenizer, xml, xmlwriter, xsl, zip, mysqli, pdo_mysql, pdo_pgsql, pdo_sqlite, xmlreader, memcached, imagick, apcu, Zend OPcache

Database
Type: mysql
Version: 11.4.8
Size: 31.9 MB

Operating System: Linux 5.15.0-152-generic x86_64
CPU: Intel(R) Xeon(R) Silver 4208 CPU @ 2.10GHz (32 threads)
Memory: 62.55 GB
Server time: Sat Aug 23 08:42:51 UTC 2025
Uptime: 14 hours, 2 minutes, 30 seconds

My Config File so far:

<?php
$CONFIG = array (
  'instanceid' => '<redacted>',
  'passwordsalt' => '<redacted>',
  'secret' => '<redacted>',
  'trusted_domains' => 
  array (
    0 => 'office.<Redacted Domain>.com',
  ),
  'datadirectory' => '/home/<Redacted Username>/nextclouddata',
  'dbtype' => 'mysql',
  'version' => '31.0.8.1',
  'overwrite.cli.url' => 'https://office.<Redacted Domain>.com',
  'dbname' => '<Redacted Username>_78office',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => '<Redacted Username>_78office',
  'dbpassword' => 'S.6l19jp-S@i5[',
  'installed' => true,
  'mysql.utf8mb4' => true,
  'memories.db.triggers.fcu' => true,
  'memories.exiftool' => '/home/<Redacted Username>/office.<Redacted Domain>.com/apps/memories/bin-ext/exiftool-amd64-glibc',
  'memories.vod.path' => '/home/<Redacted Username>/office.<Redacted Domain>.com/apps/memories/bin-ext/go-vod-amd64',
  'app_install_overwrite' => 
  array (
    1 => 'pride',
    2 => 'printer',
    3 => 'files_reader',
    4 => 'ransomware_protection',
    5 => 'bookmarks_fulltextsearch',
    6 => 'health',
  ),
  'mail_smtpmode' => 'smtp',
  'mail_smtpsecure' => 'ssl',
  'mail_sendmailmode' => 'smtp',
  'mail_from_address' => 'manager',
  'mail_domain' => 'office.<Redacted Domain>.com',
  'mail_smtphost' => 'office.<Redacted Domain>.com',
  'mail_smtpport' => '465',
  'mail_smtpauth' => true,
  'mail_smtpname' => 'manager@office.<Redacted Domain>.com',
  'mail_smtppassword' => '<redacted>',
  'maintenance' => false,
  'memories.vod.ffmpeg' => '/usr/bin/ffmpeg',
  'memories.vod.ffprobe' => '/usr/bin/ffprobe',
  'maintenance_window_start' => 1,
  'trusted_proxies' => 
  array (
    0 => '<redacted>',
  ),
  'default_phone_region' => 'US',
  'memcache.locking' => '\OC\Memcache\Redis',
// 'memcache.distributed' => '\OC\Memcache\Redis',
  'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
     'timeout' => 0.0,
     'password' => '<Redacted>', // Optional, if not defined no password will be used.
      ),
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'enabledPreviewProviders' => 
  array (
    0 => 'OC\\Preview\\Image',
    1 => 'OC\\Preview\\HEIC',
    2 => 'OC\\Preview\\TIFF',
    3 => 'OC\\Preview\\Movie',
  ),
  'memories.exiftool_no_local' => true,
);

App List:

Enabled:
  - activity: 4.0.0
  - admin_audit: 1.21.0
  - app_api: 5.0.2
  - assistant: 2.6.1
  - bookmarks: 15.1.3
  - bruteforcesettings: 4.0.0
  - calendar: 5.3.9
  - call_summary_bot: 3.0.1
  - certificate24: 0.3.7
  - circles: 31.0.0
  - cloud_federation_api: 1.14.0
  - comments: 1.21.0
  - contacts: 7.2.5
  - contactsinteraction: 1.12.0
  - cookbook: 0.11.3
  - dashboard: 7.11.0
  - dav: 1.33.0
  - deck: 1.15.2
  - drawio: 3.1.0
  - encryption: 2.19.0
  - epubviewer: 1.8.0
  - event_update_notification: 2.6.1
  - external: 6.0.2
  - federatedfilesharing: 1.21.0
  - federation: 1.21.0
  - files: 2.3.1
  - files_accesscontrol: 2.0.0
  - files_antivirus: 6.0.3
  - files_automatedtagging: 2.0.0
  - files_downloadlimit: 4.0.0
  - files_mindmap: 0.0.33
  - files_pdfviewer: 4.0.0
  - files_reminders: 1.4.0
  - files_sharing: 1.23.1
  - files_trashbin: 1.21.0
  - files_versions: 1.24.0
  - firstrunwizard: 4.0.0
  - forms: 5.1.2
  - gdatavaas: 31.0.6
  - geoblocker: 0.5.17
  - groupfolders: 19.1.3
  - health: 2.2.2
  - integration_giphy: 2.1.0
  - intros: 1.1.2
  - libresign: 11.3.0
  - logreader: 4.0.0
  - lookup_server_connector: 1.19.0
  - mail: 5.3.1
  - maps: 1.6.0
  - memories: 7.6.2
  - music: 2.2.0
  - news: 26.1.0
  - nextcloud_announcements: 3.0.0
  - notes: 4.12.3
  - notifications: 4.0.0
  - notify_push: 1.2.0
  - oauth2: 1.19.1
  - ownershiptransfer: 1.2.1
  - password_policy: 3.0.0
  - photos: 4.0.0
  - polls: 8.2.2
  - previewgenerator: 5.9.0
  - printer: 0.0.5
  - privacy: 3.0.0
  - profile: 1.0.0
  - provisioning_api: 1.21.0
  - quicknotes: 0.8.30
  - ransomware_protection: 1.14.0
  - recognize: 9.0.3
  - recommendations: 4.0.0
  - related_resources: 2.0.0
  - richdocuments: 8.7.4
  - richdocumentscode: 25.4.202
  - secrets: 2.1.2
  - serverinfo: 3.0.0
  - settings: 1.14.0
  - sharebymail: 1.21.0
  - side_menu: 5.1.1
  - spreed: 21.1.3
  - support: 3.0.0
  - survey_client: 3.0.0
  - suspicious_login: 9.0.1
  - systemtags: 1.21.1
  - tables: 0.9.5
  - tasks: 0.16.1
  - terms_of_service: 4.5.0
  - text: 5.0.0
  - theming: 2.6.1
  - theming_customcss: 1.18.0
  - thesearchpage: 1.2.12
  - twofactor_backupcodes: 1.20.0
  - twofactor_nextcloud_notification: 5.0.0
  - twofactor_totp: 13.0.0-dev.0
  - updatenotification: 1.21.0
  - user_status: 1.11.0
  - viewer: 4.0.0
  - weather_status: 1.11.0
  - webhook_listeners: 1.2.0
  - whiteboard: 1.1.3
  - workflowengine: 2.13.0
Disabled:
  - bookmarks_fulltextsearch: 1.2.0 (installed 1.2.0)
  - facerecognition: 0.9.70 (installed 0.9.70)
  - files_external: 1.23.0
  - files_fulltextsearch: 31.0.0 (installed 31.0.0)
  - fulltextsearch: 31.0.0 (installed 31.0.0)
  - richdocumentscode_arm64: 25.4.202
  - user_ldap: 1.22.0

I also have a PHP Info file reporting but I’m not comfortable sharing that publicly, if there’s info you need from it, let me know.

I’d say either configure a password in Redis, or remove the line from the config.php. However I’d recommend to configure one, especially if Redis is exposed via a network port. Even better would be using a UNIX socket connection, if it’s running on the same server as Nextcloud.

And maybe a dumb question: But is the php-redis package/module installed?

Also, make sure you restart all releated service if you make changes to Redis config, or reboot your server.

That’s how I have configured it:

cp /etc/redis/redis.conf /etc/redis/redis.conf.bak
sed -i 's/port 6379/port 0/' /etc/redis/redis.conf
sed -i 's/\# unixsocket\ .*$/unixsocket \/var\/run\/redis\/redis-server.sock/' /etc/redis/redis.conf
sed -i 's/\#\ unixsocketperm\ .*$/unixsocketperm 770/g' /etc/redis/redis.conf
sed -i 's/# maxclients\ .*$/maxclients 10240/' /etc/redis/redis.conf
sed -i 's/# requirepass foobared/requirepass SUPERSECRETPASSWORD/' /etc/redis/redis.conf
usermod -aG redis www-data
cp /etc/sysctl.conf /etc/sysctl.conf.bak
sed -i '$avm.overcommit_memory = 1' /etc/sysctl.conf
systemctl enable redis-server
systemctl restart redis-server
  'redis' => 
  array(
    'host' => '/var/run/redis/redis-server.sock',
    'port' => 0,
    'dbindex' => 1,
    'timeout' => 0.5,
    'password' => 'SUPERSECRETPASSWORD',
  ),
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'memcache.local' => '\\OC\\Memcache\\APCu',

Source: Nextcloud Installationsanleitung - Carsten Rieger

I have a password enabled now, but I’ll read up on using the UNIX socket instead.
I also think you touched on the primary issue. I have been having trouble getting the php extension for Redis installed and I think that must be the issue. (I had forgotten it didn’t work the other night.)

Thank you!

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.