Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/docs/src/maintenance/performance.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,14 @@ operations add the following to ``(prefix)/etc/defaults/couchdb``

.. _command line flag +A in erl(1): http://erlang.org/doc/man/erl.html

Since Erlang OTP 21, the linked-in drivers have been migrated to dirty IO schedulers.
These schedulers can be configured by ``ERL_FLAGS`` environment
variable. For example, to give Erlang 80 dirty schedulers
add the following to ``(prefix)/etc/defaults/couchdb``
(or equivalent)::

export ERL_FLAGS="+Sdio 80"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+Sdio 80"

Note, the flag is +SDio ... (capital D) (double-check at https://www.erlang.org/doc/apps/erts/erl_cmd.html#emulator-flags)

I wonder since the +A advice doesn't apply any longer maybe we should mention the correct way of updating the value and to use vm.args https://github.com/apache/couchdb/blob/main/rel/overlay/etc/vm.args#L71-L73. Maybe at the end, as minor note, we could add that this used to be an +A and that it doesn't apply any longer, and that +A setting should be removed.

(suggestion)


...However, there is one option that can increase the responsiveness of your CouchDB server when disk performance is a bottleneck, and that is setting the number dirty IO schedulers for the Erlang VM.

The setting is +SDio N where N is the number of dirty IO schedulers. CouchDB releases version 3.3.0 and higher set the value in the vm.args file as +SDio 16. Larger machines with more CPUs and faster disks could use a larger value like +SDio 80, for example.

These schedulers can also be configured by ERL_FLAGS environment variable. For example, to give Erlang 80 dirty schedulers add the following to (prefix)/etc/defaults/couchdb (or equivalent)::

export ERL_FLAGS="+SDio 80"
...


That's just a suggestion, it can probably use better wording

System Resource Limits
======================

Expand Down