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