<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet href="/feed_style.xsl" type="text/xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="https://www.rssboard.org/media-rss">
  <channel>
    <title>Performance Engineering on Eva Winterschon</title>
    <link>https://winterschon.gitlab.io/tags/performance-engineering/</link>
    <description>Recent content in Performance Engineering on Eva Winterschon</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>Some copyright notice - [my license](https://example.com/license)</copyright>
    <lastBuildDate>Thu, 18 Jun 2026 23:39:50 +0000</lastBuildDate><atom:link href="https://winterschon.gitlab.io/tags/performance-engineering/index.xml" rel="self" type="application/rss+xml" /><icon>https://winterschon.gitlab.io/logo.svg</icon>
    
    
    <item>
      <title>Inference Sector KPI SLO</title>
      <link>https://winterschon.gitlab.io/en/posts/inference-sector-kpi-slo/</link>
      <pubDate>Thu, 18 Jun 2026 23:39:50 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/inference-sector-kpi-slo/</guid>
      <description><![CDATA[<h2 id="why-should-anyone-care-about-kpis-and-slos">Why should anyone care about KPIs and SLOs?</h2>
<p>Generally, unless one gets paid to deal with OBS/Tel and SLA conformance.. ehh. Except that the modern world operates within the bounds of a diverse and often not-fascinating array of performance indicators and services&rsquo; operating metrics.</p>
<h4 id="so-here-are-two-for-today">So.. Here are two for today.</h4>
<ul>
<li><strong>KPI</strong> == Key Performance Indicator</li>
<li><strong>SLO</strong> == Service Level Objective</li>
</ul>
<h3 id="minor-backstory---today">Minor Backstory - Today</h3>
<p>While aggregating directory content from several workstations into a unified NFS remote mount,<em>(can&rsquo;t simply have one workstation, right? right)</em>, another encounter with SLO defs appears upon the terminal.</p>
<p>This time it&rsquo;s for LLM Inference customers and their typical requirements. Perhaps our standards repository would be helpful as an adjunct resource:</p>
<ul>
<li><a href="https://github.com/yukon-systems/YukonSYS-Standard-Definitions">https://github.com/yukon-systems/YukonSYS-Standard-Definitions</a></li>
</ul>
<h2 id="inference-service-kpis-by-sector">Inference Service KPIs by Sector</h2>
<p>An extension of distributed cloud services architecture with heavy focus on baremetal with VMs and Containers throughout. Many ways to solve the problems, scale the infra, etc.</p>
<h4 id="slo-additions-to-the-classifier-repo">SLO Additions to the Classifier Repo</h4>
<ul>
<li>This file is a compact companion to the observability + telemetry glossary.</li>
<li>Each threshold is a starting point and should be tightened to real-world workload SLOs after baselining standard operations.</li>
</ul>
<table>
  <thead>
      <tr>
          <th>Sector</th>
          <th>High-signal KPIs</th>
          <th>Default alert style</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>LLM Inference (GP-GPU Service Infra)</td>
          <td>TTFT, ITL/TPOT, E2E, QTS</td>
          <td>SLO-derived or baseline-relative; baseline-relative</td>
      </tr>
      <tr>
          <td>LLM Inference (API Service Infra)</td>
          <td>P95 LAT, ERR, 429R, UST</td>
          <td>SLO-derived</td>
      </tr>
      <tr>
          <td>LLM Inference (Network Hardware + Protocol Infra)</td>
          <td>OWD, PDV, LOSS, ECN</td>
          <td>baseline-relative; budget-relative</td>
      </tr>
      <tr>
          <td>LLM Inference (Prompt Caching, Compute + Re-Compute)</td>
          <td>PCHR, CTR, TTFTR, RCR</td>
          <td>absolute for cache-eligible traffic</td>
      </tr>
      <tr>
          <td>LLM Inference (Prompt Caching, Storage Infra)</td>
          <td>CHR, CLAT, COCC, EVR</td>
          <td>absolute; absolute for cache-eligible traffic</td>
      </tr>
      <tr>
          <td>LLM Inference (Prompt Caching API + Load-Balancers)</td>
          <td>RCHR, LQ, URT, RTR</td>
          <td>absolute</td>
      </tr>
      <tr>
          <td>LLM Training (bulk initial datasets)</td>
          <td>ITPS, DHR, UDR, CONT</td>
          <td>absolute; capacity-envelope</td>
      </tr>
      <tr>
          <td>LLM Training (pre-training MoE)</td>
          <td>MFU, STEP, A2AS, EIR</td>
          <td>absolute starting point; baseline-relative</td>
      </tr>
      <tr>
          <td>LLM Training (post-training MoE)</td>
          <td>TPS, MFU, RACC, RMAR</td>
          <td>absolute starting point; baseline-relative</td>
      </tr>
      <tr>
          <td>HPC - High Frequency Trading - VM Clusters</td>
          <td>RDY, CSTP, NUMA MISS, T2D</td>
          <td>absolute starting point</td>
      </tr>
      <tr>
          <td>HPC - High Frequency Trading - Baremetal</td>
          <td>W2W, JITR, CPM, MPKI</td>
          <td>baseline-relative; budget-relative</td>
      </tr>
      <tr>
          <td>HPC - High Frequency Trading - CDN</td>
          <td>CHR, OOR, TTFB, OTTFB</td>
          <td>absolute</td>
      </tr>
      <tr>
          <td>HPC - High Frequency Trading - Low-Latency Exec</td>
          <td>OWD, JIT, FLAT, OLAT</td>
          <td>baseline-relative; budget-relative</td>
      </tr>
      <tr>
          <td>HPC - Dark Fiber Regional Network + Infra</td>
          <td>AVAIL, OWD, Pre-FEC BER, OSNRM</td>
          <td>SLO-derived; budget-relative</td>
      </tr>
      <tr>
          <td>HPC - Quantitative Research + Machine Learning</td>
          <td>BTT, FLAT, TSS, FFL</td>
          <td>absolute starting point; baseline-relative</td>
      </tr>
      <tr>
          <td>HPC - Big-Data &amp; Multivariate Pattern Analysis</td>
          <td>JDUR, SKR, SPILL, CLAG</td>
          <td>SLA-derived; absolute</td>
      </tr>
      <tr>
          <td>SLA + SLO Monitoring, Telemetry, Alerting Infra</td>
          <td>SLI-AV, SLI-LAT, EBR, UP</td>
          <td>SLO-derived</td>
      </tr>
  </tbody>
</table>
<hr>
<h3 id="global-policy-adjustments">Global Policy Adjustments</h3>
<ul>
<li><strong>baseline_window</strong>:
<ul>
<li><code>7d median or p50/p95 baseline unless otherwise stated</code></li>
</ul>
</li>
<li><strong>slo_policy</strong>:
<ul>
<li><code>page: error budget burn rate &gt; 14.4 over 1h and 5m, or &gt; 6 over 6h and 30m</code></li>
<li><code>ticket: error budget burn rate &gt; 1 over 3d and 6h</code></li>
</ul>
</li>
<li><strong>capacity_policy</strong>:
<ul>
<li><code>warn: sustained &gt; 80% of validated steady-state capacity</code></li>
<li><code>critical: sustained &gt; 90% of validated steady-state capacity or latency inflects above SLO</code></li>
</ul>
</li>
<li><strong>regression_policy</strong>:
<ul>
<li><code>warn: &gt; 1.10x to 1.25x baseline depending on sector sensitivity</code></li>
<li><code>critical: &gt; 1.20x to 1.50x baseline depending on sector sensitivity</code></li>
</ul>
</li>
</ul>
<hr>
<h3 id="reference-considerations">Reference Considerations</h3>
<ul>
<li>Thresholds are starting operational thresholds, not universal laws.</li>
<li>Where a standards or vendor reference provides an acceptable range, that range is used.</li>
<li>Where no universal value exists, thresholds are either SLO-derived or baseline-relative (typically against a 7d median or a validated capacity envelope).</li>
<li>For latency-sensitive sectors, alert on percentile regressions and budget exhaustion, not averages.</li>
</ul>
<hr>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>Performance Engineering - Evaluative Metrics</title>
      <link>https://winterschon.gitlab.io/en/posts/performance-engineering-evaluative-metrics/</link>
      <pubDate>Sat, 13 Jun 2026 15:43:01 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/performance-engineering-evaluative-metrics/</guid>
      <description><![CDATA[<h2 id="llm-inference">LLM Inference</h2>
<table>
  <thead>
      <tr>
          <th>Sector</th>
          <th>Common metrics</th>
          <th>Less-known / specialist metrics</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>GP-GPU Service Infrastructure</td>
          <td>TTFT, ITL/TPOT, E2E request latency, TPS, RPS/QPS, Queue-Fill, KV/C metrics</td>
          <td>request_queue_time, request_prefill_time, request_decode_time, inflight time, SM occupancy, HBM/DRAM memory throughput</td>
      </tr>
      <tr>
          <td>API Service Infrastructure</td>
          <td>p50/p95/p99 latency, streaming TTFB/TTFT, RPS/QPS, error rate, 429 rate, active downstream connections, backend latency</td>
          <td>x-envoy-upstream-service-time, upstream_rq_time, TR/Tw/Tc/Tr/TA timer split in HAProxy, retry rate, queue-slot saturation, circuit-breaker usage</td>
      </tr>
      <tr>
          <td>Network Hardware + Protocol Infra</td>
          <td>RTT (round-trip time), one-way latency, jitter/PDV (packet delay variation), PPS/BPS, packet loss, retransmits</td>
          <td>ECN mark rate, PFC (priority flow control) pause events, microburst depth, CQE (completion queue entry) compression state, SymbolErrors, LinkRecoveries, PTP offset/path delay</td>
      </tr>
      <tr>
          <td>Prompt Caching, Compute + Re-Compute</td>
          <td>cache hit rate, cached_tokens, prompt_tokens, generation_tokens, TTFT reduction, cache read/write counts</td>
          <td>partial-hit ratio, cache-miss ratio, prefix-cache block hit rate, predicted KV hit rate, per-request routing overhead</td>
      </tr>
      <tr>
          <td>Prompt Caching, Storage Infra</td>
          <td>cache hit ratio, eviction rate, cache latency, TTL, GPU/CPU cache usage</td>
          <td>CPU-vs-GPU cache-hit split, priority-based eviction effect, TTL refresh behavior, KV-block fragmentation / block reuse</td>
      </tr>
      <tr>
          <td>Prompt Caching, API + Load-Balancers</td>
          <td>per-route/model hit rate, active and pending requests, backend latency, request rate, retries, error rate</td>
          <td>cache-aware routing predicted KV hit rate, routing overhead, queue time before backend selection, circuit-breaker saturation, connection-slot pressure</td>
      </tr>
  </tbody>
</table>
<h3 id="acronyms">Acronyms</h3>
<ul>
<li>TTFT == Time to First Token</li>
<li>ITL == Inter-Token Latency</li>
<li>TPOT == Time per Output Token</li>
<li>E2E == end-to-end</li>
<li>TKS == tokens/sec</li>
<li>RPS == requests/sec</li>
<li>QPS == queries/sec</li>
<li>KV/C == Key-Value Cache</li>
</ul>
<h2 id="llm-dataset-training">LLM Dataset Training</h2>
<table>
  <thead>
      <tr>
          <th>Operations</th>
          <th>Common metrics</th>
          <th>Less-known / specialist metrics</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Pre-loading datasets</td>
          <td>ingest throughput (docs/s, rows/s, bytes/s, tokens/s), tokenization throughput, DataLoader throughput, dedup ratio</td>
          <td>fuzzy-duplicate rate, semantic-duplicate rate, contamination rate/AUC, consumer lag, shuffle spill bytes</td>
      </tr>
      <tr>
          <td>Pre-training + MoE</td>
          <td>tokens/s, step time, MFU (model FLOPs utilization), training loss/perplexity, all-to-all/dispatch time, GPU memory</td>
          <td>auxiliary load-balancing loss, router z-loss, expert capacity factor, token-drop rate, per-layer expert imbalance</td>
      </tr>
      <tr>
          <td>Post-training + MoE</td>
          <td>step time, samples/s or tokens/s, train/val loss, reward/preference accuracy, KL divergence, MFU</td>
          <td>chosen vs rejected reward margin, chosen/rejected rewards, router aux/z loss during alignment, expert saturation under small-batch tuning</td>
      </tr>
  </tbody>
</table>
<h2 id="hpc--hft-analytics-infrastructure">HPC + HFT Analytics Infrastructure</h2>
<table>
  <thead>
      <tr>
          <th>Sector</th>
          <th>Common metrics</th>
          <th>Less-known / specialist metrics</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Virtual Machine Clusters</td>
          <td>p50/p99 service latency, jitter, CPU ready time, throughput, packet loss</td>
          <td>CPU co-stop, NUMA locality (numa_hit/numa_miss/local_node/other_node), vCPU scheduling contention, latency-sensitivity effectiveness</td>
      </tr>
      <tr>
          <td>Baremetal Systems</td>
          <td>wire-to-wire latency, p99/p999 jitter, PPS/Mpps, cycles, instructions, LLC-load-misses, branch-misses, RX/TX drops</td>
          <td>NUMA locality, interrupt coalescence, CQE compression state, packet pacing, driver extended stats / ring stress</td>
      </tr>
      <tr>
          <td>Content Delivery Networking</td>
          <td>cache hit ratio, TTFB, origin offload, request rate, error rate, egress bandwidth</td>
          <td>shield-layer hit ratio, origin_ttfb, child/parent cache status, regional cache-performance variance</td>
      </tr>
      <tr>
          <td>Low-Latency Trade-Execution Networks</td>
          <td>one-way latency, RTT, jitter, packet loss, order latency, feed latency</td>
          <td>microburst depth, queue/buffer pressure, ECN mark rate, PFC pause events, path asymmetry, PTP offset</td>
      </tr>
      <tr>
          <td>Dark Fiber Regional Network Infra</td>
          <td>one-way latency, RTT, availability, BER, pre-FEC BER, post-FEC BER</td>
          <td>OSNR/ESNR, Q-factor, CD (chromatic dispersion), PMD (polarization mode dispersion), FEC degrade indicators</td>
      </tr>
      <tr>
          <td>Quantitative Research + Machine Learning</td>
          <td>backtest wall-clock runtime, feed latency, order latency, feature-serving latency, feature-ingestion throughput</td>
          <td>training-serving skew, feature inflight vs write-to-store success metrics, feature health/correctness monitoring</td>
      </tr>
      <tr>
          <td>Data Analytics + Multivariate Analysis</td>
          <td>job duration, stage/task duration, throughput, end-to-end delay, records-consumed-rate, consumer lag, shuffle read/write</td>
          <td>spill bytes, skew via task-duration discrepancy or shuffle-read imbalance, straggler share, input-pipeline prefetch effectiveness</td>
      </tr>
  </tbody>
</table>
<h2 id="sla--slo-reliability-telemetry-alerting">SLA + SLO Reliability, Telemetry, Alerting</h2>
<ul>
<li>Pre-Defined latency/error/throughput SLIs and error budgets require burn-rate alerting</li>
<li>Prometheus and Alertmanager define scrape and notification timing controls</li>
<li>OpenTelemetry defines histograms and exemplars</li>
<li>Apdex is a standard user-satisfaction score</li>
<li>Elastic APM measures application performance traces</li>
</ul>
<table>
  <thead>
      <tr>
          <th>Sector</th>
          <th>Common metrics</th>
          <th>Less-known / specialist metrics</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>SLA + SLO Monitoring, Telemetry, Alerting Infra</td>
          <td>availability SLI, latency SLI, error rate, throughput, Apdex, error-budget burn rate</td>
          <td>multi-window multi-burn-rate alerts, scrape_duration / scrape_timeout ratio, group_wait / group_interval / repeat_interval, histogram bucket design, exemplars</td>
      </tr>
  </tbody>
</table>
<h2 id="shared-analytics-of-interest">Shared Analytics of Interest</h2>
<table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>Signal</th>
          <th>Typical domains</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Queue time</td>
          <td>Separates saturation from raw compute/network slowness</td>
          <td>LLM serving, API gateways, load balancers, HFT</td>
      </tr>
      <tr>
          <td>Prefill vs decode split</td>
          <td>Distinguishes prompt-processing bottlenecks from token-generation bottlenecks</td>
          <td>LLM GPU serving</td>
      </tr>
      <tr>
          <td>Prefix/KV cache hit rate</td>
          <td>Direct proxy for avoidable recompute and TTFT improvement</td>
          <td>LLM serving, agentic systems</td>
      </tr>
      <tr>
          <td>Auxiliary MoE loss and router z-loss</td>
          <td>Early warning for expert imbalance and routing instability</td>
          <td>MoE training</td>
      </tr>
      <tr>
          <td>CPU ready / co-stop / NUMA miss</td>
          <td>Often the real cause of inconsistent latency in virtualized clusters</td>
          <td>VM-based HFT / HPC</td>
      </tr>
      <tr>
          <td>Microburst depth and ECN/PFC behavior</td>
          <td>Reveals congestion that average bandwidth hides</td>
          <td>Low-latency Ethernet / RoCE fabrics</td>
      </tr>
      <tr>
          <td>OSNR / CD / PMD / pre-FEC BER</td>
          <td>Core optical-health indicators long before full link failure</td>
          <td>Dark fiber / coherent optics</td>
      </tr>
      <tr>
          <td>Spill bytes and consumer lag</td>
          <td>Early warning for data-path backpressure and skew</td>
          <td>Big-data pipelines</td>
      </tr>
      <tr>
          <td>Burn rate and exemplars</td>
          <td>Better operational signal than raw alert count or average latency</td>
          <td>SLO / observability stacks</td>
      </tr>
  </tbody>
</table>
]]></description>
      
    </item>
    
    
  </channel>
</rss>
