# Синхронная или асинхронная запись на дата-ноды

**URL:** <https://discuss.elastic.co/t/topic/237958>\
**Category:** Вопросы на русском языке\
**Created:** [June 21, 2020, 11:49am UTC](https://discuss.elastic.co/t/topic/237958 "2020-06-21T11:49:44Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![111229](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111229/32/56578_2.png) [@111229](https://discuss.elastic.co/u/111229)\
**Post date:** [June 21, 2020, 11:49am UTC](https://discuss.elastic.co/t/topic/237958/1 "2020-06-21T11:49:44Z")

</div>

Коллеги, добрый день.  
Помогите, пожалуйста, разобраться.  
У нас кластер из 9 дата-нод, 3 мастера, одна нода координации. Более 100000 записей в секунду.  
Очень часто последнее время возникают 429 ошибки.  
Сейчас осуществляем мероприятия по снижению кол-ва шардов по бестпрактикс кол-во памяти под кучу \*20 но не суть( сейчас у нас 650 осколков при 16гб кучи).  
Вопрос в том,что мы видим следующую зависимость. Если какая-то нода из 9 перегружена по I/O например 40 и более процентов, падает скорость записи/чтения по всем узлам. И вылетает множество 429 ошибок.  
Вопрос, запись/чтение с дата-нод происходит синхронно? У нас elasticsearch 7.3.2.  
Что ещё можно сделать кроме как снизить количество осколков и нарастить объем памяти на каждой ноде (и кстати нужно ли придерживаться правила, что под jvm дата-нод надо выделять 50% от всей ОП сервера)

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [June 22, 2020, 7:11pm UTC](https://discuss.elastic.co/t/topic/237958/2 "2020-06-22T19:11:42Z")

</div>

Про этот процесс можно прочитать в [https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-replication.html](https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-replication.html)

Запись происходит с помощью потоков из write thread pool, который по умолчанию содержит столько же потоков, сколоко на машине процессоров и очередь из 200 записей. Когда ваш клиент посылает запрос на запись, это запрос может содержать записи из нескольких шард. Запись на каждой шарде будет занимать 1 поток. То есть один поток на клиенте будет занимать количество потоков в кластере, равное количеству шард в индексе, в который вы пишите. Когда количество одновременных запросов на узле превышает количество процессоров, то дополнительные записи помещаются в очередь, когда очередь переполняется - узел выдает ошибку 429, которая означает, что клиенту необходимо замедлить посылку сообщений.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 20, 2020, 7:11pm UTC](https://discuss.elastic.co/t/topic/237958/3 "2020-07-20T19:11:44Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
