Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Проблема производительности #3

Open
Aleksandr1705 opened this issue Aug 14, 2023 · 9 comments
Open

Проблема производительности #3

Aleksandr1705 opened this issue Aug 14, 2023 · 9 comments

Comments

@Aleksandr1705
Copy link

Клиент:
Filebeat 7.10.2 на Windows 10
Сервер:
Opensearch 2.9 в докере

Конфигурация pipeline, filebeat как в этом репозитории.
1 час лога размером 10Гб грузился 3 часа, соответственно лог не будет успевать загрузиться.
При этом загрузка процессора на клиенте небольшая, а на сервере opensearch где-то 50%.
Всего у нас 6 нод, с которых будем собирать логи.

@maxstarkov
Copy link
Owner

Слишком мало информации, чтобы понять где именно у вас возникают проблемы производительности.
Если CPU на сервере opensearch загружен только на 50%, то остальное время CPU где проводит? На ожидании операций IO? На kernel space? Простаивает?
Какие параметры дисков на сервере opensearch?
Какой объем RAM на сервере opensearch? Вы меняли настройки java heap под ваш объем RAM (в файле docker-compose.yml параметр ES_JAVA_OPTS)?
По вашему описанию невозможно понять в чем причина проблем производительности.

@Aleksandr1705
Copy link
Author

Сделали новый тест. Было 2 ядра, сделали 4. Теперь процессор загружен на 25% на kernel space. Остальное время процессор свободен.
Диски NVME. Памяти RAM 8 Гб. Изменили настройки для сервера OpenSearch на OPENSEARCH_JAVA_OPTS="-Xms4g -Xmx4g"
Ожидание операций IO где посмотреть?

@maxstarkov
Copy link
Owner

Посмотреть можно через утилиту top, в колонке wa будет отображаться процент времени, которое уходит на IO.

@Aleksandr1705
Copy link
Author

Путем мониторинга загрузки CPU, было выявлено, что работает только одно ядро на один поток загрузки из Filebeat.
Если запустить с двух машин загрузку логов, то занимаются уже 2 ядра.

@maxstarkov
Copy link
Owner

Спасибо, интересное наблюдение. Судя по документации, для операций индексирования используется один поток на один primary shard. В настройках шаблона индекса из этого репозитория количество shard'ов установлено в единицу. Попробуйте увеличить это значение до 5 и понаблюдать.

@Aleksandr1705
Copy link
Author

Увеличили, ничего не изменилось.

@maxstarkov
Copy link
Owner

После изменения количества shard'ов в шаблоне индекса сам индекс точно создался с новым количеством shard'ов?

@Aleksandr1705
Copy link
Author

Как это проверить? Через запрос GET показывает новое количество шардов. Индекс не пересоздавали.

@Aleksandr1705
Copy link
Author

Команда _cat/shards/techlog-*?v выдает
.ds-techlog-all-2023.08.21-000001 1 p STARTED 326176 124.3mb 172.22.0.4 opensearch-node1
.ds-techlog-all-2023.08.21-000001 3 p STARTED 326751 123.5mb 172.22.0.4 opensearch-node1
.ds-techlog-all-2023.08.21-000001 2 p STARTED 327550 189.7mb 172.22.0.3 opensearch-node2
.ds-techlog-all-2023.08.21-000001 0 p STARTED 327437 191.1mb 172.22.0.3 opensearch-node2
.ds-techlog-all-2023.08.18-000001 0 p STARTED 517779 108.9mb 172.22.0.4 opensearch-node1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants