comparison Sphinx/source/faq/scalability.rst @ 186:a846a8f6d9a6

scalability
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 31 Jan 2019 18:41:44 +0100
parents
children 0fa1cf88c635
comparison
equal deleted inserted replaced
185:6fd3eae67f6a 186:a846a8f6d9a6
1 .. _scalability:
2
3 Scalability of Orthanc
4 ======================
5
6 One of the most common question about Orthanc is: *"How many DICOM
7 instances can be stored by Orthanc?"*
8
9 The source code of Orthanc imposes no such hard limit by itself. The
10 stress is actually put on the underlying database engine, and on the
11 storage area (check out :ref:`orthanc-storage`). As explained in the
12 :ref:`troubleshooting section <troubleshooting>`, the built-in SQLite
13 database engine should be replaced by an enterprise-ready database
14 engine as soon as the number of DICOM instances grow above about
15 50,000 (check out the :ref:`postgresql` and :ref:`mysql`). It is also
16 true that the performance of Orthanc in the presence of large
17 databases has continuously improved over time, especially when it comes
18 to the speed of :ref:`DICOM C-FIND <dicom-find>`.
19
20 Here is a generic setup that should provide best performance in the
21 presence of large databases:
22
23 * Make sure that :ref:`run-time debug assertions <troubleshooting>`
24 are turned off. A warning will show in the logs if this is not the
25 case.
26
27 * Make sure to use the latest release of Orthanc (1.5.3 at the time of
28 writing).
29
30 * We suggest to use the latest release of the :ref:`PostgreSQL plugin
31 <postgresql>` to store the database index (3.0 at the time of
32 writing). Make sure that ``EnableIndex`` is set to ``true``.
33
34 * We suggest to use the default filesystem storage area. Of course,
35 make sure that the filesystem is properly backup, and that
36 technologies such as RAID are enabled. Make sure that the option
37 ``EnableStorage`` of the PostgreSQL plugins is set to ``false``.
38
39 * Obviously, the PostgreSQL database should be stored on a high-speed
40 drive (SSD). This is less important for the storage area.
41
42 * The :ref:`Orthanc configuration file <configuration>` should have
43 the following values for performance-related options (but make sure
44 to understand their implication):
45
46 * ``StorageCompression = false``
47 * ``LimitFindResults = 100``
48 * ``LimitFindInstances = 100``
49 * ``KeepAlive = true``
50 * ``TcpNoDelay = true``
51 * ``SaveJobs = false``
52 * ``StorageAccessOnFind = Never``
53
54 * Make sure to carefully :ref:`read the logs <log>` in ``--verbose``
55 mode, especially at the startup of Orthanc. The logs may contain
56 very important information regarding performance.
57
58 * Make sure to read guides about the :ref:`tuning of PostgreSQL
59 <https://wiki.postgresql.org/wiki/Performance_Optimization>`__.
60