diff --git a/src/box/lua/slab.cc b/src/box/lua/slab.cc index 0a88bd0c9ce5a5604878e3418a67213a6f123f93..f7e298157ec1fe1b12f7dc780223e0ce8c05a1d9 100644 --- a/src/box/lua/slab.cc +++ b/src/box/lua/slab.cc @@ -97,6 +97,24 @@ lbox_slab_info(struct lua_State *L) lua_pushstring(L, "arena_size"); luaL_pushnumber64(L, totals.total); lua_settable(L, -3); + + char value[32]; + double items_used_ratio = 100 + * ((double)totals.used) + / ((double)talloc.cache->arena->prealloc + 0.0001); + snprintf(value, sizeof(value), "%0.1lf%%", items_used_ratio); + lua_pushstring(L, "items_used_ratio"); + lua_pushstring(L, value); + lua_settable(L, -3); + + double arena_used_ratio = 100 + * ((double)talloc.cache->arena->used) + / ((double)talloc.cache->arena->prealloc + 0.0001); + snprintf(value, sizeof(value), "%0.1lf%%", arena_used_ratio); + lua_pushstring(L, "arena_used_ratio"); + lua_pushstring(L, value); + lua_settable(L, -3); + return 1; } diff --git a/test/box/misc.result b/test/box/misc.result index 59d1a1f60e010132f48ee7731552a3e2b23ba1fc..bea2b767b878b0df1cc20b092ebffa6235ae7ec6 100644 --- a/test/box/misc.result +++ b/test/box/misc.result @@ -148,9 +148,11 @@ end; ... t; --- -- - slabs - - arena_size +- - arena_used_ratio + - items_used_ratio - arena_used + - arena_size + - slabs ... ---------------- -- # box.error