# Запись на сервер, процессор занят на 20%

**URL:** <https://discuss.elastic.co/t/topic/29740>\
**Category:** Вопросы на русском языке\
**Created:** [September 22, 2015, 4:06am UTC](https://discuss.elastic.co/t/topic/29740 "2015-09-22T04:06:14Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![Maksym\_Seleznev](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Maksym\_Seleznev](https://discuss.elastic.co/u/Maksym_Seleznev)\
**Post date:** [September 22, 2015, 4:06am UTC](https://discuss.elastic.co/t/topic/29740/1 "2015-09-22T04:06:15Z")

</div>

пытаюсь понять почему запись на сервер забирает 20% cpu сервера, это нормально?

\_nodes/hot\_threads ничего интересного не показали

сервер находится в google cloud

Hot threads at 2015-09-22T04:02:49.774Z, interval=500ms, busiestThreads=3, ignoreIdleThreads=true:

```
3.5% (17.5ms out of 500ms) cpu usage by thread 'elasticsearch[elasticsearch2-elasticsearch-1-vm][refresh][T#1]'
 2/10 snapshots sharing following 2 elements
   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   java.lang.Thread.run(Thread.java:745)

```

какую еще информацию мне надо предоставить

 ![](https://us1.discourse-cdn.com/elastic/original/2X/f/f7e15229f3359828a3f4b8e11c9d251874f9fd3e.jpg)

---

<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:** [September 22, 2015, 10:48am UTC](https://discuss.elastic.co/t/topic/29740/2 "2015-09-22T10:48:57Z")

</div>

При записи происходит индексация данных, что является достаточно интенсивной с точки зрения CPU операцией. Сколько вы данных пишите в секунду? Пробуйте hot\_threads 5 раз запустить с параметром threads=1000, залейте результаты в [gist.github.com](http://gist.github.com) и пришлите сюда ссылку.

---

<div class="post-metadata">

**Author:** ![Maksym\_Seleznev](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Maksym\_Seleznev](https://discuss.elastic.co/u/Maksym_Seleznev)\
**Post date:** [September 22, 2015, 5:23pm UTC](https://discuss.elastic.co/t/topic/29740/3 "2015-09-22T17:23:35Z")

</div>

[https://gist.github.com/maksymseleznov/4a9b6b5fa1bdc8089aac](https://gist.github.com/maksymseleznov/4a9b6b5fa1bdc8089aac)

я сделал несколько раз, вот такие результаты

---

<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:** [September 22, 2015, 6:28pm UTC](https://discuss.elastic.co/t/topic/29740/4 "2015-09-22T18:28:47Z")

</div>

Похоже, что elasticsearch сливает сегменты, и на это действительно уходит CPU и I/O. А что, это вызывает какие-то проблемы? Вы новые записи добавляете или старые обновляете?

---

<div class="post-metadata">

**Author:** ![monkimonki](https://avatars.discourse-cdn.com/v4/letter/m/82dd89/32.png) [@monkimonki](https://discuss.elastic.co/u/monkimonki)\
**Post date:** [September 22, 2015, 7:05pm UTC](https://discuss.elastic.co/t/topic/29740/5 "2015-09-22T19:05:04Z")

</div>

У нас есть три таблицы , допустим A,B,C  
в таблице "A" данных всегда больше чем в таблице "В" или "C" примерно в 10 раз.  
В таблицу "A" в основном записываются новые данные с периодичностью примерно 1 новый документ в секунду-две  
в таблице "А" могут происходить обновления документов - но тоже не очень часто

В таблицу "B" документы в основном обновляются с периодичностью 1 новая запись в секунду-две  
Так же в таблицу "B" записываются новые документы , но это не очень часто: 1 новый документ в 30сек-60сек.

В таблицу "С" запись и обновление происходят намного реже чем в других таблицах

## -------на данный момент: A -- 2.5 М документов (590Mb) B и С -- по 200к документов , B(300MB) C(250MB) индексируем мы только те поля которые действительно нам нужны

Очень хочется понять в какую сторону стоит двигаться если все данные будут записываться/обновляться в 10-20 раз чаще?

Спасибо Вам за помощь!

---

<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:** [September 22, 2015, 7:20pm UTC](https://discuss.elastic.co/t/topic/29740/6 "2015-09-22T19:20:01Z")

</div>

А таблица это что в elasticsearch? Тип или индекс?

---

<div class="post-metadata">

**Author:** ![monkimonki](https://avatars.discourse-cdn.com/v4/letter/m/82dd89/32.png) [@monkimonki](https://discuss.elastic.co/u/monkimonki)\
**Post date:** [September 22, 2015, 7:39pm UTC](https://discuss.elastic.co/t/topic/29740/7 "2015-09-22T19:39:58Z")

</div>

ну у нас есть три типа те  
typeA/A  
typeB/B  
typeC/C

в каждом типе по одному индексу.

---

<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:** [September 22, 2015, 7:46pm UTC](https://discuss.elastic.co/t/topic/29740/8 "2015-09-22T19:46:50Z")

</div>

То есть у вас 3 индекса, и каждый индекс содержит только документы одного типа, так? А как refresh выполняется? Какие-нибудь установки меняли?

---

<div class="post-metadata">

**Author:** ![monkimonki](https://avatars.discourse-cdn.com/v4/letter/m/82dd89/32.png) [@monkimonki](https://discuss.elastic.co/u/monkimonki)\
**Post date:** [September 22, 2015, 8:00pm UTC](https://discuss.elastic.co/t/topic/29740/9 "2015-09-22T20:00:10Z")

</div>

> [@Igor\_Motov](#):
>
> То есть у вас 3 индекса, и каждый индекс содержит только документы одного типа, так? А как refresh выполняется? Какие-нибудь установки меняли?

да именно так. настройки такие только :  
@"settings" : @{  
@"number\_of\_shards" : @(10)  
},

мапинг кастумный для каждого типа документов  
больше нечего не меняли

---

<div class="post-metadata">

**Author:** ![Maksym\_Seleznev](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Maksym\_Seleznev](https://discuss.elastic.co/u/Maksym_Seleznev)\
**Post date:** [September 22, 2015, 11:34pm UTC](https://discuss.elastic.co/t/topic/29740/10 "2015-09-22T23:34:45Z")

</div>

[https://gist.github.com/maksymseleznov/94a23eabec19c089b706](https://gist.github.com/maksymseleznov/94a23eabec19c089b706) - settings  
[https://gist.github.com/maksymseleznov/90df76cd94a952064b4f](https://gist.github.com/maksymseleznov/90df76cd94a952064b4f) - mappings

не совсем понял что refresh что именно продразумевается?

каждый индекс содержит только одного типа документы

дополнителного ничего не делали, разве что отключили кибану

---

<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:** [September 23, 2015, 1:11am UTC](https://discuss.elastic.co/t/topic/29740/11 "2015-09-23T01:11:22Z")

</div>

> [@Maksym\_Seleznev](#):
>
> не совсем понял что refresh что именно продразумевается?

Это - [Near Real-Time Search | Elasticsearch: The Definitive Guide [2.x] | Elastic](https://www.elastic.co/guide/en/elasticsearch/guide/current/near-real-time.html#refresh-api)

---

<div class="post-metadata">

**Author:** ![Maksym\_Seleznev](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Maksym\_Seleznev](https://discuss.elastic.co/u/Maksym_Seleznev)\
**Post date:** [September 23, 2015, 2:22am UTC](https://discuss.elastic.co/t/topic/29740/12 "2015-09-23T02:22:46Z")

</div>

curl -XPOST [http://localhost:9200/\_refresh](http://localhost:9200/_refresh)

{"\_shards":{"total":60,"successful":30,"failed":0}}

я ничего не менял там по обновлению, все по умолчанию

Вы видели я выложил?  
[https://gist.github.com/maksymseleznov/94a23eabec19c089b706](https://gist.github.com/maksymseleznov/94a23eabec19c089b706) - settings  
[https://gist.github.com/maksymseleznov/90df76cd94a952064b4f](https://gist.github.com/maksymseleznov/90df76cd94a952064b4f) - mappings

---

<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:** [September 23, 2015, 2:57am UTC](https://discuss.elastic.co/t/topic/29740/13 "2015-09-23T02:57:36Z")

</div>

> [@Maksym\_Seleznev](#):
>
> Вы видели я выложил?

Видел. Никаких очевидных проблем не заметил, кроме того, что у вас несколько больших полей `not_analyzed` (bio например), что само по себе странно и может привезти к проблемам.

Я бы посоветовал протестировать систему под реальной нагрузкой. Я думаю, что предполагать, что увеличение потока документов в 10 раз увеличит нагрузку на CPU в 10 раз в вашем случае не верно.

---

<div class="post-metadata">

**Author:** ![monkimonki](https://avatars.discourse-cdn.com/v4/letter/m/82dd89/32.png) [@monkimonki](https://discuss.elastic.co/u/monkimonki)\
**Post date:** [September 23, 2015, 3:18am UTC](https://discuss.elastic.co/t/topic/29740/14 "2015-09-23T03:18:32Z")

</div>

Немного не понятно что не так с "not\_analyzed" это же не что иное как "не индексировать" , или я просто что-то не правильно понял

\*поля био нам просто не нужно и не понадобится для индексации.

---

<div class="post-metadata">

**Author:** ![rusty](https://avatars.discourse-cdn.com/v4/letter/r/f17d59/32.png) [@rusty](https://discuss.elastic.co/u/rusty)\
**Post date:** [September 23, 2015, 8:14am UTC](https://discuss.elastic.co/t/topic/29740/15 "2015-09-23T08:14:45Z")

</div>

> Немного не понятно что не так с "not\_analyzed" это же не  
> что иное как "не индексировать" , или я просто что-то не правильно понял

Не совсем, если не надо индексировать поле совсем (по полю нельзя искать), то надо выставлять "index: no", а "not\_analyzed" - индексируем "как есть", сохраняя возможность поиска (см. [линк](https://www.elastic.co/guide/en/elasticsearch/guide/current/mapping-intro.html#_index_2))

---

<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 6, 2017, 1:51pm UTC](https://discuss.elastic.co/t/topic/29740/16 "2017-07-06T13:51:07Z")

</div>

Closed on July 6, 2017, 1:51pm UTC


