Size: a a a

2021 February 09

MA

Mons Anderson in Tarantool
Dmitry Lukovkin
Понял. Попробуем. Спасибо! Через box.cfg как я понял их не скормить? Через рестарт?
В принципе можно ещё что сделать:
берёте снапы и xlogs,  копируете в отдельную диру
там запускаете просто tarantool, в нём box.cfg с заданными параметрами и смотрете статистику по слабам.
не понравилось: перезапускаете с другими  настройками.
источник

DL

Dmitry Lukovkin in Tarantool
Mons Anderson
В принципе можно ещё что сделать:
берёте снапы и xlogs,  копируете в отдельную диру
там запускаете просто tarantool, в нём box.cfg с заданными параметрами и смотрете статистику по слабам.
не понравилось: перезапускаете с другими  настройками.
у нас там wal_mode = none
источник

DS

Dmitry Sharonov in Tarantool
Dmitry Lukovkin
у нас там wal_mode = none
тогда только снап
источник

DL

Dmitry Lukovkin in Tarantool
да данные там не особо нужны, они там обновляются постоянно
источник

MA

Mons Anderson in Tarantool
Dmitry Sharonov
тогда только снап
ну без xlog не удастся повторить сценарий создания/удаления, поэтому не видно будет переиспользования слабов
источник

EM

Eugene Manaev in Tarantool
Alexey Kuzin
Те, кто пользовались протобафом, делали прокси через гошку
а где-то есть что почитать? Это отдельный сервис на гошке с обращением по http/сокету?
источник

AS

Andrei 🦉 Sergeev in Tarantool
Eugene Manaev
а где-то есть что почитать? Это отдельный сервис на гошке с обращением по http/сокету?
отдельный сервис на го в который ходят клиенты, а сервис уже ходит в тарантул по его тарантульному протоколу
готовых решений нет
источник

EM

Eugene Manaev in Tarantool
Andrei 🦉 Sergeev
отдельный сервис на го в который ходят клиенты, а сервис уже ходит в тарантул по его тарантульному протоколу
готовых решений нет
Ок, спасибо
источник
2021 February 10

DL

Dmitry Lukovkin in Tarantool
Mons Anderson
Ох, как грустненько...

Давайте я опишу как это внутри, а вы попробуете подобрать коэффициенты.

Чтобы сохранить элемент размера X ищется подходящий слаб, назрачение размера которого будет > X

Начинаем со slab_alloc_minimal (он-же memtx_min_tuple_size), по умолчанию равняется 32.
Далее добавляем по 8 байт максимум 31 раз.
(Т.е. в диапазоне 32..280 байт слабы выделяются с шагом 8 байт)
Если X > 280, то алгоритм продолжается: мы берём последний максимальный размер и умножаем его на slab_alloc_factor (по умолчанию 1.05) до тех пор, пока данные не впишутся (ну и ещё там есть выравнивание). пример продолжения: 280*1.05=294, 294*1.05=308, ...

Что можно тюнить:
1. Можно поменять фактор. Например поставить 2. Это сильно уменьшит количество различных классов и повысит переиспользование выделенных слабов.
2. Можно поднять memtx_min_tuple_size. Это поднимет стартовую точку отсчёта.

Для ваших данных я вижу следующую картину:

У вас немного данных, которые меньше 1 kb. Можно сделать memtx_min_tuple_size=776 (1024-31*8)
Это сделает линейку стартовых слабов, в которые будут раскладываться все таплы < 1kb.
Далее у вас идёт очень сильный разрыв между данными. Поэтому я бы взял крупный фактор (1.5 - 2)


Итого: попробуйте добавить своему инстансу
memtx_min_tuple_size=776,
slab_alloc_factor=2,
Большое спасибо! Применил настройки. За ночь очень неплохой результат 👍:
---
- items_size: 85063856
 items_used_ratio: 0.11%
 quota_size: 1073741824
 quota_used_ratio: 10.94%
 arena_used_ratio: 1.2%
 items_used: 91568
 quota_used: 117440512
 arena_size: 117440512
 arena_used: 1435056
источник

MF

Michael Filonenko in Tarantool
Dmitry Lukovkin
Большое спасибо! Применил настройки. За ночь очень неплохой результат 👍:
---
- items_size: 85063856
 items_used_ratio: 0.11%
 quota_size: 1073741824
 quota_used_ratio: 10.94%
 arena_used_ratio: 1.2%
 items_used: 91568
 quota_used: 117440512
 arena_size: 117440512
 arena_used: 1435056
очень хорошо
источник

MF

Michael Filonenko in Tarantool
Dmitry Lukovkin
куда это приложить? ))
а можете на текущей ситуации сделать стату?
источник

DK

Dmitry Krokhin in Tarantool
а такая помощь только счастливчикам? у нас тоже беда с новыми 2.* релизами. для 7мб итемов - 720мб арены и оно бесконечно растёт, а потом ругается что не может аллоцировать память.

сейчас используем 2.6.2-0-g34d504d7d.
вывод скрипта: https://pastebin.com/W4U0RN4a
источник

DK

Dmitry Krokhin in Tarantool
как-то так
источник

MO

Maxat Oralbaev in Tarantool
День добрый! При использвание cartridge-cli  возникает ошибка с http= require('http.server') : : Can't create tcp_server: Address in use. Я специалньно использвал другой порт которе еще не занят?
источник

DL

Dmitry Lukovkin in Tarantool
Michael Filonenko
а можете на текущей ситуации сделать стату?
Сейчас значительно меньше записей
источник

МК

Максим Кобылинсикий... in Tarantool
День добрый, а в SQL tarantool, можно создать таблицу с авто-инкрементом?
Если можно то можно пример?
Прочесал документацию, но ответа так на свой вопрос и не нашёл.
источник

EL

Eugene Leonovich in Tarantool
CREATE TABLE users ("id" INTEGER PRIMARY KEY AUTOINCREMENT, "email" VARCHAR(255))
источник

R

R-omk in Tarantool
Максим Кобылинсикий
День добрый, а в SQL tarantool, можно создать таблицу с авто-инкрементом?
Если можно то можно пример?
Прочесал документацию, но ответа так на свой вопрос и не нашёл.
источник

M

MAPC in Tarantool
Подскажите, пожалуйста, как действовать в случае, когда на вставку приходит набор записей, например 1000, и бакет вычисляется по идентификатору этих записей, как передать
vshard.router.call
весь набор записей с посчитанными бакетами ?
Или только в цикле дергать ?
vshard.router.call(100,
                  'write',
                  'customer_add',
                  {{customer_id = 2, bucket_id = 100, name = 'name2', accounts = {}}},
                  {timeout = 5})
```
P.S. этот кусочек из документации, просто чтобы было понимание о чем я говорю
источник

АД

Арефьев Дмитрий... in Tarantool
А не проще ли будет через crud?
источник