This commit is contained in:
Mateusz Gruszczyński committed 2026-11-09 11:22:09 +01:00
1 parent 0cbe0566f5
commit 992a1795af
34 files changed
+1409 -604

No files matched your search

+51
View File
@@ -339,6 +339,57 @@
</div>
</div>
</article>
<article class="card mb-card" data-dashboard-widget="memory_breakdown">
<div class="mini-heading">
<h3 data-i18n="memoryBreakdownTitle">Memory breakdown</h3>
<div class="mini-heading-actions">
<details class="metric-info">
<summary data-i18n-aria="memoryBreakdownInfo" aria-label="Memory breakdown information">i</summary>
<div class="metric-info-popover">
<p class="fine" data-i18n="memoryBreakdownHint">Splits the process RSS into cached object data, the cache's own bookkeeping (index, keys, headers), short-lived cache buffers, memory the allocator keeps free for reuse (fragmentation; an upper bound, part of it may already be returned to the kernel), program code and mapped files, and everything else (connections, TLS, runtime, logs, GeoIP). For comparison, Varnish documents about 1 KiB of per-object overhead outside its storage size. A steadily rising "outside cache" trend while the cache is full suggests a leak; a flat one means overhead or fragmentation.</p>
</div>
</details>
<span class="meta" id="mb-rss">-</span>
</div>
</div>
<dl class="pr-chips mb-chips">
<div class="pr-chip" title="Process RSS divided by the accounted HOT cache size" data-i18n-title="memoryRatioHelp"><dt data-i18n="memoryRatio">RSS / cache</dt><dd id="mb-ratio">-</dd></div>
<div class="pr-chip" title="Cache bookkeeping per stored object (accounted size minus object data)" data-i18n-title="memoryPerObjectHelp"><dt data-i18n="memoryPerObject">Overhead / object</dt><dd id="mb-per-object">-</dd></div>
<div class="pr-chip"><dt data-i18n="memoryObjects">HOT objects</dt><dd id="mb-objects">-</dd></div>
<div class="pr-chip" title="Free memory held by the allocator as a share of its heap" data-i18n-title="memoryFragmentationHelp"><dt data-i18n="memoryFragmentation">Fragmentation</dt><dd id="mb-fragmentation">-</dd></div>
</dl>
<div class="mb-bar" id="mb-bar" role="img" aria-label="Process memory breakdown" data-i18n-aria="memoryBreakdownTitle">
<i class="mb-cache-data"></i><i class="mb-cache-meta"></i><i class="mb-transient"></i><i class="mb-alloc-free"></i><i class="mb-files"></i><i class="mb-rest"></i>
</div>
<ul class="mb-legend">
<li class="mb-item" data-mb-row="cache-data"><i class="mb-swatch mb-cache-data" aria-hidden="true"></i><span class="mb-name" data-i18n="memoryCacheData">Cache data (object bodies)</span><b id="mb-cache-data-value">-</b><em id="mb-cache-data-share">-</em></li>
<li class="mb-item" data-mb-row="cache-meta"><i class="mb-swatch mb-cache-meta" aria-hidden="true"></i><span class="mb-name" data-i18n="memoryCacheMeta">Cache bookkeeping</span><b id="mb-cache-meta-value">-</b><em id="mb-cache-meta-share">-</em></li>
<li class="mb-item" data-mb-row="transient"><i class="mb-swatch mb-transient" aria-hidden="true"></i><span class="mb-name" data-i18n="memoryTransient">Cache buffers (fills, queues)</span><b id="mb-transient-value">-</b><em id="mb-transient-share">-</em></li>
<li class="mb-item" data-mb-row="alloc-free"><i class="mb-swatch mb-alloc-free" aria-hidden="true"></i><span class="mb-name" data-i18n="memoryAllocatorFree">Free, held by allocator</span><b id="mb-alloc-free-value">-</b><em id="mb-alloc-free-share">-</em></li>
<li class="mb-item" data-mb-row="files"><i class="mb-swatch mb-files" aria-hidden="true"></i><span class="mb-name" data-i18n="memoryFiles">Code and mapped files</span><b id="mb-files-value">-</b><em id="mb-files-share">-</em></li>
<li class="mb-item" data-mb-row="rest"><i class="mb-swatch mb-rest" aria-hidden="true"></i><span class="mb-name" data-i18n="memoryRest">Rest of process</span><b id="mb-rest-value">-</b><em id="mb-rest-share">-</em></li>
</ul>
<div class="pr-cols mb-cols">
<section>
<h4 class="pr-title" data-i18n="memoryAllocatorTitle">Allocator</h4>
<dl class="pr-list pr-plain" id="mb-allocator">
<div class="pr-row"><dt data-i18n="memoryAllocatorHeap">Heap (arenas)</dt><dd id="mb-heap">-</dd></div>
<div class="pr-row"><dt data-i18n="memoryAllocatorInUse">In use</dt><dd id="mb-in-use">-</dd></div>
<div class="pr-row"><dt data-i18n="memoryAllocatorFreeHeld">Free, held</dt><dd id="mb-free">-</dd></div>
<div class="pr-row"><dt data-i18n="memoryAllocatorMmap">Large blocks (mmap) · count</dt><dd id="mb-mmap">-</dd></div>
</dl>
<p class="fine mb-unavailable" id="mb-allocator-unavailable" hidden data-i18n="memoryAllocatorUnavailable">Allocator statistics are available only with the default glibc allocator.</p>
</section>
<section class="mini-live-chart mb-trend">
<div class="mini-live-chart-head"><span data-i18n="memoryOutsideCache">Outside cache</span><b id="mb-outside-value">-</b></div>
<svg preserveAspectRatio="none" aria-label="Memory outside cache history" data-i18n-aria="memoryOutsideCacheHistory" role="img" viewbox="0 0 300 60">
<path class="chart-grid" d="M0 15H300 M0 30H300 M0 45H300"></path>
<polyline class="diagnostic-line mb-outside-line" id="mb-outside-sparkline" points="0,55 300,55"></polyline>
</svg>
<div class="mb-trend-foot"><span class="mb-badge" id="mb-trend-badge" data-state="collecting">-</span><span class="meta" id="mb-trend-rate">-</span></div>
</section>
</div>
</article>
<article class="card" data-dashboard-widget="process_simple">
<div class="mini-heading">
<h3 data-i18n="processClassicTitle">Process simple</h3>