Mercurial > hg > orthanc-book
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 |