mirror of
https://github.com/nextcloud/documentation.git
synced 2026-01-03 10:20:02 +07:00
Update server_tuning.rst
This commit is contained in:
committed by
Morris Jobke
parent
f34fc96da7
commit
d2566e776d
@@ -11,13 +11,14 @@ benefits.
|
||||
Reducing system load
|
||||
--------------------
|
||||
|
||||
High system load will slow down Nextcloud and might also lead to other unwanted side
|
||||
effects. To reduce load you should first identify the source. Tools such as htop,
|
||||
iotop or [glances](https://nicolargo.github.io/glances/) will help to identify the
|
||||
process or the drive that slows down your system. First you should make sure that
|
||||
you installed/assigned enough RAM. Swap usage should be prevented by all means.
|
||||
If you run your database inside a VM, you should not store it inside a VM image file.
|
||||
Better put it on a dedicated block device to reduce abstraction layers.
|
||||
High system load will slow down Nextcloud and might also lead to other unwanted
|
||||
side effects. To reduce load you should first identify the source of the problem.
|
||||
Tools such as htop, iotop or `glances <https://nicolargo.github.io/glances/>`_
|
||||
will help to identify the process or the drive that slows down your system. First
|
||||
you should make sure that you installed/assigned enough RAM. Swap usage should be
|
||||
prevented by all means. If you run your database inside a VM, you should not
|
||||
store it inside a VM image file. Better put it on a dedicated block device to
|
||||
reduce latency due to multiple abstraction layers.
|
||||
|
||||
.. _caching:
|
||||
|
||||
@@ -40,6 +41,20 @@ configure Nextcloud for MySQL or MariaDB. If your installation is already runnin
|
||||
SQLite then it is possible to convert to MySQL or MariaDB using the steps provided
|
||||
in :doc:`../configuration_database/db_conversion`.
|
||||
|
||||
In smaller installations you might not want to set up a separate cache. However
|
||||
you can still tune your database. The following example is suited for a database
|
||||
smaller than 1GB. MySQL will consume up to 1GB of RAM for caching. Please make
|
||||
sure that your system has sufficient free RAM after the change, so that it does
|
||||
not start to use your swap partition, when it receives a burst of requests. In
|
||||
the given example your ``/etc/mysql/conf.d/mysql.cnf`` might contain the
|
||||
following lines. (beware that this is the block for mysqld not mysql)
|
||||
|
||||
.. code:: ini
|
||||
|
||||
[mysqld]
|
||||
innodb_buffer_pool_size=1073741824
|
||||
innodb_io_capacity=4000
|
||||
|
||||
Using Redis-based transactional file locking
|
||||
--------------------------------------------
|
||||
|
||||
@@ -84,6 +99,27 @@ Enable HTTP2 for faster loading
|
||||
|
||||
HTTP2 has `huge speed improvements <https://www.troyhunt.com/i-wanna-go-fast-https-massive-speed-advantage/>`_ over HTTP with multiple request. Most `browsers already support HTTP2 over SSL (HTTPS) <http://caniuse.com/#feat=http2>`_. So refer to your server manual for guides on how to use HTTP2.
|
||||
|
||||
Tune PHP-FPM
|
||||
------------
|
||||
|
||||
If you are using a default installation of php-fpm you might have noticed
|
||||
excessive load times on the web interface or even sync issues. This is due
|
||||
to the fact that each simultaneous request of an element is handled by a
|
||||
separate PHP-FPM process. So even on a small installation you should allow
|
||||
more processes to run. For example on a machine with 4GB of RAM and 1GB of
|
||||
MySQL cache following values in your ``www.conf`` file should work:
|
||||
|
||||
.. code:: ini
|
||||
|
||||
pm = dynamic
|
||||
pm.max_children = 120
|
||||
pm.start_servers = 12
|
||||
pm.min_spare_servers = 6
|
||||
pm.max_spare_servers = 18
|
||||
pm.process_idle_timeout = 60s
|
||||
|
||||
Depending on your current PHP version you should find this file e.g. under ``/etc/php/7.2/fpm/pool.d/www.conf``
|
||||
|
||||
Enable PHP OPcache
|
||||
------------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user