Сколько одновременных соединений может обрабатывать сервер MarkLogic?
Существует ли верхний предел количества одновременных соединений, которые может обрабатывать MarkLogic? Например, ASP.NET ограничен одновременной обработкой 10 запросов независимо от инфраструктуры и оборудования. Есть ли подобное ограничение на сервере MarkLogic? Если нет, то есть ли какие-либо тесты, которые дают некоторое представление о том, сколько соединений может обрабатывать типичный экземпляр?
1 ответ
Учитывая достаточно большой бюджет, практических ограничений на количество одновременных подключений нет.
Основное ограничение - количество потоков сервера приложений, хотя избыточные запросы также будут накапливаться в очереди невыполненных работ. В соответствии с groups.xsd
каждый сервер приложений ограничен максимум 256 потоками. Задержка, по-видимому, не имеет максимума, но большинство операционных систем тихо ограничивают ее до 256-4096. Таким образом, в зависимости от того, учитываете ли вы невыполненную работу, один сервер приложений на одном хосте может иметь 256-4352 одновременных подключений.
После этого вы можете использовать несколько серверов приложений и добавлять хосты в кластер. При необходимости используйте балансировщик нагрузки. Большинство операционных систем устанавливают ограничение в 32 000 - 64 000 открытых сокетов на хост, но нет жесткого ограничения на количество хостов или серверов приложений. В конечном счете, идентификаторы запросов могут быть проблемой, но это 64-битные числа, поэтому есть большой запас.
Конечно, ничто из этого не гарантирует, что ваш процессор, память, диск и сеть могут удовлетворить спрос. Это отдельная проблема, которая сильно зависит от приложения.