System settings

Some settings may require attention before moving to production. While the steps below may not necessitate any action, there are cases where the host running both Snow Owl and Elasticsearch will require fine-tuning.

Configure your host for Elasticsearch requirements

Some system-level settings need to be checked before deploying your own Elasticsearch in production.

Following this link there is an extensive guide on what to verify, but usually, it comes down to these items:

Configure your host for Snow Owl requirements

Set permissions for folders and files appropriately

By default, Snow Owl runs inside the container as user snowowl using uid:gid 1000:1000.

  • If you are bind-mounting a local directory or file:

    • ensure it is readable by the user mentioned above

    • ensure that settings, data and log directories are writable as well

A good strategy is to grant group access to gid 1000 or 0 for the local directory.

Bind-mount Snow Owl's temporary working folder

In case the file system of the docker service on the host is different from what the Snow Owl deployment uses, it could be worthwhile to bind-mount Snow Owl's temporary working folder to a path that has excellent I/O performance. E.g.:

  • the root file system / is backed by a block storage that purposefully has lower I/O performance, this is the file system used by the docker service.

  • the deployment folder /opt/snow-owl is backed by a fast local SSD

The definition of the snowowl service in the docker compose file should be amended like this:

snowowl:
    image: b2ihealthcare/snow-owl-<variant>:<version>
    ...
    volumes:
      - ./config/snowowl/snowowl.yml:/etc/snowowl/snowowl.yml
      - ./config/snowowl/users:/etc/snowowl/users
      - ${SNOWOWL_DATA_FOLDER}:/var/lib/snowowl
      - ${SNOWOWL_LOG_FOLDER}:/var/log/snowowl
+     - /path/to/folder/with/fast/performance:/usr/share/snowowl/work
    ports:
    ...

Last updated