Size: a a a

2020 December 17

AK

Alexey Kuzin in Tarantool
Владимир Камаев
Привет

Скажите, отчего периодически может разрастаться box.runtime.info().used до нескольких десятков гигабайт на одной из нод кластера? Например так:

box.runtime.info()
———————————-
{
   "lua": 1945021,
   "maxalloc": 4398046510080,
   "used": 22779265024
}

box.info.memory()
———————————-
{
   "cache": 0,
   "data": 2123363584,
   "tx": 0,
   "lua": 1943463,
   "net": 1228800,
   "index": 3862429696
}
box.slab.stat() покажите
источник

ВК

Владимир Камаев... in Tarantool
Alexey Kuzin
box.slab.stat() покажите
источник

AK

Alexey Kuzin in Tarantool
источник

ВК

Владимир Камаев... in Tarantool
box.slab.info()
{
     "items_size": 2391497288,
     "items_used_ratio": "88.79%",
     "quota_size": 32212254720,
     "quota_used_ratio": "74.43%",
     "arena_used_ratio": "25.0%",
     "items_used": 2123363584,
     "quota_used": 23974641664,
     "arena_size": 23974641664,
     "arena_used": 5985793280
   }
источник

I

Ilya in Tarantool
приветствую, а где подразумевается хранить rocks для приложений который запускаем через systemd из instances.enabled?
источник

AK

Alexey Kuzin in Tarantool
Владимир Камаев
Привет

Скажите, отчего периодически может разрастаться box.runtime.info().used до нескольких десятков гигабайт на одной из нод кластера? Например так:

box.runtime.info()
———————————-
{
   "lua": 1945021,
   "maxalloc": 4398046510080,
   "used": 22779265024
}

box.info.memory()
———————————-
{
   "cache": 0,
   "data": 2123363584,
   "tx": 0,
   "lua": 1943463,
   "net": 1228800,
   "index": 3862429696
}
Какие процесс у вас там происходят? Есть ли удаление/реплейс таплов? Рестартует ли инстанс?
источник

AK

Alexey Kuzin in Tarantool
Ilya
приветствую, а где подразумевается хранить rocks для приложений который запускаем через systemd из instances.enabled?
Где-то в системных путях поиска
источник

AK

Alexey Kuzin in Tarantool
Попробуйте в Тарантуле зареквайрить несуществующий модуль и увидите их
источник

I

Ilya in Tarantool
Это я видел в ошибке отсюда и вопрос возник, думал есть какой стандарт возможно
источник

AT

Alexander Turenko in Tarantool
Ilya
приветствую, а где подразумевается хранить rocks для приложений который запускаем через systemd из instances.enabled?
/usr/share/tarantool обычно. Если через tarantoolctl rocks, то ставьте в корень.
источник

AK

Alexey Kuzin in Tarantool
Alexander Turenko
/usr/share/tarantool обычно. Если через tarantoolctl rocks, то ставьте в корень.
в /.rocks
источник

I

Ilya in Tarantool
Благодарю
источник

AT

Alexander Turenko in Tarantool
Вообще, у нас под многое есть пакеты.
источник

ВК

Владимир Камаев... in Tarantool
Alexey Kuzin
Какие процесс у вас там происходят? Есть ли удаление/реплейс таплов? Рестартует ли инстанс?
И удаление и реплейс есть. Причем рост происходит резко в течении нескольких минут и уже на таком уровне может держаться продолжительное время
источник

AK

Alexey Kuzin in Tarantool
Владимир Камаев
И удаление и реплейс есть. Причем рост происходит резко в течении нескольких минут и уже на таком уровне может держаться продолжительное время
Это рост аллоцированной памяти. Судя по метрикам, у вас она нормально переиспользуется потом и значительной фрагментации не наблюдается.
источник

ВК

Владимир Камаев... in Tarantool
Alexey Kuzin
Это рост аллоцированной памяти. Судя по метрикам, у вас она нормально переиспользуется потом и значительной фрагментации не наблюдается.
разве runtime арена учитывается в выводе box.slab.info()?
источник

AK

Alexey Kuzin in Tarantool
Владимир Камаев
разве runtime арена учитывается в выводе box.slab.info()?
Аллоцируете ли вы новые туплы через box.tuple.new()? Какими модулями пользуетесь?
источник

ВК

Владимир Камаев... in Tarantool
нет box.tuple.new() не используется, из модулей используем только expirationd, fiber, log
источник

I

Ilya in Tarantool
Сделал  tarantoolctl rocks install http в корень, получаю
tarantool> h = require('http')
---
- error: "[string \"h = require('http')\"]:1: module 'http' not found:\n\tno field
   package.preload['http']\n\tno file '/home/http.lua'\n\tno file '/home/http/init.lua'\n\tno
   file '/home/http.so'\n\tno file '/home/.rocks/share/tarantool/http.lua'\n\tno
   file '/home/.rocks/share/tarantool/http/init.lua'\n\tno file '/.rocks/share/tarantool/http.lua'\n\tno
   file '/.rocks/share/tarantool/http/init.lua'\n\tno file '/home/.rocks/lib/tarantool/http.so'\n\tno
   file '/.rocks/lib/tarantool/http.so'\n\tno file '/root/.luarocks/share/lua/5.1/http.lua'\n\tno
   file '/root/.luarocks/share/lua/5.1/http/init.lua'\n\tno file '/root/.luarocks/share/lua/http.lua'\n\tno
   file '/root/.luarocks/share/lua/http/init.lua'\n\tno file '/usr/local/share/tarantool/http.lua'\n\tno
   file '/usr/local/share/tarantool/http/init.lua'\n\tno file '/usr/share/tarantool/http.lua'\n\tno
   file '/usr/share/tarantool/http/init.lua'\n\tno file '/usr/local/share/lua/5.1/http.lua'\n\tno
   file '/usr/local/share/lua/5.1/http/init.lua'\n\tno file '/usr/share/lua/5.1/http.lua'\n\tno
   file '/usr/share/lua/5.1/http/init.lua'\n\tno file '/root/.luarocks/lib/lua/5.1/http.so'\n\tno
   file '/root/.luarocks/lib/lua/http.so'\n\tno file '/usr/local/lib/x86_64-linux-gnu/tarantool/http.so'\n\tno
   file '/usr/lib/x86_64-linux-gnu/tarantool/http.so'\n\tno file '/usr/local/lib/tarantool/http.so'\n\tno
   file '/usr/local/lib/x86_64-linux-gnu/lua/5.1/http.so'\n\tno file '/usr/lib/x86_64-linux-gnu/lua/5.1/http.so'\n\tno
   file '/usr/local/lib/lua/5.1/http.so'"
...

что я делаю не так?
источник

AK

Alexey Kuzin in Tarantool
Владимир Камаев
нет box.tuple.new() не используется, из модулей используем только expirationd, fiber, log
Есть ли у вас кейсы большого количества одновременных входящих или исходящих соединений?
источник