Skip to content

Commit a365860

Browse files
committed
doc: write overview on slab tab in tcm ui
1 parent 9188854 commit a365860

File tree

2 files changed

+65
-7
lines changed

2 files changed

+65
-7
lines changed
160 KB
Loading

doc/tooling/tcm/tcm_ui_overview.rst

Lines changed: 65 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ To log into |tcm| after bootstrap, use the following credentials:
3636
After logging in with the default password:
3737

3838
#. Adjust the :ref:`password policy <tcm_access_control_password_policy>`
39-
in accordance to the security requirements that apply in your organization.
39+
in accordance with the security requirements that apply in your organization.
4040
#. Change the ``admin`` user's password on the :ref:`User settings <tcm_ui_user_settings>` page.
4141

4242
To log out of |tcm|, click the user's name in the header and click **Log out**.
@@ -64,7 +64,7 @@ Onboarding
6464
----------
6565

6666
The **Onboarding** item of the navigation pane starts the interactive onboarding
67-
tutorial. Use it to get familiar with main |tcm| features directly in the web interface.
67+
tutorial. Use it to get familiar with the main |tcm| features directly in the web interface.
6868

6969
.. _tcm_ui_visibility:
7070

@@ -92,7 +92,7 @@ There are the following page groups:
9292
- **Tools**: |tcm| administration.
9393
- **Settings**: runtime management of |tcm| settings.
9494

95-
Read on to learn what you can do on pages of these groups.
95+
Read on to learn what you can do on the pages of these groups.
9696

9797
.. _tcm_ui_cluster:
9898

@@ -156,14 +156,72 @@ The instance page has an **Actions** menu at the top that allows you to:
156156
- edit the instance configuration
157157
- remove the instance
158158

159+
Slabs tab overview
160+
^^^^^^^^^^^^^^^^^^
161+
162+
The **Slabs** tab in the TCM Web UI visualizes memory allocation within each Tarantool instance using the slab allocator.
163+
164+
This tab is useful for:
165+
166+
- Identifying memory fragmentation
167+
- Analyzing cache saturation by object size
168+
- Debugging excessive memory use in real time
169+
170+
171+
This visualization is based on the output of:
172+
173+
.. code-block:: lua
174+
175+
box.slab.stats()
176+
177+
This function returns a Lua table with per-class (per object size) memory allocation statistics from the slab allocator.
178+
179+
Each entry in the output contains:
180+
181+
- ``item_size``: object size class
182+
- ``slab_count``: number of slab blocks
183+
- ``slab_size``: memory size of each slab
184+
- ``item_count``: number of allocated objects
185+
- ``mem_used``: bytes used
186+
- ``mem_free``: bytes free
187+
188+
These values are parsed and rendered as visual elements in the UI.
189+
190+
Each block represents a single slab (a fixed-size memory region). The color indicates how full the slab is:
191+
192+
- **Green** — slab is partially filled
193+
- **Red** — slab is full (100% usage)
194+
195+
.. image:: _images/tcm_ui_slabs.png
196+
:width: 700px
197+
198+
199+
200+
If multiple slabs are shown for the same object size, each slab’s fill level is calculated individually and visualized accordingly.
201+
Each row represents a cache class (object allocation group) for a specific `item_size`.
202+
203+
The overall fill percentage for a cache class is calculated using:
204+
205+
.. code-block:: text
206+
207+
fill % = (item_count * item_size) / (slab_count * slab_size)
208+
209+
However, each slab is visualized individually, so different fill levels across slabs will result in various colors within the same row.
210+
211+
Slab allocation may vary between Tarantool instances within the same replica set due to:
212+
213+
- Runs in a separate process
214+
- Allocates memory independently
215+
- May receive different workloads or query patterns
216+
159217
.. _tcm_ui_cluster_config:
160218

161219
Configuration
162220
~~~~~~~~~~~~~
163221

164222
The cluster **Configuration** page provides an interactive editor for the cluster
165223
:ref:`configuration <configuration>`. It is connected to the centralized configuration
166-
storage that the cluster uses. All changes you make and apply on this page are
224+
storage that the cluster uses. All changes you make and apply to this page are
167225
sent to this centralized storage.
168226

169227
.. image:: _images/tcm_ui_config.png
@@ -211,7 +269,7 @@ Tuples
211269
The cluster-wide access to stored data on the **Tuples** page is supported only
212270
for sharded clusters that use the `CRUD <https://github.com/tarantool/crud>`__ module.
213271

214-
The **Tuples** page provides access to data stored in user spaces of the selected
272+
The **Tuples** page provides access to data stored in the user spaces of the selected
215273
cluster.
216274

217275
.. image:: _images/tcm_ui_tuples.png
@@ -221,7 +279,7 @@ cluster.
221279

222280
On this page, you can:
223281

224-
- view the list of user spaces, their size and engines
282+
- view the list of user spaces, their size, and engines
225283
- view and edit tuples stored in user spaces
226284

227285
.. _tcm_ui_cluster_tcf:
@@ -273,7 +331,7 @@ including system spaces.
273331

274332
On this page, you can:
275333

276-
- view and edit instance spaces, their size and engines
334+
- view and edit instance spaces, their size, and engines
277335
- view and edit tuples stored in all spaces of the instance
278336

279337
.. _tcm_ui_clusters:

0 commit comments

Comments
 (0)