See :doc:`background_jobs_configuration` for a description and the benefits.
See :doc:`js_css_asset_management_configuration` for a description and the benefits.
Caching improves performance by storing data, code, and other objects in memory. Memory cache configuration for the ownCloud server is no longer automatic in ownCloud 8.1 and up, but must be installed and configured. See :doc:`caching_configuration`.
MySQL or MariaDB are preferred because of the performance limitations of SQLite with highly concurrent applications, like ownCloud.
See the section :doc:`../../configuration/database/linux_database_configuration` for how to configure ownCloud for MySQL or MariaDB. If your installation is already running on SQLite then it is possible to convert to MySQL or MariaDB using the steps provided in :doc:`../../configuration/database/db_conversion`.
A comprehensive guide to tuning MySQL and MariaDB is outside the scope of the ownCloud documentation. However, here are three links that can help you find further information:
A comprehensive guide to tuning PostgreSQL is outside the scope of the ownCloud documentation. However, here are three links that can help you find further information:
- Five Steps to PostgreSQL Performance
- Tuning the autovacuum proceff for tables with huge update workloads (oc_filecache)
File locking is enabled by default, using the database locking backend. This places a significant load on your database. See the section :doc:`../../configuration/files/files_locking_transactional` for how to configure ownCloud to use Redis-based Transactional File Locking.
SSL (HTTPS) and file encryption/decryption can be offloaded to a processor's AES-NI extension. This can both speed up these operations while lowering processing overhead. This requires a processor with the AES-NI instruction set.
Here are some examples how to check if your CPU / environment supports the AES-NI extension:
- For each CPU core present:
grep flags /proc/cpuinfo
or as a summary for all cores:grep -m 1 ^flags /proc/cpuinfo
If the result contains anyaes
, the extension is present. - Search eg. on the Intel web if the processor used supports the extension
Intel Processor Feature Filter You may set a filter by
"AES New Instructions"
to get a reduced result set. - For versions of openssl >= 1.0.1, AES-NI does not work via an engine and
will not show up in the
openssl engine
command. It is active by default on the supported hardware. You can check the openssl version viaopenssl version -a
- If your processor supports AES-NI but it does not show up eg via grep or coreinfo, it is maybe disabled in the BIOS.
- If your environment runs virtualized, check the virtualization vendor for support.
If you want to improve the speed of an ownCloud installation, while at the same time increasing its security, you can enable HTTP/2 support for Apache. Please be aware that most browsers require HTTP/2 to be used with SSL enabled.
An Apache process uses around 12MB of RAM. Apache should be configured so that the maximum number of HTTPD processes times 12MB is lower than the amount of RAM. Otherwise the system begins to swap and the performance goes down.
The KeepAlive directive enables persistent HTTP connections, allowing multiple requests to be sent over the same TCP connection. Enabling it reduces latency by as much as 50%. In combination with the periodic checks of the sync client the following settings are recommended:
KeepAlive On KeepAliveTimeout 100 MaxKeepAliveRequests 200
Apache prefork has to be used.
Don’t use threaded mpm
with mod_php
, because PHP is currently not thread safe.
# cat /etc/httpd/conf/httpd.conf ... HostnameLookups off
Log files should be switched off for maximum performance. To do that, comment out the CustomLog directive. However, keep ErrorLog set, so errors can be tracked down.