Mercurial > hg > orthanc-book
annotate Sphinx/source/faq/scalability.rst @ 316:6cd4a86e1e4a
size testimonials
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 17 Feb 2020 10:48:45 +0100 |
parents | 3c4f8c47a283 |
children | 65a29c2fe22c |
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 | |
316 | 14 share other testimonials). Other users have even reported 28TB of |
15 data. Here are some links to references published on the `Orthanc | |
16 Users <https://groups.google.com/forum/#!forum/orthanc-users>`__ | |
17 discussion group: `1 | |
18 <https://groups.google.com/d/msg/orthanc-users/tSC0s9Mnp5o/Fg-RXo9sGwAJ>`__, | |
19 `2 | |
20 <https://groups.google.com/d/msg/orthanc-users/-L0D1c2y6rw/KmWnwEijAgAJ>`__, | |
21 `3 | |
22 <https://groups.google.com/d/msg/orthanc-users/-L0D1c2y6rw/nLXxtYzuCQAJ>`__, | |
23 `4 | |
24 <https://groups.google.com/d/msg/orthanc-users/s5-XlgA2BEY/ZpYagqBwAAAJ>`__, | |
25 `5 | |
26 <https://groups.google.com/d/msg/orthanc-users/A4hPaJo439s/NwR6zk9FCgAJ>`__, | |
27 `6 | |
28 <https://groups.google.com/d/msg/orthanc-users/aYQ7cIFDWEU/HexfDkwJAgAJ>`__, | |
29 `7 | |
30 <https://groups.google.com/d/msg/orthanc-users/Z5cLwbVgJc0/SxVzxF7ABgAJ>`__, | |
31 `8 | |
32 <https://groups.google.com/d/msg/orthanc-users/6tGNOqlUk-Q/vppkAYnFAQAJ>`__... | |
188 | 33 |
34 The stress is actually put on the underlying database engine, and on | |
35 the storage area (check out :ref:`orthanc-storage`). As explained in | |
36 the :ref:`troubleshooting section <troubleshooting>`, the built-in | |
37 SQLite database engine should be replaced by an enterprise-ready | |
38 database engine once Orthanc must store several hundreds of thousands | |
39 of DICOM instances (check out the :ref:`postgresql` and | |
40 :ref:`mysql`). It is also true that the performance of Orthanc in the | |
41 presence of large databases has continuously improved over time, | |
42 especially when it comes to the speed of :ref:`DICOM C-FIND | |
43 <dicom-find>`. | |
186 | 44 |
45 Here is a generic setup that should provide best performance in the | |
46 presence of large databases: | |
47 | |
290 | 48 * Make sure to use the latest release of Orthanc (1.5.8 at the time of |
186 | 49 writing). |
50 | |
51 * We suggest to use the latest release of the :ref:`PostgreSQL plugin | |
219 | 52 <postgresql>` to store the database index (3.2 at the time of |
186 | 53 writing). Make sure that ``EnableIndex`` is set to ``true``. |
54 | |
187 | 55 * Make sure that :ref:`run-time debug assertions <troubleshooting>` |
56 are turned off. A warning will show in the logs if this is not the | |
188 | 57 case. Note that all pre-built binaries provided by Osimis are |
58 correctly configured in that respect. | |
187 | 59 |
186 | 60 * 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
|
61 make sure that the filesystem is properly backed up, and that |
186 | 62 technologies such as RAID are enabled. Make sure that the option |
63 ``EnableStorage`` of the PostgreSQL plugins is set to ``false``. | |
64 | |
65 * Obviously, the PostgreSQL database should be stored on a high-speed | |
66 drive (SSD). This is less important for the storage area. | |
67 | |
315 | 68 * It may be useful to store the PostgreSQL database on another drive |
69 than the storage area. This should improve the use of the available | |
70 bandwidth to the disks. | |
71 | |
186 | 72 * The :ref:`Orthanc configuration file <configuration>` should have |
73 the following values for performance-related options (but make sure | |
189 | 74 to understand their implications): |
186 | 75 |
76 * ``StorageCompression = false`` | |
77 * ``LimitFindResults = 100`` | |
78 * ``LimitFindInstances = 100`` | |
79 * ``KeepAlive = true`` | |
80 * ``TcpNoDelay = true`` | |
81 * ``SaveJobs = false`` | |
82 * ``StorageAccessOnFind = Never`` | |
83 | |
84 * Make sure to carefully :ref:`read the logs <log>` in ``--verbose`` | |
85 mode, especially at the startup of Orthanc. The logs may contain | |
86 very important information regarding performance. | |
87 | |
187 | 88 * Make sure to read guides about the `tuning of PostgreSQL |
186 | 89 <https://wiki.postgresql.org/wiki/Performance_Optimization>`__. |
238 | 90 |
91 * You might also be interested in checking the options related to | |
92 :ref:`security <security>`. | |
309 | 93 |
94 * Consider using filesystems that are known to achieve high | |
95 performance, such as `XFS <https://en.wikipedia.org/wiki/XFS>`__ or | |
96 `Btrfs <https://en.wikipedia.org/wiki/Btrfs>`__ on GNU/Linux | |
97 distributions. | |
98 | |
99 * On GNU/Linux distributions, `LVM (Logical Volume Manager) | |
100 <https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)>`__ | |
101 can be used to dynamically and easily grow the storage area as more | |
102 space becomes needed. |