Слишком много открытых файлов в siddhi wso2 sp
Тестируя производительность сервера потокового процессора wso2, я поместил более сотни файлов.siddhi в каталог развертывания. что приводит к проблеме "Для многих открытых файлов".
Правильное правило, которое я имею:
все норм слушай в одной и той же теме кафка
каждое правило имеет свой собственный идентификатор группы (чтобы все они обрабатывали поток одновременно)
когда количество файлов.siddhi в папке развертывания превышает приблизительно 100 . другие файлы.siddhi не развертываются, и siddhi перестает отвечать на запросы.
Кто-нибудь может дать мне знать:
1. Где точно я иду не так?
- какой лимит правил должен быть создан на одном сервере сиддхи?
2 ответа
Это может быть связано с вашей конфигурацией ОС. Выполните следующую команду, чтобы отобразить все текущие ограничения.
ulimit -a
ulimit -n 70000
установит ограничение дескриптора файла.
Попробуйте сценарий после увеличения лимита.
Также убедитесь, что вы дублируете одно и то же правило в 100 файлах или это 100 разных правил.
Кажется, здесь происходит то, что у вас заканчиваются дескрипторы открытых файлов. Как @pcnfernando предложил в предыдущем ответе, вы можете установить предел дескриптора с помощью ulimit -n ####
,
Однако реальный вопрос в том, почему это происходит? Это может быть связано с несколькими причинами. Количество файлов siddhi, которые вы используете, и количество тем / разделов Kafka (так как это также может вызвать слишком много открытых соединений).
Таким образом, даже если вы решите проблему с ulimit -n ####
лучше провести расследование, используя lsof
[1] и посмотрите, какой процесс на самом деле вызывает проблему. Это поможет вам с Q1.
И для Q2. Не существует жесткого и быстрого правила определения количества правил сиддхи, которые могут быть развернуты на одном сервере. Все зависит от таких переменных, как вычислительная мощность, память и, конечно, количество дескрипторов открытых файлов в этой ситуации.
[1] https://www.ibm.com/developerworks/aix/library/au-lsof.html