Mercurial > hg > orthanc-book
annotate Sphinx/source/faq/scalability.rst @ 315:3c4f8c47a283
note
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 14 Feb 2020 13:31:51 +0100 |
parents | f18fdcbeba26 |
children | 6cd4a86e1e4a |
rev | line source |
---|---|
186 | 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 | |
188 | 9 The source code of Orthanc imposes no such hard limit by itself. At |
10 the time of writing, we know that Orthanc is being used in production | |
11 in hospitals with more than 15TB of data, 125,000 studies and around | |
12 50 millions of instances (please `get in touch with us | |
13 <https://www.orthanc-server.com/static.php?page=contact>`__ if you can | |
14 share other testimonials). | |
15 | |
16 The stress is actually put on the underlying database engine, and on | |
17 the storage area (check out :ref:`orthanc-storage`). As explained in | |
18 the :ref:`troubleshooting section <troubleshooting>`, the built-in | |
19 SQLite database engine should be replaced by an enterprise-ready | |
20 database engine once Orthanc must store several hundreds of thousands | |
21 of DICOM instances (check out the :ref:`postgresql` and | |
22 :ref:`mysql`). It is also true that the performance of Orthanc in the | |
23 presence of large databases has continuously improved over time, | |
24 especially when it comes to the speed of :ref:`DICOM C-FIND | |
25 <dicom-find>`. | |
186 | 26 |
27 Here is a generic setup that should provide best performance in the | |
28 presence of large databases: | |
29 | |
290 | 30 * Make sure to use the latest release of Orthanc (1.5.8 at the time of |
186 | 31 writing). |
32 | |
33 * We suggest to use the latest release of the :ref:`PostgreSQL plugin | |
219 | 34 <postgresql>` to store the database index (3.2 at the time of |
186 | 35 writing). Make sure that ``EnableIndex`` is set to ``true``. |
36 | |
187 | 37 * Make sure that :ref:`run-time debug assertions <troubleshooting>` |
38 are turned off. A warning will show in the logs if this is not the | |
188 | 39 case. Note that all pre-built binaries provided by Osimis are |
40 correctly configured in that respect. | |
187 | 41 |
186 | 42 * We suggest to use the default filesystem storage area. Of course, |
190
5444374c4202
faq: Fix typo: "backup" -> "backed up"
Thibault Nélis <tn@osimis.io>
parents:
189
diff
changeset
|
43 make sure that the filesystem is properly backed up, and that |
186 | 44 technologies such as RAID are enabled. Make sure that the option |
45 ``EnableStorage`` of the PostgreSQL plugins is set to ``false``. | |
46 | |
47 * Obviously, the PostgreSQL database should be stored on a high-speed | |
48 drive (SSD). This is less important for the storage area. | |
49 | |
315 | 50 * It may be useful to store the PostgreSQL database on another drive |
51 than the storage area. This should improve the use of the available | |
52 bandwidth to the disks. | |
53 | |
186 | 54 * The :ref:`Orthanc configuration file <configuration>` should have |
55 the following values for performance-related options (but make sure | |
189 | 56 to understand their implications): |
186 | 57 |
58 * ``StorageCompression = false`` | |
59 * ``LimitFindResults = 100`` | |
60 * ``LimitFindInstances = 100`` | |
61 * ``KeepAlive = true`` | |
62 * ``TcpNoDelay = true`` | |
63 * ``SaveJobs = false`` | |
64 * ``StorageAccessOnFind = Never`` | |
65 | |
66 * Make sure to carefully :ref:`read the logs <log>` in ``--verbose`` | |
67 mode, especially at the startup of Orthanc. The logs may contain | |
68 very important information regarding performance. | |
69 | |
187 | 70 * Make sure to read guides about the `tuning of PostgreSQL |
186 | 71 <https://wiki.postgresql.org/wiki/Performance_Optimization>`__. |
238 | 72 |
73 * You might also be interested in checking the options related to | |
74 :ref:`security <security>`. | |
309 | 75 |
76 * Consider using filesystems that are known to achieve high | |
77 performance, such as `XFS <https://en.wikipedia.org/wiki/XFS>`__ or | |
78 `Btrfs <https://en.wikipedia.org/wiki/Btrfs>`__ on GNU/Linux | |
79 distributions. | |
80 | |
81 * On GNU/Linux distributions, `LVM (Logical Volume Manager) | |
82 <https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)>`__ | |
83 can be used to dynamically and easily grow the storage area as more | |
84 space becomes needed. |