<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Блог]]></title><description><![CDATA[Интересные статьи про серверы, VPS / VDS, защиту от DDoS-атак и другие решения для бизнеса в блоге King Servers. Полезное для сайта. ★ Читать актуальные публикации на сайте King Servers]]></description><link>https://kingservers.com/blog/</link><image><url>https://kingservers.com/blog/favicon.png</url><title>Блог</title><link>https://kingservers.com/blog/</link></image><generator>Ghost 5.69</generator><lastBuildDate>Sun, 13 Sep 2026 19:14:47 GMT</lastBuildDate><atom:link href="https://kingservers.com/blog/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[BBR и fq для LLM-стриминга: как убрать сетевую очередь из latency и не перепутать её с TTFT]]></title><description><![CDATA[Практический runbook по BBR и fq для LLM-стриминга: как отделить TTFT от сетевой очереди, снять baseline, провести canary, проверить ss/qdisc и доказать эффект rollback-контрфактом.]]></description><link>https://kingservers.com/blog/bbr-fq-llm-streaming-network-runbook/</link><guid isPermaLink="false">6aa67227aff2afac25354ca3</guid><category><![CDATA[Решения для бизнеса]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Sun, 13 Sep 2026 09:55:08 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-hero-212c0559.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#latency-layers">&#x413;&#x434;&#x435; &#x43D;&#x430; &#x441;&#x430;&#x43C;&#x43E;&#x43C; &#x434;&#x435;&#x43B;&#x435; &#x436;&#x438;&#x432;&#x451;&#x442; &#x437;&#x430;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x430; LLM-&#x441;&#x442;&#x440;&#x438;&#x43C;&#x430;</a></li>
<li><a href="#bbr-fq-mechanics">&#x427;&#x442;&#x43E; BBR &#x438; fq &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442; &#x432; Linux</a></li>
<li><a href="#baseline-identity">Baseline &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x441; identity: &#x43A;&#x430;&#x43A;&#x43E;&#x439; &#x441;&#x43E;&#x43A;&#x435;&#x442;, &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441; &#x438; qdisc &#x432;&#x44B; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x435;</a></li>
<li><a href="#prove-network">&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443;, &#x430; &#x443;&#x436;&#x435; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; congestion control</a></li>
<li><a href="#cubic-control">&#x421;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44C; CUBIC &#x438; &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; workload &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;</a></li>
<li><a href="#enable-canary">&#x412;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; BBR &#x438; fq &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; canary-&#x443;&#x437;&#x43B;&#x435;</a></li>
<li><a href="#read-ss">&#x41A;&#x430;&#x43A; &#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; ss &#x438; qdisc &#x431;&#x435;&#x437; &#x43B;&#x43E;&#x436;&#x43D;&#x43E;&#x439; &#x43F;&#x43E;&#x431;&#x435;&#x434;&#x44B; &#x43F;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x435;</a></li>
<li><a href="#rollback-proof">Rollback &#x2014; &#x44D;&#x442;&#x43E; &#x447;&#x430;&#x441;&#x442;&#x44C; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430;, &#x430; &#x43D;&#x435; &#x430;&#x432;&#x430;&#x440;&#x438;&#x439;&#x43D;&#x430;&#x44F; &#x43A;&#x43D;&#x43E;&#x43F;&#x43A;&#x430;</a></li>
<li><a href="#disqualifiers">&#x41A;&#x43E;&#x433;&#x434;&#x430; BBR/fq &#x43D;&#x435; &#x43F;&#x43E;&#x43C;&#x43E;&#x436;&#x435;&#x442; &#x2014; &#x438; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x442;&#x432;&#x43B;&#x435;&#x447;&#x44C; &#x43E;&#x442; &#x43D;&#x430;&#x441;&#x442;&#x43E;&#x44F;&#x449;&#x435;&#x439; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B;</a></li>
<li><a href="#production-rollout">Production rollout: &#x446;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43D;&#x435; &#x432; sysctl, &#x430; &#x432; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x435; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;</a></li>
<li><a href="#final-checklist">&#x427;&#x435;&#x43A;-&#x43B;&#x438;&#x441;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x434; rollout &#x438; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x439; &#x432;&#x44B;&#x432;&#x43E;&#x434;</a></li>
</ul></div>

</div>&#x421;&#x442;&#x440;&#x438;&#x43C; LLM &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x435;&#x442;&#x44C; &#xAB;&#x441;&#x435;&#x442;&#x435;&#x432;&#x44B;&#x43C;&#xBB; &#x434;&#x430;&#x436;&#x435; &#x442;&#x43E;&#x433;&#x434;&#x430;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x441;&#x435;&#x442;&#x44C; &#x43D;&#x438; &#x43F;&#x440;&#x438; &#x447;&#x451;&#x43C;: &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x442;&#x43E;&#x43A;&#x435;&#x43D; &#x436;&#x434;&#x451;&#x442; GPU, gateway &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x431;&#x443;&#x444;&#x435;&#x440;, &#x430; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x430;&#x43C;&#x438; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x430;&#x43C;&#x43E; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; &#x43F;&#x430;&#x443;&#x437;&#x44B;. &#x418;&#x437;-&#x437;&#x430; &#x44D;&#x442;&#x43E;&#x433;&#x43E; BBR &#x447;&#x430;&#x441;&#x442;&#x43E; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x44E;&#x442; &#x441;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x440;&#x430;&#x43D;&#x43E; &#x2014; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x44E;&#x442; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; congestion control, &#x43D;&#x43E; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43D;&#x43E;&#x435; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x43E;&#x439; latency. &#x412; &#x44D;&#x442;&#x43E;&#x43C; runbook &#x43C;&#x44B; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x43C; TTFT, &#x43C;&#x435;&#x436;&#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x43F;&#x430;&#x443;&#x437;&#x44B; &#x438; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C;, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x43C; BBR + fq &#x43D;&#x430; canary-&#x443;&#x437;&#x43B;&#x435; &#x438; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x432;&#x435;&#x440;&#x43D;&#x451;&#x43C; baseline, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x44C; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C;. &#x426;&#x435;&#x43B;&#x44C; &#x43D;&#x435; &#xAB;&#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x44C; &#x418;&#x43D;&#x442;&#x435;&#x440;&#x43D;&#x435;&#x442; &#x43E;&#x434;&#x43D;&#x43E;&#x439; sysctl&#xBB;, &#x430; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x44C;, &#x43A;&#x43E;&#x433;&#x434;&#x430; sender-side TCP pacing &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x432;&#x43B;&#x438;&#x44F;&#x435;&#x442; &#x43D;&#x430; LLM-&#x441;&#x442;&#x440;&#x438;&#x43C;&#x438;&#x43D;&#x433;.<div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <img src="https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-hero-212c0559.webp" alt="BBR &#x438; fq &#x434;&#x43B;&#x44F; LLM-&#x441;&#x442;&#x440;&#x438;&#x43C;&#x438;&#x43D;&#x433;&#x430;: &#x43A;&#x430;&#x43A; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x438;&#x437; latency &#x438; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x443;&#x442;&#x430;&#x442;&#x44C; &#x435;&#x451; &#x441; TTFT"><p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="latency-layers">&#x413;&#x434;&#x435; &#x43D;&#x430; &#x441;&#x430;&#x43C;&#x43E;&#x43C; &#x434;&#x435;&#x43B;&#x435; &#x436;&#x438;&#x432;&#x451;&#x442; &#x437;&#x430;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x430; LLM-&#x441;&#x442;&#x440;&#x438;&#x43C;&#x430;</h2>
<p>&#x423; LLM API &#x441;&#x43B;&#x43E;&#x432;&#x43E; <em>latency</em> &#x441;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x43E;&#x434;&#x438;&#x43D; &#x43E;&#x431;&#x449;&#x438;&#x439; &#x433;&#x440;&#x430;&#x444;&#x438;&#x43A;. &#x414;&#x43B;&#x44F; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E;. &#x41C;&#x438;&#x43D;&#x438;&#x43C;&#x443;&#x43C; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x43F;&#x443;&#x442;&#x44C; &#x43D;&#x430; &#x442;&#x440;&#x438; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x445; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x432;&#x430;&#x43B;&#x430;: &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x431;&#x430;&#x439;&#x442;&#x430;/&#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x430;, &#x43F;&#x430;&#x443;&#x437;&#x44B; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x43C;&#x438; &#x447;&#x430;&#x43D;&#x43A;&#x430;&#x43C;&#x438; &#x438; &#x43F;&#x43E;&#x43B;&#x43D;&#x443;&#x44E; &#x434;&#x43B;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x430;. &#x41F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x432;&#x430;&#x43B; &#x447;&#x430;&#x441;&#x442;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C;&#x44E; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;, prefill, &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; GPU, cold start &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x438;&#x43B;&#x438; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x43E;&#x439; gateway. &#x412;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x443;&#x436;&#x435; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; decode cadence, buffering &#x438; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x439; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43A;&#x438;. &#x422;&#x440;&#x435;&#x442;&#x438;&#x439; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x435;&#x442; &#x432;&#x441;&#x451; &#x441;&#x440;&#x430;&#x437;&#x443;.</p><p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;: TTFT &#x432;&#x44B;&#x440;&#x43E;&#x441; &#x441; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x433;&#x43E; &#x443;&#x440;&#x43E;&#x432;&#x43D;&#x44F;, &#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x430; &#x43F;&#x43E;&#x442;&#x43E;&#x43A; &#x438;&#x434;&#x451;&#x442; &#x440;&#x43E;&#x432;&#x43D;&#x43E;. &#x42D;&#x442;&#x43E; &#x43F;&#x43B;&#x43E;&#x445;&#x43E;&#x439; &#x43A;&#x430;&#x43D;&#x434;&#x438;&#x434;&#x430;&#x442; &#x434;&#x43B;&#x44F; BBR: congestion control &#x43D;&#x435; &#x441;&#x43E;&#x43A;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x43D;&#x430; GPU. &#x41E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x430;&#x44F; &#x43A;&#x430;&#x440;&#x442;&#x438;&#x43D;&#x430; &#x2014; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x442;&#x43E;&#x43A;&#x435;&#x43D; &#x43F;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x432;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x44F;, &#x43D;&#x43E; &#x434;&#x430;&#x43B;&#x435;&#x435; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442; &#x432;&#x438;&#x434;&#x438;&#x442; &#x43D;&#x435;&#x440;&#x435;&#x433;&#x443;&#x43B;&#x44F;&#x440;&#x43D;&#x44B;&#x435; &#x43F;&#x430;&#x443;&#x437;&#x44B;, RTT &#x43F;&#x43E;&#x434; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x43E;&#x439; &#x440;&#x430;&#x441;&#x442;&#x451;&#x442;, &#x43D;&#x430; sender-&#x441;&#x43E;&#x43A;&#x435;&#x442;&#x435; &#x432;&#x438;&#x434;&#x43D;&#x44B; retransmissions &#x438;&#x43B;&#x438; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; qdisc. &#x412;&#x43E;&#x442; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x439; &#x441;&#x43B;&#x43E;&#x439; &#x443;&#x436;&#x435; &#x437;&#x430;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; canary-&#x442;&#x435;&#x441;&#x442;&#x430;.</p><p>&#x415;&#x449;&#x451; &#x43E;&#x434;&#x43D;&#x430; &#x442;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x430;&#x44F; &#x43B;&#x43E;&#x432;&#x443;&#x448;&#x43A;&#x430; &#x2014; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x44C; &#x43D;&#x435; &#x442;&#x43E;&#x442; &#x445;&#x43E;&#x441;&#x442;. &#x415;&#x441;&#x43B;&#x438; &#x432;&#x43D;&#x435;&#x448;&#x43D;&#x438;&#x439; TCP &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x430; reverse proxy, ingress-controller &#x438;&#x43B;&#x438; L7 gateway, &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43E;&#x43D; &#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; sender &#x434;&#x43B;&#x44F; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x43E;&#x433;&#x43E; &#x441;&#x43E;&#x435;&#x434;&#x438;&#x43D;&#x435;&#x43D;&#x438;&#x44F;. &#x418;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; TCP congestion control &#x43D;&#x430; backend &#x441; vLLM &#x43D;&#x435; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D;&#x43E; &#x43F;&#x43E;&#x432;&#x43B;&#x438;&#x44F;&#x442;&#x44C; &#x43D;&#x430; WAN-&#x441;&#x435;&#x433;&#x43C;&#x435;&#x43D;&#x442; &#x434;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F;. &#x414;&#x43B;&#x44F; &#x430;&#x440;&#x445;&#x438;&#x442;&#x435;&#x43A;&#x442;&#x443;&#x440;&#x44B; gateway &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x441;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x441; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B;&#x43E;&#x43C; <a href="https://kingservers.com/blog/private-ai-api-analog-openai-na-svoih-serverah/">&#x43F;&#x440;&#x43E; Private AI API</a>, &#x430; &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C; &#x43D;&#x430; GPU &#x2014; &#x441; &#x440;&#x430;&#x437;&#x431;&#x43E;&#x440;&#x43E;&#x43C; <a href="https://kingservers.com/blog/gpu-throttling-llm-inference-dcgm-prometheus/">GPU throttling &#x447;&#x435;&#x440;&#x435;&#x437; DCGM &#x438; Prometheus</a>.</p><p>&#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; gate &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x439;: &#x432;&#x44B; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x439; TCP sender, &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;, &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; &#x441;&#x435;&#x433;&#x43C;&#x435;&#x43D;&#x442; &#x438; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x443;&#x44E; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x443;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x443;&#x44E; &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442;&#x435;&#x441;&#x44C; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x438;&#x442;&#x44C;. &#x415;&#x441;&#x43B;&#x438; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43D;&#x435;&#x442;, &#x441;&#x43C;&#x435;&#x43D;&#x430; &#x430;&#x43B;&#x433;&#x43E;&#x440;&#x438;&#x442;&#x43C;&#x430; &#x2014; &#x442;&#x44E;&#x43D;&#x438;&#x43D;&#x433; &#x432;&#x441;&#x43B;&#x435;&#x43F;&#x443;&#x44E;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-inline-03-f1ca9d79.webp" class="kg-image" alt="BBR &#x438; fq &#x434;&#x43B;&#x44F; LLM-&#x441;&#x442;&#x440;&#x438;&#x43C;&#x438;&#x43D;&#x433;&#x430;: &#x43A;&#x430;&#x43A; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x438;&#x437; latency &#x438; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x443;&#x442;&#x430;&#x442;&#x44C; &#x435;&#x451; &#x441; TTFT" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/bbr-fq-llm-streaming-network-runbook-inline-03-f1ca9d79.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/bbr-fq-llm-streaming-network-runbook-inline-03-f1ca9d79.webp 1000w, https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-inline-03-f1ca9d79.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="bbr-fq-mechanics">&#x427;&#x442;&#x43E; BBR &#x438; fq &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442; &#x432; Linux</h2>
<p>BBR &#x2014; congestion control &#x434;&#x43B;&#x44F; TCP, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43E;&#x43F;&#x438;&#x440;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x43F;&#x440;&#x43E;&#x43F;&#x443;&#x441;&#x43A;&#x43D;&#x43E;&#x439; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43F;&#x443;&#x442;&#x438; &#x438; RTT &#x438; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x442;&#x435;&#x43C;, &#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445; &#x438; &#x441; &#x43A;&#x430;&#x43A;&#x43E;&#x439; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C;. &#x412; Linux &#x430;&#x43B;&#x433;&#x43E;&#x440;&#x438;&#x442;&#x43C; &#x434;&#x43B;&#x44F; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x441;&#x43E;&#x435;&#x434;&#x438;&#x43D;&#x435;&#x43D;&#x438;&#x439; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x447;&#x435;&#x440;&#x435;&#x437; <code>net.ipv4.tcp_congestion_control</code>; &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; &#x443;&#x436;&#x435; &#x437;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x445; &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442;&#x43E;&#x432; &#x432;&#x438;&#x434;&#x435;&#x43D; &#x432; <code>net.ipv4.tcp_available_congestion_control</code>. &#x414;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x44F;&#x434;&#x440;&#x430; &#x43F;&#x43E;&#x434;&#x447;&#x451;&#x440;&#x43A;&#x438;&#x432;&#x430;&#x435;&#x442; &#x432;&#x430;&#x436;&#x43D;&#x443;&#x44E; &#x434;&#x435;&#x442;&#x430;&#x43B;&#x44C;: &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; sysctl &#x437;&#x430;&#x434;&#x430;&#x451;&#x442; &#x430;&#x43B;&#x433;&#x43E;&#x440;&#x438;&#x442;&#x43C; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x434;&#x43B;&#x44F; <strong>&#x43D;&#x43E;&#x432;&#x44B;&#x445;</strong> TCP-&#x441;&#x43E;&#x435;&#x434;&#x438;&#x43D;&#x435;&#x43D;&#x438;&#x439;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43D;&#x430; &#x441;&#x442;&#x430;&#x440;&#x43E;&#x43C; keep-alive &#x441;&#x43E;&#x43A;&#x435;&#x442;&#x435; &#x431;&#x435;&#x441;&#x441;&#x43C;&#x44B;&#x441;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;.</p><p><code>fq</code> &#x2014; classless qdisc, &#x440;&#x430;&#x441;&#x441;&#x447;&#x438;&#x442;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x435;&#x436;&#x434;&#x435; &#x432;&#x441;&#x435;&#x433;&#x43E; &#x43D;&#x430; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x433;&#x435;&#x43D;&#x435;&#x440;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x44B;&#x439; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;. &#x41E;&#x43D; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; &#x43F;&#x43E;&#x442;&#x43E;&#x43A;&#x438; &#x438; &#x443;&#x43C;&#x435;&#x435;&#x442; &#x443;&#x432;&#x430;&#x436;&#x430;&#x442;&#x44C; pacing, &#x437;&#x430;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x439; TCP stack. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#xAB;&#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C; BBR&#xBB;, &#x430; scheduler &#x43D;&#x430; egress, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x430;&#x435;&#x442; &#x432;&#x44B;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x44B; &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x43E;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x430; Linux &#x43D;&#x430; EDT TCP-level pacing &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x43D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; <code>fq</code> &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; &#x434;&#x43B;&#x44F; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x44B; BBR; Google &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x442;&#x43C;&#x435;&#x447;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x44F;&#x434;&#x440;&#x430;&#x445; BBR &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C; &#x438; &#x441; &#x434;&#x440;&#x443;&#x433;&#x438;&#x43C;&#x438; qdisc, &#x445;&#x43E;&#x442;&#x44F; <code>fq</code> &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x43C; &#x43D;&#x430; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;&#x445;.</p><p>&#x41E;&#x442;&#x441;&#x44E;&#x434;&#x430; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x439; operational &#x432;&#x44B;&#x432;&#x43E;&#x434;: &#x442;&#x435;&#x441;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43F;&#x430;&#x440;&#x443; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x43E;&#x432;, &#x430; &#x43D;&#x435; &#x43C;&#x430;&#x433;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x443;&#x44E; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x443; &#x438;&#x437; &#x441;&#x442;&#x430;&#x440;&#x43E;&#x433;&#x43E; &#x431;&#x43B;&#x43E;&#x433;&#x430;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x443;&#x431;&#x435;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C;, &#x43A;&#x430;&#x43A;&#x43E;&#x439; congestion control &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x43D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D; &#x441;&#x43E;&#x43A;&#x435;&#x442;&#x443;; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x2014; &#x43A;&#x430;&#x43A;&#x43E;&#x439; root qdisc &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x432;&#x438;&#x441;&#x438;&#x442; &#x43D;&#x430; &#x43D;&#x443;&#x436;&#x43D;&#x43E;&#x43C; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;&#x435;. <code>net.core.default_qdisc</code> &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x434;&#x435;&#x444;&#x43E;&#x43B;&#x442; &#x434;&#x43B;&#x44F; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x445; qdisc, &#x43D;&#x43E; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;&#x430; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; <code>tc qdisc show</code>.</p><p>&#x41D;&#x435; &#x43F;&#x443;&#x442;&#x430;&#x439;&#x442;&#x435; &#x438; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; BBR. &#x412;&#x435;&#x442;&#x43A;&#x430; Google BBRv3 &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x442; &#x441;&#x442;&#x430;&#x43D;&#x434;&#x430;&#x440;&#x442;&#x43D;&#x43E;&#x433;&#x43E; <code>bbr</code>, &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x43E;&#x433;&#x43E; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x43C; &#x434;&#x438;&#x441;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x43C; &#x44F;&#x434;&#x440;&#x43E;&#x43C;. &#x41D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x43F;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x43C;&#x443; &#x438;&#x43C;&#x435;&#x43D;&#x438; sysctl &#x437;&#x430;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x443; &#x432;&#x430;&#x441; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; v3: &#x44D;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x43E; &#x43F;&#x440;&#x43E;&#x438;&#x441;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44E; &#x438; &#x441;&#x431;&#x43E;&#x440;&#x43A;&#x435; &#x44F;&#x434;&#x440;&#x430;. &#x414;&#x43B;&#x44F; production-runbook &#x440;&#x430;&#x437;&#x443;&#x43C;&#x43D;&#x435;&#x435; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x442;&#x44C; &#x441; &#x442;&#x43E;&#x433;&#x43E; BBR, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432;&#x430;&#x448;&#x438;&#x43C; kernel/vendor profile, &#x430; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x432;&#x435;&#x442;&#x43A;&#x443; &#x432;&#x44B;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x44C; &#x432; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; change.</p>
<style>.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}.ks-widget .panel.on{display:block}.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}</style><div class="ks-widget" id="ks-tab-n4w7x2a"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x439; &#x441;&#x43B;&#x43E;&#x439; &#x43F;&#x43E;&#x434;&#x43E;&#x437;&#x440;&#x435;&#x432;&#x430;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x43C;</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="model">&#x41C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;</button><button type="button" class="tab-btn" data-t="gateway">Gateway</button><button type="button" class="tab-btn" data-t="network">&#x421;&#x435;&#x442;&#x44C;</button></div><div class="panel on" data-p="model">TTFT &#x440;&#x430;&#x441;&#x442;&#x451;&#x442;, GPU/&#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432; &#x43D;&#x430;&#x441;&#x44B;&#x449;&#x435;&#x43D;&#x44B;, &#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x430; &#x43F;&#x43E;&#x442;&#x43E;&#x43A; &#x440;&#x43E;&#x432;&#x43D;&#x44B;&#x439; &#x2014; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x438;&#x449;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443; &#x432; inference path.</div><div class="panel" data-p="gateway">TTFT &#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439;, &#x43D;&#x43E; &#x447;&#x430;&#x43D;&#x43A;&#x438; &#x43F;&#x440;&#x438;&#x445;&#x43E;&#x434;&#x44F;&#x442; &#x43F;&#x430;&#x447;&#x43A;&#x430;&#x43C;&#x438; &#x2014; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; buffering, flush &#x438; &#x43C;&#x435;&#x441;&#x442;&#x43E;, &#x433;&#x434;&#x435; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; TCP.</div><div class="panel" data-p="network">&#x41F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x442;&#x43E;&#x43A;&#x435;&#x43D; &#x43F;&#x440;&#x438;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x432;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x44F;, &#x43D;&#x43E; &#x43F;&#x43E;&#x434; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x43E;&#x439; &#x440;&#x430;&#x441;&#x442;&#x443;&#x442; RTT, retransmissions &#x438;&#x43B;&#x438; egress backlog &#x2014; &#x435;&#x441;&#x442;&#x44C; &#x441;&#x43C;&#x44B;&#x441;&#x43B; &#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x439; canary.</div><script>(function(){var r=document.getElementById('ks-tab-n4w7x2a');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-inline-01-3478a589.webp" class="kg-image" alt="BBR &#x438; fq &#x434;&#x43B;&#x44F; LLM-&#x441;&#x442;&#x440;&#x438;&#x43C;&#x438;&#x43D;&#x433;&#x430;: &#x43A;&#x430;&#x43A; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x438;&#x437; latency &#x438; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x443;&#x442;&#x430;&#x442;&#x44C; &#x435;&#x451; &#x441; TTFT" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/bbr-fq-llm-streaming-network-runbook-inline-01-3478a589.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/bbr-fq-llm-streaming-network-runbook-inline-01-3478a589.webp 1000w, https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-inline-01-3478a589.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="baseline-identity">Baseline &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x441; identity: &#x43A;&#x430;&#x43A;&#x43E;&#x439; &#x441;&#x43E;&#x43A;&#x435;&#x442;, &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441; &#x438; qdisc &#x432;&#x44B; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x435;</h2>
<p>&#x414;&#x43E; &#x43B;&#x44E;&#x431;&#x44B;&#x445; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x439; &#x441;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; evidence bundle. &#x41D;&#x443;&#x436;&#x43D;&#x44B; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F; &#x44F;&#x434;&#x440;&#x430;, &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x435; congestion control, &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x439; &#x430;&#x43B;&#x433;&#x43E;&#x440;&#x438;&#x442;&#x43C;, &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; qdisc &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;&#x430;, &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; NIC &#x438; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x436;&#x438;&#x432;&#x44B;&#x445; TCP-&#x441;&#x43E;&#x43A;&#x435;&#x442;&#x43E;&#x432;. &#x42D;&#x442;&#x43E; &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x442; &#x43E;&#x442; &#x441;&#x430;&#x43C;&#x43E;&#x439; &#x43D;&#x435;&#x43F;&#x440;&#x438;&#x44F;&#x442;&#x43D;&#x43E;&#x439; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;: &#x432;&#x44B; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x43B;&#x438; BBR &#x43D;&#x430; backend, &#x430; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; TCP &#x43D;&#x430; &#x441;&#x430;&#x43C;&#x43E;&#x43C; &#x434;&#x435;&#x43B;&#x435; &#x436;&#x438;&#x432;&#x451;&#x442; &#x432; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C; network namespace, &#x43D;&#x430; proxy &#x438;&#x43B;&#x438; &#x432;&#x43E;&#x43E;&#x431;&#x449;&#x435; &#x432; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; &#x443;&#x437;&#x43B;&#x435;.</p><p>&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441; &#x43F;&#x43E; &#x43C;&#x430;&#x440;&#x448;&#x440;&#x443;&#x442;&#x443; &#x434;&#x43E; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x430;: <code>ip route get CLIENT_IP</code>. &#x415;&#x441;&#x43B;&#x438; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x432; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x435;, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435;, &#x433;&#x434;&#x435; &#x437;&#x430;&#x43A;&#x430;&#x43D;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; TCP &#x2014; &#x432; pod, host network, ingress &#x438;&#x43B;&#x438; &#x432;&#x43D;&#x435;&#x448;&#x43D;&#x435;&#x43C; &#x431;&#x430;&#x43B;&#x430;&#x43D;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x449;&#x438;&#x43A;&#x435;. &#x41D;&#x430; bare metal &#x438; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x43C; VPS sender &#x447;&#x430;&#x449;&#x435; &#x43E;&#x447;&#x435;&#x432;&#x438;&#x434;&#x435;&#x43D;, &#x43D;&#x43E; &#x438; &#x442;&#x430;&#x43C; source policy routing &#x438;&#x43B;&#x438; bonding &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x43D;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; &#x442;&#x43E;&#x442; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x432;&#x44B; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43B;&#x438; &#x43F;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x438;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span></div>
<pre class="ks-canonical-code-block__pre"><code>IFACE=ens5

uname -r
ip route get 203.0.113.10
sysctl net.ipv4.tcp_congestion_control
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.core.default_qdisc

tc qdisc show dev &quot;$IFACE&quot;
ip -s link show dev &quot;$IFACE&quot;
ss -tin state established | head -n 80</code></pre>
<div class="ks-canonical-code-block__caption">&#x421;&#x43D;&#x438;&#x43C;&#x43E;&#x43A; baseline &#x43F;&#x435;&#x440;&#x435;&#x434; &#x441;&#x435;&#x442;&#x435;&#x432;&#x44B;&#x43C; canary</div>
</div>
<p>&#x410;&#x434;&#x440;&#x435;&#x441; <code>203.0.113.10</code> &#x437;&#x434;&#x435;&#x441;&#x44C; &#x2014; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;: &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x435; &#x435;&#x433;&#x43E; IP &#x441;&#x432;&#x43E;&#x435;&#x433;&#x43E; canary-&#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x430;. &#x41D;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x438;&#x43C;&#x44F; <code>ens5</code> &#x432;&#x441;&#x43B;&#x435;&#x43F;&#x443;&#x44E;. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x441; change ticket: &#x43F;&#x43E;&#x441;&#x43B;&#x435; rollout &#x438; rollback &#x432;&#x44B; &#x431;&#x443;&#x434;&#x435;&#x442;&#x435; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x43D;&#x435; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x438;&#x43D;&#x436;&#x435;&#x43D;&#x435;&#x440;&#x430;, &#x430; &#x43E;&#x434;&#x43D;&#x43E; &#x438; &#x442;&#x43E; &#x436;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;.</p><p>&#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x437;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; topology class: &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; dedicated, KVM/VPS, bonding, VLAN, NAT, &#x432;&#x43D;&#x435;&#x448;&#x43D;&#x438;&#x439; LB. BBR &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442; &#x43D;&#x430; TCP sender, &#x43D;&#x43E; &#x433;&#x438;&#x43F;&#x435;&#x440;&#x432;&#x438;&#x437;&#x43E;&#x440;, vSwitch, NIC ring, ToR &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x430;&#x439;&#x434;&#x435;&#x440;&#x441;&#x43A;&#x438;&#x439; uplink &#x43E;&#x441;&#x442;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x434;&#x440;&#x443;&#x433;&#x438;&#x43C;&#x438; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44F;&#x43C;&#x438;. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x436;&#x438;&#x432;&#x451;&#x442; &#x442;&#x430;&#x43C;, &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x44B;&#x439; <code>ss</code> &#x43D;&#x430; &#x433;&#x43E;&#x441;&#x442;&#x435;&#x432;&#x43E;&#x439; &#x41E;&#x421; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x432;&#x44B; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x442;&#x435; bottleneck.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-inline-02-b09c81bf.webp" class="kg-image" alt="BBR &#x438; fq &#x434;&#x43B;&#x44F; LLM-&#x441;&#x442;&#x440;&#x438;&#x43C;&#x438;&#x43D;&#x433;&#x430;: &#x43A;&#x430;&#x43A; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x438;&#x437; latency &#x438; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x443;&#x442;&#x430;&#x442;&#x44C; &#x435;&#x451; &#x441; TTFT" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/bbr-fq-llm-streaming-network-runbook-inline-02-b09c81bf.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/bbr-fq-llm-streaming-network-runbook-inline-02-b09c81bf.webp 1000w, https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-inline-02-b09c81bf.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="prove-network">&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443;, &#x430; &#x443;&#x436;&#x435; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; congestion control</h2>
<p>&#x425;&#x43E;&#x440;&#x43E;&#x448;&#x438;&#x439; canary &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x441; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x44B;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x443;&#x44E; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43E;&#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x433;&#x43D;&#x443;&#x442;&#x44C;. &#x41D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;: &#xAB;&#x43F;&#x440;&#x438; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x43C; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x435; TTFT &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;, &#x43D;&#x43E; p95 &#x43F;&#x430;&#x443;&#x437;&#x44B; &#x43C;&#x435;&#x436;&#x434;&#x443; SSE-&#x447;&#x430;&#x43D;&#x43A;&#x430;&#x43C;&#x438; &#x440;&#x430;&#x441;&#x442;&#x443;&#x442; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; RTT/retransmissions &#x43D;&#x430; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x43E;&#x43C; TCP&#xBB;. &#x42D;&#x442;&#x43E; &#x433;&#x43E;&#x440;&#x430;&#x437;&#x434;&#x43E; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435;, &#x447;&#x435;&#x43C; &#xAB;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x433;&#x43E;&#x432;&#x43E;&#x440;&#x438;&#x442;, &#x447;&#x442;&#x43E; &#x43E;&#x442;&#x432;&#x435;&#x442; &#x438;&#x434;&#x451;&#x442; &#x440;&#x44B;&#x432;&#x43A;&#x430;&#x43C;&#x438;&#xBB;.</p><p>&#x41D;&#x430; application layer &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; TTFT, &#x438;&#x43D;&#x442;&#x435;&#x440;&#x432;&#x430;&#x43B; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x447;&#x430;&#x43D;&#x43A;&#x430;&#x43C;&#x438; &#x438; &#x43F;&#x43E;&#x43B;&#x43D;&#x443;&#x44E; &#x434;&#x43B;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x430;. &#x41D;&#x430; network layer &#x2014; RTT, retransmissions, delivery/pacing rate &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x43E;&#x43A;&#x435;&#x442;&#x430; &#x438; &#x441;&#x442;&#x430;&#x442;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x443; qdisc. &#x41D;&#x430; host layer &#x2014; CPU softirq, NIC drops &#x438; saturation, &#x435;&#x441;&#x43B;&#x438; &#x43E;&#x43D;&#x438; &#x435;&#x441;&#x442;&#x44C; &#x432; &#x432;&#x430;&#x448;&#x435;&#x439; &#x442;&#x435;&#x43B;&#x435;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x438;. &#x412;&#x430;&#x436;&#x435;&#x43D; &#x43E;&#x434;&#x438;&#x43D; &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x438;&#x43B;&#x438; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x43D;&#x430;&#x431;&#x43E;&#x440; canary-&#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;, &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x430;&#x44F; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x43E;&#x432; &#x438; &#x43E;&#x434;&#x438;&#x43D; &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; &#x440;&#x435;&#x433;&#x438;&#x43E;&#x43D;. &#x418;&#x43D;&#x430;&#x447;&#x435; &#x432;&#x44B; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; workloads.</p><p>&#x415;&#x441;&#x43B;&#x438; <code>ss -tin</code> &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; <code>app_limited</code>, &#x44D;&#x442;&#x43E; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; disqualifier &#x434;&#x43B;&#x44F; &#x438;&#x434;&#x435;&#x438; &#xAB;&#x43D;&#x430;&#x43C; &#x43C;&#x435;&#x448;&#x430;&#x435;&#x442; congestion control&#xBB;: sender &#x43D;&#x435; &#x437;&#x430;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x442; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x43F;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x43D;&#x43E;. &#x414;&#x43B;&#x44F; LLM &#x44D;&#x442;&#x43E; &#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x2014; decode &#x432;&#x44B;&#x434;&#x430;&#x451;&#x442; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x44B; &#x434;&#x438;&#x441;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;. &#x412; &#x442;&#x430;&#x43A;&#x43E;&#x439; &#x441;&#x438;&#x442;&#x443;&#x430;&#x446;&#x438;&#x438; BBR &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x442;&#x435;&#x445;&#x43D;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x435;&#x43D;, &#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x438;&#x439; &#x440;&#x438;&#x442;&#x43C; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435;. &#x410;&#x43D;&#x430;&#x43B;&#x43E;&#x433;&#x438;&#x447;&#x43D;&#x43E;, &#x435;&#x441;&#x43B;&#x438; retransmissions &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F;, qdisc backlog &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x43F;&#x443;&#x441;&#x442;, &#x430; &#x43F;&#x430;&#x443;&#x437;&#x44B; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43B;&#x438;&#x440;&#x443;&#x44E;&#x442; &#x441; GPU decode, &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x439; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C;.</p><p>&#x41D;&#x435; &#x437;&#x430;&#x431;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x43A;&#x441;&#x438;. &#x415;&#x441;&#x43B;&#x438; Nginx/Envoy/HAProxy &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; TCP, &#x441;&#x43D;&#x438;&#x43C;&#x430;&#x439;&#x442;&#x435; socket evidence &#x442;&#x430;&#x43C;. Backend-&#x441;&#x43E;&#x435;&#x434;&#x438;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43C;&#x435;&#x436;&#x434;&#x443; proxy &#x438; inference node &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x435;&#x442;&#x44C; &#x438;&#x434;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x438; &#x43D;&#x438;&#x43A;&#x430;&#x43A; &#x43D;&#x435; &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x442;&#x44C; WAN-&#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C;. &#x420;&#x430;&#x437;&#x43D;&#x438;&#x446;&#x443; &#x43C;&#x435;&#x436;&#x434;&#x443; L4 &#x438; L7 &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x43E; &#x443;&#x447;&#x438;&#x442;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x432; streaming API: &#x441;&#x435;&#x43C;&#x430;&#x43D;&#x442;&#x438;&#x43A;&#x430; buffering &#x438; timeout &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x434;&#x430;&#x442;&#x44C; &#x442;&#x435; &#x436;&#x435; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;&#x44B;, &#x447;&#x442;&#x43E; &#x438; &#x43F;&#x43B;&#x43E;&#x445;&#x430;&#x44F; &#x441;&#x435;&#x442;&#x44C;.</p>
<div class="ks-widget" id="ks-chk-q9m2v6c"><h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43B;&#x438; &#x432;&#x44B; &#x43A; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x43C;&#x443; canary</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x418;&#x437;&#x432;&#x435;&#x441;&#x442;&#x435;&#x43D; &#x445;&#x43E;&#x441;&#x442;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; TCP</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> &#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x44E;&#x442;&#x441;&#x44F; TTFT &#x438; &#x43F;&#x430;&#x443;&#x437;&#x44B; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x447;&#x430;&#x43D;&#x43A;&#x430;&#x43C;&#x438;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> &#x421;&#x43D;&#x44F;&#x442; baseline ss -tin &#x434;&#x43B;&#x44F; &#x442;&#x435;&#x445; &#x436;&#x435; &#x441;&#x43E;&#x435;&#x434;&#x438;&#x43D;&#x435;&#x43D;&#x438;&#x439;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> &#x418;&#x437;&#x432;&#x435;&#x441;&#x442;&#x435;&#x43D; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; root qdisc &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;&#x430;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x415;&#x441;&#x442;&#x44C; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; canary-&#x43D;&#x430;&#x431;&#x43E;&#x440; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> &#x415;&#x441;&#x442;&#x44C; &#x43F;&#x43B;&#x430;&#x43D; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; qdisc &#x438; congestion control</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-q9m2v6c');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><h2 id="cubic-control">&#x421;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44C; CUBIC &#x438; &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; workload &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;</h2>
<p>&#x41F;&#x435;&#x440;&#x435;&#x434; BBR &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44C; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x433;&#x43E; congestion control. &#x41D;&#x430; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x438;&#x43D;&#x441;&#x442;&#x432;&#x435; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C; &#x44D;&#x442;&#x43E; &#x431;&#x443;&#x434;&#x435;&#x442; CUBIC, &#x43D;&#x43E; &#x43D;&#x435; &#x43F;&#x440;&#x435;&#x434;&#x43F;&#x43E;&#x43B;&#x430;&#x433;&#x430;&#x439;&#x442;&#x435; &#x2014; &#x43F;&#x440;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; sysctl &#x438; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x441;&#x43E;&#x43A;&#x435;&#x442;. &#x41A;&#x43B;&#x44E;&#x447;&#x435;&#x432;&#x430;&#x44F; &#x434;&#x438;&#x441;&#x446;&#x438;&#x43F;&#x43B;&#x438;&#x43D;&#x430; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430;: &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, batching, max tokens, proxy buffering, kernel, MTU &#x438; congestion control. &#x41E;&#x434;&#x438;&#x43D; change &#x2014; &#x43E;&#x434;&#x43D;&#x430; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x430;&#x44F; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x430;.</p><p>&#x414;&#x43B;&#x44F; LLM streaming &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x435;&#x435; &#x432;&#x441;&#x435;&#x433;&#x43E; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x44C; &#x43D;&#x435; &#x433;&#x438;&#x433;&#x430;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; download, &#x430; &#x43D;&#x430;&#x441;&#x442;&#x43E;&#x44F;&#x449;&#x438;&#x439; API-&#x43F;&#x443;&#x442;&#x44C;. &#x413;&#x435;&#x43D;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x44C; &#x447;&#x435;&#x440;&#x435;&#x437; &#x442;&#x43E;&#x442; &#x436;&#x435; TLS terminator &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; network segment, &#x447;&#x442;&#x43E; &#x438; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x439;&#x442;&#x435; timestamp &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x431;&#x430;&#x439;&#x442;&#x430; &#x438; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; &#x447;&#x430;&#x43D;&#x43A;&#x430;. &#x415;&#x441;&#x43B;&#x438; &#x432;&#x430;&#x448; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442; &#x443;&#x43C;&#x435;&#x435;&#x442; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#xAB;&#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x435; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x430;&#xBB;, &#x432;&#x44B; &#x43D;&#x435; &#x443;&#x432;&#x438;&#x434;&#x438;&#x442;&#x435; &#x440;&#x430;&#x437;&#x43D;&#x438;&#x446;&#x443; &#x43C;&#x435;&#x436;&#x434;&#x443; TTFT &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x43C;&#x438; &#x43F;&#x430;&#x443;&#x437;&#x430;&#x43C;&#x438;.</p><p>&#x421;&#x435;&#x442;&#x435;&#x432;&#x44B;&#x435; counters &#x441;&#x43D;&#x438;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x432; &#x442;&#x43E;&#x43C; &#x436;&#x435; &#x43E;&#x43A;&#x43D;&#x435;. <code>ss -tin</code> &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; RTT, congestion window, pacing rate &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x435; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; TCP; &#x434;&#x43B;&#x44F; BBR &#x442;&#x430;&#x43C; &#x436;&#x435; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43F;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x442;&#x44C;&#x441;&#x44F; bandwidth/min_rtt state &#x438; &#x43F;&#x440;&#x438;&#x437;&#x43D;&#x430;&#x43A; <code>app_limited</code>. <code>tc -s qdisc show</code> &#x43D;&#x443;&#x436;&#x435;&#x43D;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x443;&#x44E; egress-&#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C;, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x430;&#x43B;&#x433;&#x43E;&#x440;&#x438;&#x442;&#x43C; TCP.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span></div>
<pre class="ks-canonical-code-block__pre"><code>IFACE=ens5

ss -tin state established | head -n 120
tc -s qdisc show dev &quot;$IFACE&quot;
nstat -az | grep -E &apos;TcpRetransSegs|IpOutDiscards&apos;
ip -s link show dev &quot;$IFACE&quot;</code></pre>
<div class="ks-canonical-code-block__caption">&#x421;&#x435;&#x442;&#x435;&#x432;&#x44B;&#x435; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x430;</div>
</div>
<p>&#x41D;&#x435; &#x437;&#x430;&#x434;&#x430;&#x432;&#x430;&#x439;&#x442;&#x435; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#xAB;&#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x43D;&#x442; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x44F;&#xBB;. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x43F;&#x43E;&#x440;&#x43E;&#x433; &#x431;&#x435;&#x437; &#x432;&#x430;&#x448;&#x435;&#x433;&#x43E; traffic mix &#x431;&#x443;&#x434;&#x435;&#x442; &#x432;&#x44B;&#x434;&#x443;&#x43C;&#x430;&#x43D;&#x43D;&#x44B;&#x43C; benchmark. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x441;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A; &#x43D;&#x430; baseline, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; canary &#x432; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x445; &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x438;&#x44F;&#x445;. &#x415;&#x441;&#x43B;&#x438; &#x440;&#x430;&#x437;&#x43D;&#x438;&#x446;&#x430; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435; &#x435;&#x441;&#x442;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x440;&#x430;&#x437;&#x431;&#x440;&#x43E;&#x441;&#x430; &#x438;&#x43B;&#x438; &#x438;&#x441;&#x447;&#x435;&#x437;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x430;, &#x447;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x2014; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x430;.</p><p>&#x414;&#x43B;&#x44F; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;&#x430; &#x43F;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438;&#x43C; &#x441;&#x43B;&#x43E;&#x44F;&#x43C; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x44D;&#x442;&#x43E;&#x442; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442; &#x441; <a href="https://kingservers.com/blog/numa-locality-gpu-llm-inference/">NUMA-locality &#x434;&#x43B;&#x44F; GPU-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430;</a>: &#x442;&#x430;&#x43C; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F; &#x2014; &#x43D;&#x438;&#x437;&#x43A;&#x43E;&#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435;&#x432;&#x44B;&#x439; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A; &#x441;&#x430;&#x43C; &#x43F;&#x43E; &#x441;&#x435;&#x431;&#x435; &#x43D;&#x435; &#x440;&#x430;&#x432;&#x435;&#x43D; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x44E; application SLO.</p><h2 id="enable-canary">&#x412;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; BBR &#x438; fq &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; canary-&#x443;&#x437;&#x43B;&#x435;</h2>
<p>&#x41A;&#x43E;&#x433;&#x434;&#x430; baseline &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;, &#x43F;&#x435;&#x440;&#x435;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; canary-host &#x438;&#x43B;&#x438; &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; canary-pool. &#x41D;&#x435; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x441; fleet-wide sysctl. &#x418;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; congestion control &#x437;&#x430;&#x442;&#x440;&#x43E;&#x43D;&#x435;&#x442; &#x43D;&#x43E;&#x432;&#x44B;&#x435; TCP-&#x441;&#x43E;&#x435;&#x434;&#x438;&#x43D;&#x435;&#x43D;&#x438;&#x44F;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x435; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x435; &#x441;&#x435;&#x441;&#x441;&#x438;&#x438;. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x434;&#x43B;&#x438;&#x43D;&#x43D;&#x44B;&#x435; keep-alive connections, &#x441;&#x442;&#x430;&#x440;&#x44B;&#x435; &#x441;&#x43E;&#x43A;&#x435;&#x442;&#x44B; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x430;&#x442;&#x44C; &#x436;&#x438;&#x442;&#x44C; &#x441; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x43C; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x435;&#x43C; &#x438; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x44B;.</p><p>&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x443;&#x431;&#x435;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C;, &#x447;&#x442;&#x43E; &#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x44C; BBR &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D; &#x43D;&#x430; &#x432;&#x430;&#x448;&#x435;&#x43C; &#x44F;&#x434;&#x440;&#x435;. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x435;&#x440;&#x435;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435; congestion control &#x438; qdisc. &#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; <code>tc qdisc replace ... root fq</code> &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; root qdisc &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;&#x430; &#x43F;&#x440;&#x44F;&#x43C;&#x43E; &#x441;&#x435;&#x439;&#x447;&#x430;&#x441; &#x2014; &#x44D;&#x442;&#x43E; production change, &#x430; &#x43D;&#x435; &#x431;&#x435;&#x437;&#x43E;&#x431;&#x438;&#x434;&#x43D;&#x43E;&#x435; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x435;. &#x412;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; &#x438;&#x437;&#x43E;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x43C; canary, &#x433;&#x434;&#x435; &#x432;&#x44B; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x437;&#x43D;&#x430;&#x435;&#x442;&#x435; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x443;&#x44E; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E; &#x438; &#x43F;&#x443;&#x442;&#x44C; rollback.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span></div>
<pre class="ks-canonical-code-block__pre"><code>IFACE=ens5

sudo modprobe tcp_bbr
sysctl net.ipv4.tcp_available_congestion_control

sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
sudo tc qdisc replace dev &quot;$IFACE&quot; root fq

sysctl net.ipv4.tcp_congestion_control
tc -s qdisc show dev &quot;$IFACE&quot;
ss -tin state established | head -n 120</code></pre>
<div class="ks-canonical-code-block__caption">Canary-&#x43F;&#x435;&#x440;&#x435;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; BBR + fq</div>
</div>
<p>&#x41D;&#x435; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438; &#x432; <code>/etc/sysctl.d</code> &#x434;&#x43E; &#x43E;&#x43A;&#x43E;&#x43D;&#x447;&#x430;&#x43D;&#x438;&#x44F; canary. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x438; rollback. Persistence &#x2014; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; change. &#x422;&#x430;&#x43A; &#x43F;&#x440;&#x43E;&#x449;&#x435; &#x438;&#x437;&#x431;&#x435;&#x436;&#x430;&#x442;&#x44C; &#x441;&#x438;&#x442;&#x443;&#x430;&#x446;&#x438;&#x438;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x436;&#x438;&#x43B; reboot &#x438; &#x432;&#x43D;&#x435;&#x437;&#x430;&#x43F;&#x43D;&#x43E; &#x441;&#x442;&#x430;&#x43B; &#x43D;&#x43E;&#x432;&#x44B;&#x43C; baseline.</p><p>&#x41D;&#x430; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435;, &#x447;&#x442;&#x43E; &#x432;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x442;&#x435; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x439; egress. &#x413;&#x43E;&#x441;&#x442;&#x435;&#x432;&#x43E;&#x439; <code>fq</code> &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x438; vSwitch &#x438;&#x43B;&#x438; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x433;&#x43E; uplink. &#x41D;&#x430; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44F; &#x448;&#x438;&#x440;&#x435;: &#x432;&#x44B; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x435; kernel, qdisc, NIC &#x438; &#x447;&#x430;&#x441;&#x442;&#x43E; topology &#x446;&#x435;&#x43B;&#x438;&#x43A;&#x43E;&#x43C;, &#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x430;&#x439;&#x434;&#x435;&#x440;&#x441;&#x43A;&#x430;&#x44F; &#x441;&#x435;&#x442;&#x44C; &#x438; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; last mile &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x432;&#x43D;&#x435; &#x445;&#x43E;&#x441;&#x442;&#x430;.</p>
<div class="ks-widget" id="ks-sel-b7k3p1d"><h3>&#x421;&#x442;&#x43E;&#x438;&#x442; &#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x430;&#x442;&#x44C; BBR-canary</h3><label>&#x427;&#x442;&#x43E; &#x432;&#x438;&#x434;&#x43D;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F;</label><select data-s><option value="network">&#x421;&#x435;&#x442;&#x435;&#x432;&#x44B;&#x435; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438; &#x438; streaming gaps &#x443;&#x43B;&#x443;&#x447;&#x448;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435;</option><option value="app">&#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; TCP-&#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x438; &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F;, application metric &#x43D;&#x435;&#x442;</option><option value="ttft">&#x41F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432; TTFT</option><option value="noise">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43D;&#x435;&#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x435;&#x43D; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x430;&#x43C;&#x438;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-b7k3p1d');if(!r)return;var m={"network":"Продолжайте canary и готовьте rollback-контрфакт: нужно доказать, что эффект исчезает после возврата baseline.","app":"Не объявляйте победу. Механизм изменился, но пользовательский SLO — нет; ищите следующий bottleneck.","ttft":"Вернитесь к inference/gateway path: sender-side TCP congestion control не лечит очередь до первого токена.","noise":"Увеличьте число повторов и стабилизируйте workload. Пока причинность не доказана."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-inline-04-2a787b71.webp" class="kg-image" alt="BBR &#x438; fq &#x434;&#x43B;&#x44F; LLM-&#x441;&#x442;&#x440;&#x438;&#x43C;&#x438;&#x43D;&#x433;&#x430;: &#x43A;&#x430;&#x43A; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x438;&#x437; latency &#x438; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x443;&#x442;&#x430;&#x442;&#x44C; &#x435;&#x451; &#x441; TTFT" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/bbr-fq-llm-streaming-network-runbook-inline-04-2a787b71.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/bbr-fq-llm-streaming-network-runbook-inline-04-2a787b71.webp 1000w, https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-inline-04-2a787b71.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="read-ss">&#x41A;&#x430;&#x43A; &#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; ss &#x438; qdisc &#x431;&#x435;&#x437; &#x43B;&#x43E;&#x436;&#x43D;&#x43E;&#x439; &#x43F;&#x43E;&#x431;&#x435;&#x434;&#x44B; &#x43F;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x435;</h2>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x43F;&#x43E;&#x43F;&#x430;&#x441;&#x442;&#x44C; &#x432; &#x43B;&#x43E;&#x432;&#x443;&#x448;&#x43A;&#x443; &#xAB;&#x432; <code>ss</code> &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x441;&#x44F; bbr &#x2014; &#x437;&#x43D;&#x430;&#x447;&#x438;&#x442; &#x432;&#x441;&#x451; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442;&#xBB;. &#x42D;&#x442;&#x43E; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432;&#x44B;&#x431;&#x43E;&#x440; congestion control &#x434;&#x43B;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x43E;&#x43A;&#x435;&#x442;&#x430;. &#x414;&#x43B;&#x44F; production-&#x432;&#x44B;&#x432;&#x43E;&#x434;&#x430; &#x43D;&#x443;&#x436;&#x43D;&#x44B; &#x43A;&#x430;&#x43A; &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x443;&#x43C; mechanism gate &#x438; application gate.</p><p>&#x412; mechanism gate &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435;, &#x447;&#x442;&#x43E; &#x43D;&#x43E;&#x432;&#x44B;&#x439; &#x441;&#x43E;&#x43A;&#x435;&#x442; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; BBR, &#x447;&#x442;&#x43E; qdisc &#x2014; <code>fq</code>, &#x430; pacing/delivery state &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x43F;&#x440;&#x430;&#x432;&#x434;&#x43E;&#x43F;&#x43E;&#x434;&#x43E;&#x431;&#x43D;&#x43E;. &#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; RTT, retransmissions &#x438; qdisc backlog &#x441; baseline. &#x415;&#x441;&#x43B;&#x438; &#x443; BBR-&#x441;&#x43E;&#x43A;&#x435;&#x442;&#x430; <code>app_limited</code>, &#x43D;&#x435; &#x442;&#x440;&#x430;&#x43A;&#x442;&#x443;&#x439;&#x442;&#x435; &#x43D;&#x438;&#x437;&#x43A;&#x438;&#x439; delivery rate &#x43A;&#x430;&#x43A; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443; &#x441;&#x435;&#x442;&#x438;: &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x430;&#x43C;&#x43E; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x430;&#x451;&#x442; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;. &#x414;&#x43B;&#x44F; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x442;&#x440;&#x438;&#x43C;&#x430; &#x44D;&#x442;&#x43E; &#x447;&#x430;&#x441;&#x442;&#x44B;&#x439; &#x440;&#x435;&#x436;&#x438;&#x43C;.</p><p>&#x412; application gate &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x442;&#x43E;, &#x440;&#x430;&#x434;&#x438; &#x447;&#x435;&#x433;&#x43E; &#x432;&#x43E;&#x43E;&#x431;&#x449;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x43B;&#x441;&#x44F; change: &#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x43C;&#x435;&#x436;&#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x43F;&#x430;&#x443;&#x437;, tail latency &#x441;&#x442;&#x440;&#x438;&#x43C;&#x430;, &#x447;&#x438;&#x441;&#x43B;&#x43E; &#x440;&#x430;&#x437;&#x440;&#x44B;&#x432;&#x43E;&#x432;/&#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x44B;&#x445; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x439; &#x438; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x438;&#x439; SLO. TTFT &#x434;&#x435;&#x440;&#x436;&#x438;&#x442;&#x435; &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x43A;&#x430;&#x43A; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;: &#x435;&#x441;&#x43B;&#x438; &#x43E;&#x43D; &#x432;&#x43D;&#x435;&#x437;&#x430;&#x43F;&#x43D;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x441;&#x44F;, &#x432;&#x435;&#x440;&#x43E;&#x44F;&#x442;&#x43D;&#x43E;, &#x432; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442; &#x432;&#x43C;&#x435;&#x448;&#x430;&#x43B;&#x430;&#x441;&#x44C; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; inference, autoscaling &#x438;&#x43B;&#x438; &#x434;&#x440;&#x443;&#x433;&#x430;&#x44F; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430;.</p><p>&#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x438;&#x434;&#x435;&#x43D;&#x442;&#x438;&#x447;&#x43D;&#x44B;&#x435; traffic cohorts. &#x41E;&#x434;&#x438;&#x43D; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x44B;&#x439; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442; &#x432; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x435;&#x43C; &#x434;&#x430;&#x442;&#x430;-&#x446;&#x435;&#x43D;&#x442;&#x440;&#x435; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x434;&#x43B;&#x44F; &#x43C;&#x43E;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x435;&#x439; &#x447;&#x435;&#x440;&#x435;&#x437; &#x434;&#x43B;&#x438;&#x43D;&#x43D;&#x44B;&#x439; WAN. &#x418; &#x43D;&#x430;&#x43E;&#x431;&#x43E;&#x440;&#x43E;&#x442;, &#x43E;&#x434;&#x438;&#x43D; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x43D;&#x44B;&#x439; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440; &#x441;&#x432;&#x44F;&#x437;&#x438; &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x442;&#x44C; fleet-wide kernel policy. &#x420;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x445;&#x43E;&#x442;&#x44F; &#x431;&#x44B; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x435;&#x43D;&#x43D;&#x438;&#x439;/&#x440;&#x435;&#x433;&#x438;&#x43E;&#x43D;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x438; &#x434;&#x430;&#x43B;&#x44C;&#x43D;&#x438;&#x439; &#x432;&#x43D;&#x435;&#x448;&#x43D;&#x438;&#x439; path.</p><p>&#x415;&#x449;&#x451; &#x43E;&#x434;&#x438;&#x43D; &#x432;&#x430;&#x436;&#x43D;&#x44B;&#x439; counterfactual &#x2014; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430;. &#x41F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x435;&#x441;&#x442; &#x432; &#x441;&#x43F;&#x43E;&#x43A;&#x43E;&#x439;&#x43D;&#x43E;&#x43C; &#x43E;&#x43A;&#x43D;&#x435;. &#x415;&#x441;&#x43B;&#x438; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x438;&#x435; BBR/fq &#x43F;&#x440;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x440;&#x438; &#x437;&#x430;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; egress &#x438; &#x438;&#x441;&#x447;&#x435;&#x437;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x438; &#x43D;&#x438;&#x437;&#x43A;&#x43E;&#x439; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x435;, &#x44D;&#x442;&#x43E; &#x43B;&#x43E;&#x433;&#x438;&#x447;&#x43D;&#x43E; &#x438; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;: &#x432;&#x44B; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x438;&#x437;&#x43E;&#x432;&#x430;&#x43B;&#x438; queueing problem. &#x415;&#x441;&#x43B;&#x438; &#xAB;&#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#xBB; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432; &#x434;&#x430;&#x436;&#x435; &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x43F;&#x443;&#x441;&#x442;&#x430;, &#x438;&#x449;&#x438;&#x442;&#x435; confounder.</p>
<div class="ks-widget" id="ks-tab-r5t8j2v"><h3>&#x427;&#x442;&#x43E; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E;&#x43C;</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="mechanism">Mechanism</button><button type="button" class="tab-btn" data-t="application">Application</button><button type="button" class="tab-btn" data-t="counterfactual">Counterfactual</button></div><div class="panel on" data-p="mechanism">&#x41D;&#x43E;&#x432;&#x44B;&#x439; &#x441;&#x43E;&#x43A;&#x435;&#x442; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; congestion control, root qdisc &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x441; &#x43F;&#x43B;&#x430;&#x43D;&#x43E;&#x43C;, network counters &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;.</div><div class="panel" data-p="application">&#x41C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x430;&#x44F; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x430; &#x441;&#x442;&#x440;&#x438;&#x43C;&#x430;: &#x43C;&#x435;&#x436;&#x447;&#x430;&#x43D;&#x43A;&#x43E;&#x432;&#x44B;&#x435; &#x43F;&#x430;&#x443;&#x437;&#x44B; &#x438;&#x43B;&#x438; tail latency, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x435;&#x43D;&#x43D;&#x438;&#x439; TCP counter.</div><div class="panel" data-p="counterfactual">&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430; baseline &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x438;&#x441;&#x447;&#x435;&#x437;&#x430;&#x435;&#x442; &#x438;&#x43B;&#x438; &#x43E;&#x441;&#x43B;&#x430;&#x431;&#x435;&#x432;&#x430;&#x435;&#x442; &#x432; &#x442;&#x43E;&#x43C; &#x436;&#x435; workload. &#x411;&#x435;&#x437; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x43E;&#x439;.</div><script>(function(){var r=document.getElementById('ks-tab-r5t8j2v');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-inline-05-d1049bca.webp" class="kg-image" alt="BBR &#x438; fq &#x434;&#x43B;&#x44F; LLM-&#x441;&#x442;&#x440;&#x438;&#x43C;&#x438;&#x43D;&#x433;&#x430;: &#x43A;&#x430;&#x43A; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x438;&#x437; latency &#x438; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x443;&#x442;&#x430;&#x442;&#x44C; &#x435;&#x451; &#x441; TTFT" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/bbr-fq-llm-streaming-network-runbook-inline-05-d1049bca.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/bbr-fq-llm-streaming-network-runbook-inline-05-d1049bca.webp 1000w, https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-inline-05-d1049bca.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="rollback-proof">Rollback &#x2014; &#x44D;&#x442;&#x43E; &#x447;&#x430;&#x441;&#x442;&#x44C; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430;, &#x430; &#x43D;&#x435; &#x430;&#x432;&#x430;&#x440;&#x438;&#x439;&#x43D;&#x430;&#x44F; &#x43A;&#x43D;&#x43E;&#x43F;&#x43A;&#x430;</h2>
<p>&#x415;&#x441;&#x43B;&#x438; canary &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x43B;&#x443;&#x447;&#x448;&#x435;, &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x448;&#x430;&#x433; &#x2014; &#x43D;&#x435; rollout, &#x430; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x43A; baseline. &#x42D;&#x442;&#x43E; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x44B;&#x439; congestion control &#x438; qdisc, &#x43E;&#x442;&#x43A;&#x440;&#x43E;&#x439;&#x442;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x435; TCP-&#x441;&#x43E;&#x435;&#x434;&#x438;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; canary-&#x43D;&#x430;&#x431;&#x43E;&#x440;. &#x415;&#x441;&#x43B;&#x438; streaming metric &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43A; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x435;&#x43C;&#x443; &#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x44E;, &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x430;&#x44F; &#x441;&#x432;&#x44F;&#x437;&#x44C; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435;. &#x415;&#x441;&#x43B;&#x438; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F;, BBR &#x43C;&#x43E;&#x433; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x441;&#x442;&#x44C; &#x43F;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438; &#x441; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;&#x439;.</p><p>&#x418;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x44B;&#x439; qdisc &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x443;&#x433;&#x430;&#x434;&#x44B;&#x432;&#x430;&#x442;&#x44C;. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x434;&#x43E; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430; &#x438; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x438;&#x437; &#x432;&#x430;&#x448;&#x435;&#x433;&#x43E; IaC/change record. &#x41D;&#x438;&#x436;&#x435; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440; &#x441; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x43C;&#x438;; &#x43F;&#x43E;&#x434;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; <code>fq_codel</code> &#x438;&#x43B;&#x438; <code>cubic</code> &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F;, &#x435;&#x441;&#x43B;&#x438; &#x44D;&#x442;&#x43E; &#x43D;&#x435; &#x432;&#x430;&#x448; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; baseline.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span></div>
<pre class="ks-canonical-code-block__pre"><code>IFACE=ens5
BASE_CC=cubic
BASE_QDISC=fq_codel

sudo sysctl -w net.ipv4.tcp_congestion_control=&quot;$BASE_CC&quot;
sudo tc qdisc replace dev &quot;$IFACE&quot; root &quot;$BASE_QDISC&quot;

sysctl net.ipv4.tcp_congestion_control
tc -s qdisc show dev &quot;$IFACE&quot;</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x440;&#x438;&#x43C;&#x435;&#x440; &#x44F;&#x432;&#x43D;&#x43E;&#x433;&#x43E; rollback &#x441; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x44B;&#x43C;&#x438; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F;&#x43C;&#x438;</div>
</div>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; rollback &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; mechanism gate &#x438; application gate &#x432; &#x442;&#x43E;&#x43C; &#x436;&#x435; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43A;&#x435;. &#x415;&#x441;&#x43B;&#x438; &#x43D;&#x438;&#x437;&#x43A;&#x43E;&#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435;&#x432;&#x44B;&#x435; TCP counters &#x432;&#x435;&#x440;&#x43D;&#x443;&#x43B;&#x438;&#x441;&#x44C;, &#x430; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x430;&#x44F; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x430; &#x43D;&#x435;&#x442;, &#x437;&#x43D;&#x430;&#x447;&#x438;&#x442; bottleneck &#x43C;&#x438;&#x433;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B; &#x438;&#x43B;&#x438; &#x432;&#x44B; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x435; &#x43D;&#x435; &#x442;&#x43E;&#x442; &#x441;&#x43B;&#x43E;&#x439;. &#x41D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, &#x441;&#x435;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x43B;&#x430; &#x431;&#x44B;&#x442;&#x44C; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435;&#x43C;, &#x438; &#x442;&#x435;&#x43F;&#x435;&#x440;&#x44C; tail latency &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; gateway CPU, TLS, storage &#x438;&#x43B;&#x438; decode cadence.</p><p>&#x418;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; rollback &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x43C; rollout. &#x41D;&#x435; &#xAB;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x43B;&#x438; sysctl &#x438; &#x440;&#x430;&#x437;&#x43E;&#x448;&#x43B;&#x438;&#x441;&#x44C;&#xBB;, &#x430; &#x437;&#x430;&#x43D;&#x43E;&#x432;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x43B;&#x438; identity, &#x441;&#x43E;&#x43A;&#x435;&#x442;, qdisc &#x438; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x434;&#x43B;&#x438;&#x43D;&#x43D;&#x435;&#x435;, &#x437;&#x430;&#x442;&#x43E; &#x43E;&#x43D; &#x43F;&#x440;&#x435;&#x434;&#x43E;&#x442;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x43D;&#x430;&#x43A;&#x43E;&#x43F;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x43C;&#x438;&#x444;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x445; kernel tweaks, &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x445; &#x43D;&#x438;&#x43A;&#x442;&#x43E; &#x43D;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x438;.</p>
<div class="ks-widget" id="ks-chk-f3n6z8q"><h3>&#x41A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x434; rollout</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x418;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x44B;&#x435; CC &#x438; qdisc &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B; &#x434;&#x43E; change</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> &#x41F;&#x43E;&#x441;&#x43B;&#x435; rollback &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x442;&#x44B; &#x43D;&#x43E;&#x432;&#x44B;&#x435; TCP-&#x441;&#x43E;&#x435;&#x434;&#x438;&#x43D;&#x435;&#x43D;&#x438;&#x44F;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> &#x41F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x451;&#x43D; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x43D;&#x430;&#x431;&#x43E;&#x440; LLM-&#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> &#x421;&#x440;&#x430;&#x432;&#x43D;&#x435;&#x43D;&#x44B; TTFT &#x438; &#x43C;&#x435;&#x436;&#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x43F;&#x430;&#x443;&#x437;&#x44B; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43E;, &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x435;&#x445;&#x430;&#x43B; &#x43B;&#x438; bottleneck &#x43D;&#x430; CPU/GPU/gateway</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-f3n6z8q');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-inline-06-5a9ae4a7.webp" class="kg-image" alt="BBR &#x438; fq &#x434;&#x43B;&#x44F; LLM-&#x441;&#x442;&#x440;&#x438;&#x43C;&#x438;&#x43D;&#x433;&#x430;: &#x43A;&#x430;&#x43A; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x438;&#x437; latency &#x438; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x443;&#x442;&#x430;&#x442;&#x44C; &#x435;&#x451; &#x441; TTFT" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/bbr-fq-llm-streaming-network-runbook-inline-06-5a9ae4a7.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/bbr-fq-llm-streaming-network-runbook-inline-06-5a9ae4a7.webp 1000w, https://kingservers.com/blog/content/images/2026/09/bbr-fq-llm-streaming-network-runbook-inline-06-5a9ae4a7.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="disqualifiers">&#x41A;&#x43E;&#x433;&#x434;&#x430; BBR/fq &#x43D;&#x435; &#x43F;&#x43E;&#x43C;&#x43E;&#x436;&#x435;&#x442; &#x2014; &#x438; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x442;&#x432;&#x43B;&#x435;&#x447;&#x44C; &#x43E;&#x442; &#x43D;&#x430;&#x441;&#x442;&#x43E;&#x44F;&#x449;&#x435;&#x439; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B;</h2>
<p>&#x41F;&#x435;&#x440;&#x432;&#x44B;&#x439; disqualifier &#x2014; HTTP/3. &#x41A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; HTTP/3 &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x432;&#x435;&#x440;&#x445; QUIC, &#x430; &#x43D;&#x435; TCP; Linux sysctl <code>net.ipv4.tcp_congestion_control</code> &#x43D;&#x435; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; QUIC congestion control. &#x423; Google &#x434;&#x43B;&#x44F; QUIC BBR &#x435;&#x441;&#x442;&#x44C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x440;&#x435;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x432; quiche. &#x415;&#x441;&#x43B;&#x438; &#x432;&#x43D;&#x435;&#x448;&#x43D;&#x438;&#x439; API &#x443;&#x436;&#x435; &#x43D;&#x430; HTTP/3, &#x442;&#x44E;&#x43D;&#x438;&#x43D;&#x433; TCP BBR &#x43D;&#x430; &#x44D;&#x442;&#x43E;&#x43C; &#x441;&#x435;&#x433;&#x43C;&#x435;&#x43D;&#x442;&#x435; &#x2014; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x43D;&#x435; &#x442;&#x43E;&#x442; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x440;&#x430;&#x437;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x442;&#x440;&#x430;&#x43D;&#x441;&#x43F;&#x43E;&#x440;&#x442;; &#x434;&#x43B;&#x44F; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x438;&#x433;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x44F; <a href="https://kingservers.com/blog/http3-dlya-ai-api-latency-i-stabilnost/">&#x43F;&#x440;&#x43E; HTTP/3 &#x434;&#x43B;&#x44F; AI API</a>.</p><p>&#x412;&#x442;&#x43E;&#x440;&#x43E;&#x439; disqualifier &#x2014; <code>app_limited</code> &#x438; &#x43D;&#x438;&#x437;&#x43A;&#x430;&#x44F; &#x438;&#x43D;&#x442;&#x435;&#x43D;&#x441;&#x438;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;. LLM token streaming &#x447;&#x430;&#x441;&#x442;&#x43E; &#x43D;&#x435; &#x43F;&#x43E;&#x445;&#x43E;&#x436; &#x43D;&#x430; bulk transfer: &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x44B;&#x434;&#x430;&#x451;&#x442; &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x438;&#x435; &#x447;&#x430;&#x43D;&#x43A;&#x438; &#x441; &#x43F;&#x430;&#x443;&#x437;&#x430;&#x43C;&#x438; &#x43C;&#x435;&#x436;&#x434;&#x443; decode steps. &#x415;&#x441;&#x43B;&#x438; bottleneck bandwidth &#x43D;&#x435; &#x437;&#x430;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F;, congestion control &#x438;&#x43C;&#x435;&#x435;&#x442; &#x43C;&#x430;&#x43B;&#x43E; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x430; &#x434;&#x43B;&#x44F; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x43E;&#x433;&#x43E; &#x440;&#x438;&#x442;&#x43C;&#x430;.</p><p>&#x422;&#x440;&#x435;&#x442;&#x438;&#x439; &#x2014; buffering &#x432;&#x44B;&#x448;&#x435; TCP. L7 proxy &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43A;&#x43E;&#x43F;&#x438;&#x442;&#x44C; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x434;&#x43E; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;&#x430;/&#x442;&#x430;&#x439;&#x43C;&#x435;&#x440;&#x430;, &#x431;&#x438;&#x431;&#x43B;&#x438;&#x43E;&#x442;&#x435;&#x43A;&#x430; &#x2014; &#x43D;&#x435; flush-&#x438;&#x442;&#x44C; &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; chunk, &#x430; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442; &#x2014; &#x441;&#x430;&#x43C; &#x431;&#x443;&#x444;&#x435;&#x440;&#x438;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; UI. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x441;&#x435;&#x442;&#x44C; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x432;&#x441;&#x451; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E;, &#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x432;&#x438;&#x434;&#x438;&#x442; &#xAB;&#x43F;&#x430;&#x447;&#x43A;&#x438;&#xBB;. &#x421;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435; &#x43C;&#x435;&#x441;&#x442;&#x43E; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x439; &#x437;&#x430;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x438;, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; wire metrics.</p><p>&#x427;&#x435;&#x442;&#x432;&#x451;&#x440;&#x442;&#x44B;&#x439; &#x2014; saturation &#x43D;&#x430; GPU &#x438;&#x43B;&#x438; admission control. &#x415;&#x441;&#x43B;&#x438; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432; &#x440;&#x430;&#x441;&#x442;&#x451;&#x442;, TTFT &#x443;&#x435;&#x437;&#x436;&#x430;&#x435;&#x442;, &#x430; inter-token gap &#x443;&#x445;&#x443;&#x434;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x438;&#x437;-&#x437;&#x430; &#x43A;&#x43E;&#x43D;&#x43A;&#x443;&#x440;&#x435;&#x43D;&#x446;&#x438;&#x438; &#x437;&#x430; compute, BBR &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43D;&#x435; &#x43B;&#x435;&#x43A;&#x430;&#x440;&#x441;&#x442;&#x432;&#x43E;. &#x418;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x43E;&#x440;&#x43E;&#x433;&#x438;&#x445; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432; &#x447;&#x435;&#x440;&#x435;&#x437; quota/rate policy &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x443;&#x435;&#x442; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x433;&#x43E; &#x442;&#x44E;&#x43D;&#x438;&#x43D;&#x433;&#x430;; &#x441;&#x43C;. <a href="https://kingservers.com/blog/api-abuse-protection-rate-limits-i-quotas/">&#x440;&#x430;&#x437;&#x431;&#x43E;&#x440; rate limits &#x438; quotas &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x440;&#x43E;&#x433;&#x438;&#x445; API</a>.</p><p>&#x41F;&#x44F;&#x442;&#x44B;&#x439; &#x2014; bottleneck &#x437;&#x430; &#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x430;&#x43C;&#x438; &#x432;&#x430;&#x448;&#x435;&#x433;&#x43E; host. Wi&#x2011;Fi &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F;, &#x43C;&#x43E;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x441;&#x435;&#x442;&#x44C;, &#x43C;&#x435;&#x436;&#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x441;&#x43A;&#x438;&#x439; peering &#x438; provider uplink &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x434;&#x43E;&#x43C;&#x438;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;. BBR &#x43D;&#x430; sender &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x441;&#x432;&#x43E;&#x451; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;, &#x43D;&#x43E; &#x43D;&#x435; &#x434;&#x430;&#x451;&#x442; &#x432;&#x430;&#x43C; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x43D;&#x430;&#x434; &#x447;&#x443;&#x436;&#x43E;&#x439; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C;&#x44E;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x440;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x446;&#x435;&#x43D;&#x435;&#x43D; &#x43D;&#x435; &#x441;&#x430;&#x43C; &#x430;&#x43B;&#x433;&#x43E;&#x440;&#x438;&#x442;&#x43C;, &#x430; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x43E; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; &#x441;&#x432;&#x43E;&#x435;&#x439; &#x447;&#x430;&#x441;&#x442;&#x44C;&#x44E; &#x43F;&#x443;&#x442;&#x438; &#x438; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x43E; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44F;&#x442;&#x44C; &#x435;&#x451; &#x43E;&#x442; &#x432;&#x43D;&#x435;&#x448;&#x43D;&#x435;&#x439;.</p>
<div class="ks-widget" id="ks-sel-m8c4h1p"><h3>BBR/fq &#x432;&#x43E;&#x43E;&#x431;&#x449;&#x435; &#x43E;&#x442;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x441;&#x44F; &#x43A; &#x432;&#x430;&#x448;&#x435;&#x43C;&#x443; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x44E;?</h3><label>&#x421;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x439;</label><select data-s><option value="sse">SSE/HTTP/1.1&#x2013;2, sender &#x2014; &#x432;&#x430;&#x448; Linux host</option><option value="proxy">&#x41A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; TCP &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x432;&#x43D;&#x435;&#x448;&#x43D;&#x435;&#x43C; proxy</option><option value="h3">HTTP/3/QUIC &#x434;&#x43E; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x430;</option><option value="gpu">&#x41F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x430;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-m8c4h1p');if(!r)return;var m={"sse":"Подходит для canary, если есть сетевые симптомы и воспроизводимый baseline.","proxy":"Настраивайте и измеряйте host, который реально держит клиентский TCP; backend может быть не тем sender.","h3":"TCP BBR sysctl не управляет QUIC. Проверяйте congestion control реализации QUIC отдельно.","gpu":"Сначала inference/admission/gateway diagnostics; BBR не должен быть первым change."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><h2 id="production-rollout">Production rollout: &#x446;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43D;&#x435; &#x432; sysctl, &#x430; &#x432; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x435; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;</h2>
<p>&#x415;&#x441;&#x43B;&#x438; canary &#x43F;&#x440;&#x43E;&#x448;&#x451;&#x43B; mechanism gate, application gate &#x438; rollback-&#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;, &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43E;&#x431;&#x441;&#x443;&#x436;&#x434;&#x430;&#x442;&#x44C; rollout. &#x414;&#x435;&#x43B;&#x430;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x43F;&#x43E; topology class: &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x435; kernel build, NIC/driver, qdisc baseline, MTU &#x438; &#x440;&#x43E;&#x43B;&#x44C; &#x432; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x435;. &#x41D;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x432; &#x43E;&#x434;&#x438;&#x43D; wave &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x442;&#x438;&#x43F;&#x44B; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x435; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x2014; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; sysctl &#x43F;&#x43E;&#x432;&#x435;&#x440;&#x445; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; egress paths &#x43D;&#x435; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x443;&#x44E; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x443;.</p><p>Persistence &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; &#x448;&#x430;&#x433;&#x43E;&#x43C;. &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; sysctl &#x432; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x43E;&#x439; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;, qdisc &#x2014; &#x432; network bootstrap/systemd unit &#x438;&#x43B;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C; IaC-&#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x435;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x432;&#x430;&#x448;&#x430; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x443;&#x43C;&#x435;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x438; &#x43E;&#x442;&#x43A;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x442;&#x44C;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; reboot &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x442;&#x43E;&#x442; &#x436;&#x435; evidence gate: congestion control &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D;, &#x43D;&#x43E;&#x432;&#x44B;&#x435; &#x441;&#x43E;&#x43A;&#x435;&#x442;&#x44B; &#x435;&#x433;&#x43E; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x44E;&#x442;, qdisc &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44E;, application canary &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;.</p><p>&#x414;&#x43B;&#x44F; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x439; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x44B; &#x44D;&#x442;&#x43E; &#x438; &#x435;&#x441;&#x442;&#x44C; &#x435;&#x441;&#x442;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x439; offer bridge. Dedicated host &#x434;&#x430;&#x451;&#x442; ownership &#x43D;&#x430;&#x434; kernel profile, qdisc, NIC, IRQ/CPU placement, reboot window &#x438; rollback. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43D;&#x438;&#x435;, &#x447;&#x442;&#x43E; &#xAB;dedicated + BBR &#x432;&#x441;&#x435;&#x433;&#x434;&#x430; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x435;&#x435;&#xBB;. &#x41D;&#x430;&#x43E;&#x431;&#x43E;&#x440;&#x43E;&#x442;: &#x446;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x432; &#x442;&#x43E;&#x43C;, &#x447;&#x442;&#x43E; &#x43E;&#x434;&#x438;&#x43D; &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; baseline &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x438;, &#x430; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x2014; &#x438;&#x437;&#x43E;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;. &#x415;&#x441;&#x43B;&#x438; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43D;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x442; host networking &#x438;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x430;&#x439;&#x434;&#x435;&#x440; &#x437;&#x430;&#x43F;&#x440;&#x435;&#x449;&#x430;&#x435;&#x442; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x435; kernel/qdisc changes, &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x43E; &#x43D;&#x435;&#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x435;&#x43D;.</p><p>&#x41F;&#x440;&#x438; &#x44D;&#x442;&#x43E;&#x43C; &#x441;&#x435;&#x442;&#x44C; &#x43D;&#x435; &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x442; inference topology. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x443;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; egress queue bottleneck &#x43F;&#x435;&#x440;&#x435;&#x435;&#x437;&#x436;&#x430;&#x435;&#x442; &#x432; CPU/memory locality, &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435;&#x441;&#x44C; &#x43A; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x43D;&#x43E;&#x439; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x435;. &#x412; multi-GPU &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x44F;&#x445; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x439; rollout &#x441; <a href="https://kingservers.com/blog/numa-locality-gpu-llm-inference/">NUMA-locality</a> &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x43C;&#x438; host-level gates, &#x430; &#x43D;&#x435; &#x43F;&#x44B;&#x442;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43E;&#x434;&#x43D;&#x438;&#x43C; TCP tweak &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C; &#x432;&#x441;&#x44E; &#x446;&#x435;&#x43F;&#x43E;&#x447;&#x43A;&#x443;.</p>
<div class="ks-widget" id="ks-tab-z2d7k5r"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x439; rollout &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x443;&#x440;&#x43E;&#x432;&#x43D;&#x44E; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44F;</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="dedicated">Dedicated</button><button type="button" class="tab-btn" data-t="vps">VPS/KVM</button><button type="button" class="tab-btn" data-t="managed">Managed gateway</button></div><div class="panel on" data-p="dedicated">&#x41C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; host-level control: kernel, qdisc, NIC &#x438; reboot profile &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x447;&#x430;&#x441;&#x442;&#x44C;&#x44E; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x433;&#x43E; baseline.</div><div class="panel" data-p="vps">&#x413;&#x43E;&#x441;&#x442;&#x435;&#x432;&#x430;&#x44F; &#x41E;&#x421; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x441;&#x432;&#x43E;&#x438;&#x43C; TCP/qdisc, &#x43D;&#x43E; vSwitch &#x438; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; uplink &#x43E;&#x441;&#x442;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x432;&#x43D;&#x435;&#x448;&#x43D;&#x438;&#x43C;&#x438; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44F;&#x43C;&#x438;; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x432;&#x43B;&#x438;&#x44F;&#x43D;&#x438;&#x44F;.</div><div class="panel" data-p="managed">&#x415;&#x441;&#x43B;&#x438; &#x432;&#x43D;&#x435;&#x448;&#x43D;&#x438;&#x439; gateway &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; TCP, kernel tuning backend &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438; &#x438; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x441;&#x430;&#x43C;&#x43E;&#x433;&#x43E; gateway.</div><script>(function(){var r=document.getElementById('ks-tab-z2d7k5r');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/network-inline-07-e4c14889.webp" class="kg-image" alt="BBR &#x438; fq &#x434;&#x43B;&#x44F; LLM-&#x441;&#x442;&#x440;&#x438;&#x43C;&#x438;&#x43D;&#x433;&#x430;: &#x43A;&#x430;&#x43A; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x438;&#x437; latency &#x438; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x443;&#x442;&#x430;&#x442;&#x44C; &#x435;&#x451; &#x441; TTFT" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/network-inline-07-e4c14889.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/network-inline-07-e4c14889.webp 1000w, https://kingservers.com/blog/content/images/2026/09/network-inline-07-e4c14889.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="final-checklist">&#x427;&#x435;&#x43A;-&#x43B;&#x438;&#x441;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x434; rollout &#x438; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x439; &#x432;&#x44B;&#x432;&#x43E;&#x434;</h2>
<p>BBR + fq &#x438;&#x43C;&#x435;&#x435;&#x442; &#x441;&#x43C;&#x44B;&#x441;&#x43B; &#x43D;&#x435; &#x442;&#x43E;&#x433;&#x434;&#x430;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#xAB;&#x442;&#x430;&#x43A; &#x441;&#x43E;&#x432;&#x435;&#x442;&#x443;&#x44E;&#x442; &#x434;&#x43B;&#x44F; VPS&#xBB;, &#x430; &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x432;&#x44B; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43B;&#x438; sender-side queueing problem &#x43D;&#x430; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; LLM streaming path. &#x41F;&#x435;&#x440;&#x435;&#x434; production change &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435;: &#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x435;&#x43D; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; TCP sender; TTFT &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x451;&#x43D; &#x43E;&#x442; &#x43C;&#x435;&#x436;&#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x43F;&#x430;&#x443;&#x437;; baseline CUBIC/&#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x433;&#x43E; CC &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;; root qdisc &#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x435;&#x43D;; &#x43D;&#x430; canary &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x43D;&#x43E;&#x432;&#x44B;&#x435; &#x441;&#x43E;&#x435;&#x434;&#x438;&#x43D;&#x435;&#x43D;&#x438;&#x44F;; mechanism &#x438; application metrics &#x443;&#x43B;&#x443;&#x447;&#x448;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;; rollback &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x43A;&#x430;&#x440;&#x442;&#x438;&#x43D;&#x443; &#x43A; baseline; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; bottleneck &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x435;&#x445;&#x430;&#x43B; &#x432; GPU, gateway &#x438;&#x43B;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x439; &#x441;&#x43B;&#x43E;&#x439;.</p><p>&#x415;&#x441;&#x43B;&#x438; &#x445;&#x43E;&#x442;&#x44F; &#x431;&#x44B; &#x43E;&#x434;&#x438;&#x43D; &#x438;&#x437; &#x44D;&#x442;&#x438;&#x445; &#x43F;&#x443;&#x43D;&#x43A;&#x442;&#x43E;&#x432; &#x43D;&#x435; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F;, &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x442;&#x44C; &#xAB;&#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x44B;&#x43C; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x43C;&#xBB;, &#x430; &#x43D;&#x435; &#x43E;&#x43F;&#x442;&#x438;&#x43C;&#x438;&#x437;&#x430;&#x446;&#x438;&#x435;&#x439;. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x43A;&#x43E;&#x43D;&#x441;&#x435;&#x440;&#x432;&#x430;&#x442;&#x438;&#x437;&#x43C; &#x44D;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x438;&#x442; &#x432;&#x440;&#x435;&#x43C;&#x44F;: kernel tuning, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E; &#x441;&#x432;&#x44F;&#x437;&#x430;&#x442;&#x44C; &#x441; SLO, &#x431;&#x44B;&#x441;&#x442;&#x440;&#x43E; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x442;&#x435;&#x445;&#x43D;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x434;&#x43E;&#x43B;&#x433;.</p><p>&#x418;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A;&#x438; &#x434;&#x43B;&#x44F; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x43A;&#x438; &#x2014; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; <a href="https://docs.kernel.org/networking/ip-sysctl.html?ref=kingservers.com">&#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; Linux IP sysctl</a>, &#x43E;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x438;&#x435; <a href="https://man7.org/linux/man-pages/man8/tc-fq.8.html?ref=kingservers.com">tc-fq</a> &#x438; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B;&#x44B; <a href="https://github.com/google/bbr?ref=kingservers.com">Google BBR</a>. &#x41E;&#x43D;&#x438; &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435; &#x441;&#x442;&#x430;&#x440;&#x44B;&#x445; &#x440;&#x435;&#x446;&#x435;&#x43F;&#x442;&#x43E;&#x432; &#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x43E;&#x439; <code>sysctl.conf</code>, &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; pacing &#x438; kernel networking &#x43C;&#x435;&#x43D;&#x44F;&#x43B;&#x43E;&#x441;&#x44C;.</p><p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; canary-host &#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43D;&#x430;&#x431;&#x43E;&#x440;&#x430; streaming-&#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;. &#x415;&#x441;&#x43B;&#x438; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x432;&#x44B;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;, rollback &#x438; reboot &#x2014; &#x442;&#x43E;&#x433;&#x434;&#x430; &#x443; &#x432;&#x430;&#x441; &#x435;&#x441;&#x442;&#x44C; &#x438;&#x43D;&#x436;&#x435;&#x43D;&#x435;&#x440;&#x43D;&#x43E;&#x435; &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x434;&#x43B;&#x44F; rollout. &#x415;&#x441;&#x43B;&#x438; &#x43D;&#x435;&#x442;, &#x44D;&#x442;&#x43E; &#x442;&#x43E;&#x436;&#x435; &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x438;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;: &#x432;&#x44B; &#x438;&#x441;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x43B;&#x438; &#x43E;&#x434;&#x438;&#x43D; &#x441;&#x43B;&#x43E;&#x439; &#x438; &#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x438;&#x434;&#x442;&#x438; &#x434;&#x430;&#x43B;&#x44C;&#x448;&#x435; &#x43F;&#x43E; &#x446;&#x435;&#x43F;&#x43E;&#x447;&#x43A;&#x435; &#x431;&#x435;&#x437; &#x433;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F;.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[pgvector HNSW после UPDATE и DELETE: VACUUM, REINDEX и recall в RAG]]></title><description><![CDATA[Production runbook для pgvector HNSW после UPDATE/DELETE: version gate, dead tuples, REINDEX CONCURRENTLY, VACUUM, iterative scans и exact-vs-approx recall.]]></description><link>https://kingservers.com/blog/pgvector-hnsw-vacuum-reindex-rag/</link><guid isPermaLink="false">6a99b18aaff2afac25354c97</guid><category><![CDATA[Инфраструктура]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Thu, 03 Sep 2026 19:10:50 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-hero-9f26bf3e.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#symptom-boundary">&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; HNSW maintenance &#x43E;&#x442; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x433;&#x43E; pgvector tuning</a></li>
<li><a href="#version-gate">Version gate: &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; pgvector &#x434;&#x43E; &#x43B;&#x44E;&#x431;&#x43E;&#x433;&#x43E; HNSW vacuum runbook</a></li>
<li><a href="#dead-tuples">&#x427;&#x442;&#x43E; UPDATE &#x438; DELETE &#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x44E;&#x442; &#x432; PostgreSQL &#x2014; &#x438; &#x43F;&#x440;&#x438; &#x447;&#x451;&#x43C; &#x437;&#x434;&#x435;&#x441;&#x44C; HNSW</a></li>
<li><a href="#measure-before">Baseline &#x434;&#x43E; REINDEX: dead tuples, index size, plan &#x438; recall</a></li>
<li><a href="#reindex-first">&#x41F;&#x43E;&#x447;&#x435;&#x43C;&#x443; pgvector &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x435;&#x442; REINDEX CONCURRENTLY &#x43F;&#x435;&#x440;&#x435;&#x434; VACUUM</a></li>
<li><a href="#concurrent-cost">CONCURRENTLY &#x43D;&#x435; &#x431;&#x43B;&#x43E;&#x43A;&#x438;&#x440;&#x443;&#x435;&#x442; writes, &#x43D;&#x43E; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; resource budget</a></li>
<li><a href="#vacuum">VACUUM &#x43F;&#x43E;&#x441;&#x43B;&#x435; rebuild: &#x447;&#x442;&#x43E; &#x43E;&#x43D; &#x43E;&#x441;&#x432;&#x43E;&#x431;&#x43E;&#x436;&#x434;&#x430;&#x435;&#x442; &#x438; &#x447;&#x435;&#x433;&#x43E; &#x43D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442;</a></li>
<li><a href="#recall-gate">Recall gate: approximate HNSW &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x441; exact search &#x43D;&#x430; &#x442;&#x43E;&#x43C; &#x436;&#x435; snapshot</a></li>
<li><a href="#iterative-scans">Iterative scans &#x43B;&#x435;&#x447;&#x430;&#x442; filter starvation, &#x430; &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442; maintenance</a></li>
<li><a href="#autovacuum">Autovacuum: &#x43D;&#x430;&#x441;&#x442;&#x440;&#x430;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; trigger &#x43F;&#x43E;&#x434; churn, &#x43D;&#x43E; &#x43D;&#x435; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x432; &#x43C;&#x430;&#x433;&#x438;&#x44E;</a></li>
<li><a href="#rollout">Rollout: canary, stop condition &#x438; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x431;&#x435;&#x437; &#x43B;&#x435;&#x433;&#x435;&#x43D;&#x434;&#x44B; &#x43F;&#x440;&#x43E; &#xAB;&#x43D;&#x443;&#x43B;&#x435;&#x432;&#x43E;&#x439; &#x440;&#x438;&#x441;&#x43A;&#xBB;</a></li>
<li><a href="#conclusion">Decision tree: &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43D;&#x438;&#x447;&#x435;&#x433;&#x43E; &#x43D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C;, &#x43A;&#x43E;&#x433;&#x434;&#x430; tuning, &#x430; &#x43A;&#x43E;&#x433;&#x434;&#x430; REINDEX + VACUUM</a></li>
</ul></div>

</div>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43C;&#x430;&#x441;&#x441;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x431;&#x430;&#x437;&#x44B; &#x437;&#x43D;&#x430;&#x43D;&#x438;&#x439; RAG &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x430;&#x435;&#x442; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x442;&#x44C;, &#x43D;&#x43E; &#x447;&#x430;&#x441;&#x442;&#x44C; top-k &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x442;&#x44C; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435; &#x43F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x44F;&#x449;&#x438;&#x445; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x43E;&#x432;, &#x430; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x435; PostgreSQL &#x437;&#x430;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442; &#x43D;&#x435;&#x43F;&#x440;&#x438;&#x432;&#x44B;&#x447;&#x43D;&#x43E; &#x434;&#x43E;&#x43B;&#x433;&#x43E;. &#x41F;&#x435;&#x440;&#x432;&#x430;&#x44F; &#x440;&#x435;&#x430;&#x43A;&#x446;&#x438;&#x44F; &#x2014; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x44C; HNSW, &#x43D;&#x43E; &#x44D;&#x442;&#x43E; &#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x43C;: &#x43F;&#x43E;&#x445;&#x43E;&#x436;&#x438;&#x439; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C; &#x434;&#x430;&#x44E;&#x442; &#x444;&#x438;&#x43B;&#x44C;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; approximate scan, &#x441;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x43C;&#x430;&#x43B;&#x435;&#x43D;&#x44C;&#x43A;&#x438;&#x439; search budget &#x438; &#x441;&#x43C;&#x435;&#x43D;&#x430; embedding-&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;. &#x412; &#x44D;&#x442;&#x43E;&#x439; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x435; &#x440;&#x430;&#x437;&#x431;&#x435;&#x440;&#x451;&#x43C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; production-&#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x439; &#x2014; churn &#x438;&#x437; UPDATE/DELETE, dead tuples &#x438; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x435; HNSW &#x432; pgvector &#x2014; &#x438; &#x43F;&#x43E;&#x441;&#x442;&#x440;&#x43E;&#x438;&#x43C; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x439; &#x446;&#x438;&#x43A;&#x43B; baseline &#x2192; REINDEX CONCURRENTLY &#x2192; VACUUM &#x2192; recall gate &#x431;&#x435;&#x437; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43D;&#x438;&#x44F;, &#x447;&#x442;&#x43E; REINDEX &#x43B;&#x435;&#x447;&#x438;&#x442; &#x43B;&#x44E;&#x431;&#x43E;&#x439; RAG.<div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <img src="https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-hero-9f26bf3e.webp" alt="pgvector HNSW &#x43F;&#x43E;&#x441;&#x43B;&#x435; UPDATE &#x438; DELETE: VACUUM, REINDEX &#x438; recall &#x432; RAG"><p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="symptom-boundary">&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; HNSW maintenance &#x43E;&#x442; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x433;&#x43E; pgvector tuning</h2>
<p>&#x423; KingServers &#x443;&#x436;&#x435; &#x435;&#x441;&#x442;&#x44C; &#x43E;&#x431;&#x449;&#x438;&#x439; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/pgvector-postgresql-rag/">pgvector &#x432; PostgreSQL &#x434;&#x43B;&#x44F; RAG</a>: &#x442;&#x430;&#x43C; &#x432;&#x430;&#x436;&#x43D;&#x44B; &#x432;&#x44B;&#x431;&#x43E;&#x440; HNSW/IVFFlat, &#x444;&#x438;&#x43B;&#x44C;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F;, &#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x438; &#x438; &#x431;&#x430;&#x437;&#x43E;&#x432;&#x430;&#x44F; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x44F;. &#x417;&#x434;&#x435;&#x441;&#x44C; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43D;&#x430;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E; &#x443;&#x436;&#x435;. &#x41C;&#x44B; &#x43D;&#x435; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x43C; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441; &#x437;&#x430;&#x43D;&#x43E;&#x432;&#x43E; &#x438; &#x43D;&#x435; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x435;&#x43C; PostgreSQL &#x441; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; vector DB. &#x41D;&#x430;&#x441; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x443;&#x435;&#x442; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x439; &#x43A;&#x43B;&#x430;&#x441;&#x441; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x43E;&#x432;: &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x430; &#x441; embeddings &#x43F;&#x435;&#x440;&#x435;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x44B;&#x439; &#x43F;&#x43E;&#x442;&#x43E;&#x43A; <code>UPDATE</code>/<code>DELETE</code>, &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x447;&#x435;&#x433;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F; maintenance time, &#x43A;&#x43E;&#x43B;&#x438;&#x447;&#x435;&#x441;&#x442;&#x432;&#x43E; dead tuples &#x438;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x439; recall.</p><p>&#x42D;&#x442;&#x43E; &#x440;&#x430;&#x437;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x430;&#x436;&#x43D;&#x43E;, &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x442;&#x440;&#x438; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x44B;&#x435; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x44B; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x44F;&#x442; &#x43F;&#x43E;&#x445;&#x43E;&#x436;&#x435;. &#x41F;&#x435;&#x440;&#x432;&#x430;&#x44F; &#x2014; <strong>maintenance</strong>: PostgreSQL &#x43D;&#x430;&#x43A;&#x43E;&#x43F;&#x438;&#x43B; obsolete tuple versions, &#x430; HNSW vacuum &#x441;&#x442;&#x430;&#x43B; &#x434;&#x43E;&#x440;&#x43E;&#x433;&#x438;&#x43C;. &#x412;&#x442;&#x43E;&#x440;&#x430;&#x44F; &#x2014; <strong>query budget</strong>: approximate scan &#x43F;&#x440;&#x43E;&#x441;&#x43C;&#x43E;&#x442;&#x440;&#x435;&#x43B; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x43A;&#x430;&#x43D;&#x434;&#x438;&#x434;&#x430;&#x442;&#x43E;&#x432;, &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x440;&#x438; &#x444;&#x438;&#x43B;&#x44C;&#x442;&#x440;&#x430;&#x445;. &#x422;&#x440;&#x435;&#x442;&#x44C;&#x44F; &#x2014; <strong>semantic drift</strong>: &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x430;&#x441;&#x44C; embedding-&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x438;&#x43B;&#x438; &#x441;&#x445;&#x435;&#x43C;&#x430; chunking, &#x438; &#x441;&#x442;&#x430;&#x440;&#x44B;&#x439; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x435;&#x43D;, &#x43D;&#x43E; &#x432;&#x435;&#x43A;&#x442;&#x43E;&#x440;&#x430; &#x443;&#x436;&#x435; &#x43D;&#x435; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x442; &#x43D;&#x43E;&#x432;&#x43E;&#x43C;&#x443; retrieval pipeline.</p><p>&#x41D;&#x435; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x441; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; <code>REINDEX</code>. &#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; &#x442;&#x440;&#x451;&#x445; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;: &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F; pgvector, &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B;/&#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441;&#x430; &#x438; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; canary-&#x43D;&#x430;&#x431;&#x43E;&#x440; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432; &#x434;&#x43B;&#x44F; approximate-vs-exact &#x441;&#x440;&#x430;&#x432;&#x43D;&#x435;&#x43D;&#x438;&#x44F;. &#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x435;&#x441;&#x43B;&#x438; &#x44D;&#x442;&#x438; &#x441;&#x43B;&#x43E;&#x438; &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x44E;&#x442; &#x43D;&#x430; maintenance path, &#x438;&#x43C;&#x435;&#x435;&#x442; &#x441;&#x43C;&#x44B;&#x441;&#x43B; &#x440;&#x430;&#x441;&#x445;&#x43E;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x44C; I/O &#x43D;&#x430; rebuild.</p><p>&#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439; &#x2014; &#x441;&#x43C;&#x435;&#x43D;&#x430; embedding-&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;. &#x414;&#x43B;&#x44F; &#x43D;&#x435;&#x433;&#x43E; &#x443; &#x43D;&#x430;&#x441; &#x435;&#x441;&#x442;&#x44C; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/smena-embedding-modeli-zachem-pereindeksirovat-bazu/">embedding lifecycle &#x438; &#x43F;&#x435;&#x440;&#x435;&#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441;&#x430;&#x446;&#x438;&#x44E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x43C;&#x435;&#x43D;&#x44B; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;</a>. &#x41E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x439; HNSW REINDEX &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x447;&#x438;&#x442;&#x44B;&#x432;&#x430;&#x435;&#x442; embeddings &#x438; &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x43D;&#x435;&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; vector space.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-01-15074778.webp" class="kg-image" alt="pgvector HNSW &#x43F;&#x43E;&#x441;&#x43B;&#x435; UPDATE &#x438; DELETE: VACUUM, REINDEX &#x438; recall &#x432; RAG" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-01-15074778.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-01-15074778.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-01-15074778.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="version-gate">Version gate: &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; pgvector &#x434;&#x43E; &#x43B;&#x44E;&#x431;&#x43E;&#x433;&#x43E; HNSW vacuum runbook</h2>
<p>&#x412;&#x435;&#x440;&#x441;&#x438;&#x44F; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43D;&#x435; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C;. &#x412; changelog pgvector &#x435;&#x441;&#x442;&#x44C; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x432;&#x435;&#x436;&#x438;&#x445; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x439; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x43E;&#x43A;&#x440;&#x443;&#x433; HNSW vacuum: &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F; 0.8.3 &#x43E;&#x442; 17 &#x438;&#x44E;&#x43D;&#x44F; 2026 &#x433;&#x43E;&#x434;&#x430; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x43B;&#x430; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x443;&#x44E; corruption &#x43F;&#x440;&#x438; vacuum, &#x430; 0.8.4 &#x43E;&#x442; 30 &#x438;&#x44E;&#x43D;&#x44F; &#x2014; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x443; <code>hnsw graph not repaired</code> &#x438; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x443;&#x44E; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x443; &#x43F;&#x440;&#x438; inserts &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; HNSW vacuum. &#x412; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; changelog &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x44F;&#x44F; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F; &#x2014; 0.8.6 &#x43E;&#x442; 29 &#x438;&#x44E;&#x43B;&#x44F; 2026 &#x433;&#x43E;&#x434;&#x430;.</p><p>&#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43B;&#x44E;&#x431;&#x43E;&#x439; production &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D; &#x43D;&#x435;&#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x440;&#x44B;&#x433;&#x43D;&#x443;&#x442;&#x44C; &#x43D;&#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x44E;&#x44E; minor-&#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; &#x431;&#x435;&#x437; canary. &#x41D;&#x43E; &#x435;&#x441;&#x43B;&#x438; &#x432;&#x430;&#x448; maintenance-&#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x43F;&#x43E;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D; &#x43D;&#x430; HNSW vacuum &#x438; &#x432;&#x44B; &#x432;&#x441;&#x451; &#x435;&#x449;&#x451; &#x43D;&#x438;&#x436;&#x435; &#x432;&#x435;&#x442;&#x43A;&#x438; &#x441; &#x44D;&#x442;&#x438;&#x43C;&#x438; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;&#x43C;&#x438;, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x440;&#x430;&#x437;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; upgrade path &#x438; release notes, &#x430; &#x443;&#x436;&#x435; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x43F;&#x440;&#x435;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x43D;&#x43E;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x43A;&#x430;&#x43A; &#xAB;&#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; bloat&#xBB;.</p><p>PostgreSQL &#x442;&#x43E;&#x436;&#x435; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x432; evidence bundle. &#x41D;&#x430; &#x434;&#x430;&#x442;&#x443; &#x44D;&#x442;&#x43E;&#x439; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438; current stable branch &#x2014; PostgreSQL 18.6; &#x43F;&#x440;&#x438; &#x44D;&#x442;&#x43E;&#x43C; runbook &#x43D;&#x438;&#x436;&#x435; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x438;&#x43C; &#x438; &#x43A; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x43C; 17/16/15/14, &#x435;&#x441;&#x43B;&#x438; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x438;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;. &#x41D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F; memory/autovacuum &#x43C;&#x435;&#x436;&#x434;&#x443; major-&#x432;&#x435;&#x440;&#x441;&#x438;&#x44F;&#x43C;&#x438; &#x432;&#x441;&#x43B;&#x435;&#x43F;&#x443;&#x44E;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">sql</span><span class="ks-canonical-code-block__filename">version-gate.sql</span></div>
<pre class="ks-canonical-code-block__pre"><code>SELECT version();

SELECT extname, extversion
FROM pg_extension
WHERE extname = &apos;vector&apos;;

SELECT current_setting(&apos;server_version_num&apos;) AS server_version_num;</code></pre>
<div class="ks-canonical-code-block__caption">&#x412;&#x435;&#x440;&#x441;&#x438;&#x438; PostgreSQL &#x438; pgvector &#x43F;&#x435;&#x440;&#x435;&#x434; maintenance</div>
</div>
<style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}.ks-widget .panel.on{display:block}.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}.ks-widget select{max-width:520px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style><div class="ks-widget" id="ks-tab-vgate7"><h3>&#x427;&#x442;&#x43E; &#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x441; version gate?</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="old">&#x414;&#x43E; 0.8.3</button><button type="button" class="tab-btn" data-t="mid">0.8.3&#x2013;0.8.4</button><button type="button" class="tab-btn" data-t="new">0.8.5+</button></div><div class="panel on" data-p="old">&#x41F;&#x435;&#x440;&#x435;&#x434; &#x440;&#x430;&#x437;&#x431;&#x43E;&#x440;&#x43E;&#x43C; HNSW vacuum-&#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430; &#x43F;&#x440;&#x438;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x442;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; upgrade path: &#x432; 0.8.3/0.8.4 &#x431;&#x44B;&#x43B;&#x438; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x438; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A; vacuum.</div><div class="panel" data-p="mid">&#x412;&#x44B; &#x443;&#x436;&#x435; &#x43D;&#x430; &#x432;&#x435;&#x442;&#x43A;&#x435; &#x441; &#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x432;&#x44B;&#x43C;&#x438; vacuum fixes, &#x43D;&#x43E; &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x441;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; changelog &#x438; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435; symptom &#x43D;&#x430; canary.</div><div class="panel" data-p="new">&#x412;&#x435;&#x440;&#x441;&#x438;&#x44F; &#x441;&#x430;&#x43C;&#x430; &#x43F;&#x43E; &#x441;&#x435;&#x431;&#x435; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43D;&#x443;&#x436;&#x435;&#x43D; REINDEX. &#x41F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x435; &#x43A; evidence: dead tuples, plan, maintenance time &#x438; recall.</div><script>(function(){var r=document.getElementById('ks-tab-vgate7');if(!r)return;var b=[].slice.call(r.querySelectorAll('[data-t]')),p=[].slice.call(r.querySelectorAll('[data-p]'));function s(k){b.forEach(function(x){x.classList.toggle('on',x.getAttribute('data-t')===k)});p.forEach(function(x){x.classList.toggle('on',x.getAttribute('data-p')===k)});}b.forEach(function(x){x.onclick=function(){s(x.getAttribute('data-t'));};});})();</script></div><h2 id="dead-tuples">&#x427;&#x442;&#x43E; UPDATE &#x438; DELETE &#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x44E;&#x442; &#x432; PostgreSQL &#x2014; &#x438; &#x43F;&#x440;&#x438; &#x447;&#x451;&#x43C; &#x437;&#x434;&#x435;&#x441;&#x44C; HNSW</h2>
<p>PostgreSQL &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; MVCC: &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x430;&#x44F; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x430; &#x438;&#x43B;&#x438; &#x441;&#x442;&#x430;&#x440;&#x430;&#x44F; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; <code>UPDATE</code> &#x43D;&#x435; &#x438;&#x441;&#x447;&#x435;&#x437;&#x430;&#x435;&#x442; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43C;&#x433;&#x43D;&#x43E;&#x432;&#x435;&#x43D;&#x43D;&#x43E;. &#x41E;&#x43D;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43A;&#x430;&#x43A; dead tuple, &#x43F;&#x43E;&#x43A;&#x430; <code>VACUUM</code> &#x43D;&#x435; &#x441;&#x43C;&#x43E;&#x436;&#x435;&#x442; &#x435;&#x451; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; write-heavy RAG corpus &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43C;&#x430;&#x441;&#x441;&#x43E;&#x432;&#x43E;&#x439; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44B; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x43E;&#x432; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x438;&#x43C;&#x435;&#x442;&#x44C; &#x433;&#x43E;&#x440;&#x430;&#x437;&#x434;&#x43E; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x439; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x44B;, &#x447;&#x435;&#x43C; &#x43F;&#x43E;&#x434;&#x441;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x435; <code>COUNT(*)</code>.</p><p>&#x414;&#x43B;&#x44F; HNSW &#x435;&#x441;&#x442;&#x44C; &#x434;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x434;&#x435;&#x442;&#x430;&#x43B;&#x44C;: &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; pgvector README &#x43F;&#x440;&#x44F;&#x43C;&#x43E; &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; vacuum HNSW-&#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441;&#x43E;&#x432; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x437;&#x430;&#x43D;&#x438;&#x43C;&#x430;&#x442;&#x44C; &#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x43E;&#x435; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x438; &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x435;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x434; &#x43D;&#x438;&#x43C; reindex. &#x42D;&#x442;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435;, &#x447;&#x435;&#x43C; &#x43F;&#x44B;&#x442;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x432;&#x44B;&#x432;&#x435;&#x441;&#x442;&#x438; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x43E; &#x432;&#x440;&#x43E;&#x434;&#x435; &#xAB;&#x43F;&#x440;&#x438; N% dead tuples &#x432;&#x441;&#x435;&#x433;&#x434;&#x430; REINDEX&#xBB;: &#x442;&#x430;&#x43A;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;&#x440;&#x43E;&#x433;&#x430; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x43D;&#x435; &#x437;&#x430;&#x434;&#x430;&#x451;&#x442;, &#x430; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x44B;&#x439; churn &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;&#x430; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B;, storage I/O, &#x43E;&#x43A;&#x43D;&#x430; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x438; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x430;.</p><p>&#x41D;&#x443;&#x436;&#x43D;&#x43E; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x430;&#x442;&#x44C; <strong>table dead tuples</strong>, <strong>index physical size</strong> &#x438; <strong>retrieval behavior</strong>. &#x411;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; <code>n_dead_tup</code> &#x2014; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B; &#x43A; &#x440;&#x430;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44E;, &#x43D;&#x43E; &#x441;&#x430;&#x43C; &#x43F;&#x43E; &#x441;&#x435;&#x431;&#x435; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; semantic recall regression. &#x418; &#x43D;&#x430;&#x43E;&#x431;&#x43E;&#x440;&#x43E;&#x442;, &#x43C;&#x430;&#x43B;&#x43E; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x43E;&#x432; &#x432; HNSW-&#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x435; &#x43D;&#x435; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; bloat: &#x43F;&#x440;&#x438; &#x444;&#x438;&#x43B;&#x44C;&#x442;&#x440;&#x430;&#x445; pgvector &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; filter &#x43F;&#x43E;&#x441;&#x43B;&#x435; approximate scan, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; search budget &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x437;&#x430;&#x43A;&#x43E;&#x43D;&#x447;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x440;&#x430;&#x43D;&#x44C;&#x448;&#x435;, &#x447;&#x435;&#x43C; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x439; top-k.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-02-149bcbaa.webp" class="kg-image" alt="pgvector HNSW &#x43F;&#x43E;&#x441;&#x43B;&#x435; UPDATE &#x438; DELETE: VACUUM, REINDEX &#x438; recall &#x432; RAG" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-02-149bcbaa.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-02-149bcbaa.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-02-149bcbaa.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="measure-before">Baseline &#x434;&#x43E; REINDEX: dead tuples, index size, plan &#x438; recall</h2>
<p>Evidence bundle &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x439;&#x442;&#x435; &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; maintenance action. &#x412; &#x43D;&#x451;&#x43C; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x431;&#x44B;&#x442;&#x44C; stable table/index identity, &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F; extension, &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; retrieval query, &#x441;&#x442;&#x430;&#x442;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x430; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B; &#x438; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440; HNSW. &#x414;&#x43B;&#x44F; application layer &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; &#x43D;&#x430;&#x431;&#x43E;&#x440; canary queries: &#x43D;&#x435; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x44B;&#x435; synthetic vectors, &#x430; &#x442;&#x435; &#x442;&#x438;&#x43F;&#x44B; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;, &#x43D;&#x430; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x445; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x437;&#x430;&#x43C;&#x435;&#x447;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443;.</p><p><code>pg_stat_user_tables</code> &#x434;&#x430;&#x451;&#x442; &#x43E;&#x446;&#x435;&#x43D;&#x43E;&#x447;&#x43D;&#x44B;&#x435; <code>n_live_tup</code>/<code>n_dead_tup</code> &#x438; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x435;&#x433;&#x43E; vacuum/autovacuum. &#x420;&#x430;&#x437;&#x43C;&#x435;&#x440; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441;&#x430; &#x443;&#x434;&#x43E;&#x431;&#x43D;&#x43E; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x447;&#x435;&#x440;&#x435;&#x437; <code>pg_relation_size</code>. &#x41F;&#x43B;&#x430;&#x43D; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x435;&#x442;&#x44C; &#x43D;&#x430; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; <code>WHERE</code> &#x438; &#x442;&#x43E;&#x43C; &#x436;&#x435; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x435; distance, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">sql</span><span class="ks-canonical-code-block__filename">hnsw-baseline.sql</span></div>
<pre class="ks-canonical-code-block__pre"><code>SELECT
  schemaname,
  relname,
  n_live_tup,
  n_dead_tup,
  last_vacuum,
  last_autovacuum,
  n_mod_since_analyze
FROM pg_stat_user_tables
WHERE schemaname = &apos;public&apos;
  AND relname = &apos;rag_documents&apos;;

SELECT
  pg_size_pretty(pg_relation_size(&apos;public.rag_documents&apos;)) AS table_size,
  pg_size_pretty(pg_relation_size(&apos;public.rag_documents_embedding_hnsw_idx&apos;)) AS hnsw_size;

EXPLAIN (ANALYZE, BUFFERS)
SELECT id
FROM public.rag_documents
WHERE tenant_id = :tenant_id
ORDER BY embedding <=> :query_embedding
LIMIT 20;</=></code></pre>
<div class="ks-canonical-code-block__caption">&#x41C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; baseline &#x43F;&#x435;&#x440;&#x435;&#x434; HNSW maintenance</div>
</div>
<div class="ks-widget" id="ks-chk-base4"><h3>Baseline &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439;?</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x44B; PostgreSQL &#x438; pgvector versions</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> &#x415;&#x441;&#x442;&#x44C; n_dead_tup &#x438; timestamp &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x435;&#x433;&#x43E; autovacuum</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440; HNSW &#x438; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> EXPLAIN &#x441;&#x43D;&#x44F;&#x442; &#x43D;&#x430; production-like query &#x441; &#x442;&#x435;&#x43C;&#x438; &#x436;&#x435; filters</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x415;&#x441;&#x442;&#x44C; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; canary set &#x434;&#x43B;&#x44F; recall comparison</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-base4');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n===c.length?' — можно менять один фактор':' — сначала доберите evidence');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-03-4089b81b.webp" class="kg-image" alt="pgvector HNSW &#x43F;&#x43E;&#x441;&#x43B;&#x435; UPDATE &#x438; DELETE: VACUUM, REINDEX &#x438; recall &#x432; RAG" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-03-4089b81b.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-03-4089b81b.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-03-4089b81b.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="reindex-first">&#x41F;&#x43E;&#x447;&#x435;&#x43C;&#x443; pgvector &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x435;&#x442; REINDEX CONCURRENTLY &#x43F;&#x435;&#x440;&#x435;&#x434; VACUUM</h2>
<p>&#x414;&#x43B;&#x44F; HNSW &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; pgvector README &#x434;&#x430;&#x451;&#x442; &#x43D;&#x435;&#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x443;&#x44E; &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x430;&#x446;&#x438;&#x44E;: &#x435;&#x441;&#x43B;&#x438; vacuum &#x438;&#x434;&#x451;&#x442; &#x434;&#x43E;&#x43B;&#x433;&#x43E;, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; <code>REINDEX INDEX CONCURRENTLY</code>, &#x437;&#x430;&#x442;&#x435;&#x43C; <code>VACUUM</code> &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B;. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x449;&#x438;&#x439; &#x437;&#x430;&#x43A;&#x43E;&#x43D; PostgreSQL &#x434;&#x43B;&#x44F; &#x43B;&#x44E;&#x431;&#x43E;&#x433;&#x43E; index type, &#x430; pgvector-specific operational hint.</p><p><code>REINDEX</code> &#x441;&#x442;&#x440;&#x43E;&#x438;&#x442; &#x43D;&#x43E;&#x432;&#x443;&#x44E; &#x43A;&#x43E;&#x43F;&#x438;&#x44E; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441;&#x430; &#x438;&#x437; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B;. &#x412; production &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442; <code>CONCURRENTLY</code> &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x430;&#x442;&#x44C; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x435; <code>INSERT</code>/<code>UPDATE</code>/<code>DELETE</code>, &#x442;&#x43E;&#x433;&#x434;&#x430; &#x43A;&#x430;&#x43A; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x439; REINDEX &#x431;&#x43B;&#x43E;&#x43A;&#x438;&#x440;&#x443;&#x435;&#x442; writes &#x43D;&#x430; &#x432;&#x440;&#x435;&#x43C;&#x44F; rebuild. &#x426;&#x435;&#x43D;&#x430; concurrency &#x2014; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x43E;&#x431;&#x449;&#x435;&#x439; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x44B;, &#x434;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; scans &#x438; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x438;&#x435; &#x442;&#x440;&#x430;&#x43D;&#x437;&#x430;&#x43A;&#x446;&#x438;&#x439;.</p><p>&#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x43D;&#x435; &#x43E;&#x431;&#x44A;&#x435;&#x434;&#x438;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x432; &#x43E;&#x434;&#x43D;&#x443; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x443;&#x44E; transaction. PostgreSQL &#x43D;&#x435; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x430;&#x435;&#x442; <code>REINDEX CONCURRENTLY</code> &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; transaction block; <code>VACUUM</code> &#x442;&#x43E;&#x436;&#x435; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;. &#x418; &#x43D;&#x435; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43D;&#x438;&#x436;&#x435; &#x432; cron &#xAB;&#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; batch&#xBB;: &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; symptom &#x438; evidence, &#x437;&#x430;&#x442;&#x435;&#x43C; maintenance.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">sql</span><span class="ks-canonical-code-block__filename">hnsw-maintenance.sql</span></div>
<pre class="ks-canonical-code-block__pre"><code>REINDEX INDEX CONCURRENTLY public.rag_documents_embedding_hnsw_idx;

VACUUM public.rag_documents;

-- &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x433;&#x43E; churn &#x43D;&#x443;&#x436;&#x43D;&#x430; &#x441;&#x432;&#x435;&#x436;&#x430;&#x44F; planner statistics:
ANALYZE public.rag_documents;</code></pre>
<div class="ks-canonical-code-block__caption">Pgvector-specific &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; rebuild &#x438; vacuum</div>
</div>
<div class="ks-widget" id="ks-sel-maint8"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x439; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x448;&#x430;&#x433; &#x43E;&#x43F;&#x440;&#x430;&#x432;&#x434;&#x430;&#x43D; evidence?</h3><label>&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x435;</label><select data-s><option value="none">Churn &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439;, recall &#x438; maintenance &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;</option><option value="filter">&#x41C;&#x430;&#x43B;&#x43E; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x43E;&#x432; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x440;&#x438; &#x441;&#x442;&#x440;&#x43E;&#x433;&#x438;&#x445; filters</option><option value="maint">Dead tuples &#x432;&#x44B;&#x440;&#x43E;&#x441;&#x43B;&#x438;, HNSW vacuum &#x442;&#x44F;&#x436;&#x451;&#x43B;&#x44B;&#x439;, symptom &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F;</option><option value="model">&#x41D;&#x435;&#x434;&#x430;&#x432;&#x43D;&#x43E; &#x441;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x430;&#x441;&#x44C; embedding-&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-maint8');if(!r)return;var m={none:'Не добавляйте REINDEX ради ритуала: оставьте routine vacuum и наблюдение.',filter:'Сначала проверьте ef_search / iterative scan и filter selectivity.',maint:'Планируйте REINDEX CONCURRENTLY → VACUUM с resource budget и recall gate.',model:'Это другой lifecycle: пересчёт embeddings и controlled reindex, а не maintenance старого vector space.'};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-04-be21352c.webp" class="kg-image" alt="pgvector HNSW &#x43F;&#x43E;&#x441;&#x43B;&#x435; UPDATE &#x438; DELETE: VACUUM, REINDEX &#x438; recall &#x432; RAG" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-04-be21352c.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-04-be21352c.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-04-be21352c.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="concurrent-cost">CONCURRENTLY &#x43D;&#x435; &#x431;&#x43B;&#x43E;&#x43A;&#x438;&#x440;&#x443;&#x435;&#x442; writes, &#x43D;&#x43E; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; resource budget</h2>
<p>&#x421;&#x43B;&#x43E;&#x432;&#x43E; <code>CONCURRENTLY</code> &#x438;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x447;&#x43D;&#x43E; &#x447;&#x438;&#x442;&#x430;&#x44E;&#x442; &#x43A;&#x430;&#x43A; &#xAB;&#x434;&#x451;&#x448;&#x435;&#x432;&#x43E; &#x438; &#x43D;&#x435;&#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x43E;&#xBB;. PostgreSQL &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x44B;&#x439; trade-off: concurrent rebuild &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x44B;, &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x442; &#x434;&#x432;&#x430; scans &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B; &#x438; &#x436;&#x434;&#x451;&#x442; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x442;&#x440;&#x430;&#x43D;&#x437;&#x430;&#x43A;&#x446;&#x438;&#x439;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43C;&#x435;&#x448;&#x430;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x435;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44E; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441;&#x430;. &#x41A;&#x440;&#x43E;&#x43C;&#x435; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438;, &#x432;&#x44B; &#x43F;&#x43B;&#x430;&#x442;&#x438;&#x442;&#x435; CPU, memory &#x438; storage I/O; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; rebuild &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x443;&#x445;&#x443;&#x434;&#x448;&#x438;&#x442;&#x44C; application latency &#x434;&#x430;&#x436;&#x435; &#x431;&#x435;&#x437; lock, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x431;&#x43B;&#x43E;&#x43A;&#x438;&#x440;&#x443;&#x435;&#x442; writers.</p><p>&#x414;&#x43B;&#x44F; &#x43A;&#x440;&#x443;&#x43F;&#x43D;&#x43E;&#x439; RAG-&#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B; maintenance budget &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x436;&#x438;&#x442;&#x44C; &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x441; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x438;&#x43C; SLO. &#x414;&#x43E; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; stop condition: &#x43D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, &#x440;&#x43E;&#x441;&#x442; database queue/latency &#x432;&#x44B;&#x448;&#x435; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x435;&#x43D;&#x43D;&#x435;&#x433;&#x43E; canary threshold, replication lag &#x432;&#x44B;&#x448;&#x435; &#x432;&#x430;&#x448;&#x435;&#x433;&#x43E; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x433;&#x43E; &#x43E;&#x43A;&#x43D;&#x430; &#x438;&#x43B;&#x438; saturation storage. &#x427;&#x438;&#x441;&#x43B;&#x430; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x438;&#x437; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438; &#x2014; &#x43E;&#x43D;&#x438; &#x437;&#x430;&#x432;&#x438;&#x441;&#x44F;&#x442; &#x43E;&#x442; &#x434;&#x438;&#x441;&#x43A;&#x43E;&#x432;, &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;&#x430; HNSW &#x438; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x433;&#x43E; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;.</p><p>PostgreSQL &#x442;&#x430;&#x43A;&#x436;&#x435; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; concurrent index work: &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x435; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x438;&#x434;&#x442;&#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43E;&#x434;&#x438;&#x43D; concurrent index build. &#x414;&#x43B;&#x438;&#x43D;&#x43D;&#x44B;&#x435; &#x442;&#x440;&#x430;&#x43D;&#x437;&#x430;&#x43A;&#x446;&#x438;&#x438; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43D;&#x44B; &#x437;&#x430;&#x442;&#x44F;&#x43D;&#x443;&#x442;&#x44C; &#x444;&#x430;&#x437;&#x44B; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x438;&#x44F;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43F;&#x435;&#x440;&#x435;&#x434; &#x43E;&#x43A;&#x43D;&#x43E;&#x43C; rebuild &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x43F;&#x43E;&#x441;&#x43C;&#x43E;&#x442;&#x440;&#x435;&#x442;&#x44C; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; CPU, &#x43D;&#x43E; &#x438; transaction age.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">sql</span><span class="ks-canonical-code-block__filename">reindex-progress.sql</span></div>
<pre class="ks-canonical-code-block__pre"><code>SELECT
  pid,
  datname,
  relid::regclass AS table_name,
  index_relid::regclass AS index_name,
  command,
  phase,
  lockers_total,
  lockers_done,
  blocks_total,
  blocks_done,
  tuples_total,
  tuples_done
FROM pg_stat_progress_create_index
WHERE relid = &apos;public.rag_documents&apos;::regclass;</code></pre>
<div class="ks-canonical-code-block__caption">&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x437;&#x430; concurrent rebuild</div>
</div>
<p>&#x415;&#x441;&#x43B;&#x438; &#x432;&#x44B; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x43E;&#x446;&#x435;&#x43D;&#x438;&#x442;&#x44C; resource envelope &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435;, &#x434;&#x435;&#x43B;&#x430;&#x439;&#x442;&#x435; rebuild &#x43D;&#x430; &#x441;&#x432;&#x435;&#x436;&#x435;&#x43C; production-sized clone, &#x430; &#x43D;&#x435; &#x43D;&#x430; &#x43C;&#x430;&#x43B;&#x435;&#x43D;&#x44C;&#x43A;&#x43E;&#x439; demo-&#x431;&#x430;&#x437;&#x435;. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x435;&#x442; &#x442;&#x43E;&#x447;&#x43D;&#x443;&#x44E; &#x434;&#x43B;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x432; production, &#x437;&#x430;&#x442;&#x43E; &#x43F;&#x43E;&#x43A;&#x430;&#x436;&#x435;&#x442; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43E;&#x43A; I/O &#x438; memory pressure &#x431;&#x435;&#x437; &#x440;&#x438;&#x441;&#x43A;&#x430; &#x434;&#x43B;&#x44F; live traffic. &#x426;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x439; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x44B; &#x432; &#x44D;&#x442;&#x43E;&#x43C; &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x438; &#x2014; &#x43D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43D;&#x438;&#x435; &#xAB;pgvector &#x441;&#x442;&#x430;&#x43D;&#x435;&#x442; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x435;&#x435;&#xBB;, &#x430; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x430;&#x441; IOPS/CPU &#x438; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x437;&#x430;&#x43F;&#x43B;&#x430;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; maintenance &#x431;&#x435;&#x437; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x435;&#x433;&#x43E; noisy workload.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-05-0703c3e0.webp" class="kg-image" alt="pgvector HNSW &#x43F;&#x43E;&#x441;&#x43B;&#x435; UPDATE &#x438; DELETE: VACUUM, REINDEX &#x438; recall &#x432; RAG" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-05-0703c3e0.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-05-0703c3e0.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-05-0703c3e0.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="vacuum">VACUUM &#x43F;&#x43E;&#x441;&#x43B;&#x435; rebuild: &#x447;&#x442;&#x43E; &#x43E;&#x43D; &#x43E;&#x441;&#x432;&#x43E;&#x431;&#x43E;&#x436;&#x434;&#x430;&#x435;&#x442; &#x438; &#x447;&#x435;&#x433;&#x43E; &#x43D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442;</h2>
<p>&#x41E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x439; <code>VACUUM</code> &#x43E;&#x431;&#x440;&#x430;&#x431;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x435;&#x442; dead tuples &#x438; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; &#x43E;&#x441;&#x432;&#x43E;&#x431;&#x43E;&#x434;&#x438;&#x432;&#x448;&#x435;&#x435;&#x441;&#x44F; &#x43C;&#x435;&#x441;&#x442;&#x43E; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x43C; &#x434;&#x43B;&#x44F; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x43E;&#x433;&#x43E; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F;. &#x412; normal PostgreSQL operation &#x44D;&#x442;&#x43E; routine maintenance, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x438;&#x434;&#x442;&#x438; &#x43F;&#x430;&#x440;&#x430;&#x43B;&#x43B;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x441; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x44F;&#x43C;&#x438; &#x438; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x44F;&#x43C;&#x438;. &#x41F;&#x440;&#x438; &#x44D;&#x442;&#x43E;&#x43C; freed space &#x447;&#x430;&#x449;&#x435; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; relation &#x434;&#x43B;&#x44F; &#x431;&#x443;&#x434;&#x443;&#x449;&#x438;&#x445; tuples &#x2014; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x444;&#x430;&#x439;&#x43B; &#x43D;&#x430; &#x434;&#x438;&#x441;&#x43A;&#x435; &#x441;&#x440;&#x430;&#x437;&#x443; &#x440;&#x435;&#x437;&#x43A;&#x43E; &#x443;&#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x438;&#x442;&#x441;&#x44F;, &#x43D;&#x435;&#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;.</p><p><code>VACUUM FULL</code> &#x2014; &#x434;&#x440;&#x443;&#x433;&#x430;&#x44F; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F;: &#x43E;&#x43D;&#x430; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x443;, &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x43C;&#x435;&#x441;&#x442;&#x430; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x43E;&#x439; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x435;, &#x43D;&#x43E; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; <code>ACCESS EXCLUSIVE</code> &#x438; &#x437;&#x43D;&#x430;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x442;&#x44F;&#x436;&#x435;&#x43B;&#x435;&#x435;. &#x41D;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; FULL &#x43A;&#x430;&#x43A; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x435; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D;&#x438;&#x435; HNSW runbook &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443;, &#x447;&#x442;&#x43E; <code>pg_relation_size</code> &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x438;&#x43C;.</p><p>&#x412; PostgreSQL 18 &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440; <code>INDEX_CLEANUP</code> &#x443; VACUUM &#x43F;&#x43E; &#x443;&#x43C;&#x43E;&#x43B;&#x447;&#x430;&#x43D;&#x438;&#x44E; <code>AUTO</code>: &#x434;&#x432;&#x438;&#x436;&#x43E;&#x43A; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x44C; index vacuuming, &#x435;&#x441;&#x43B;&#x438; dead tuples &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x43C;&#x430;&#x43B;&#x43E; &#x438; &#x441;&#x442;&#x43E;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x431;&#x445;&#x43E;&#x434;&#x430; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441;&#x43E;&#x432; &#x432;&#x44B;&#x448;&#x435; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x44B;. &#x42D;&#x442;&#x43E; &#x435;&#x449;&#x451; &#x43E;&#x434;&#x43D;&#x430; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x430; &#x43D;&#x435; &#x441;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x443; &#x43A; &#x43E;&#x434;&#x43D;&#x43E;&#x43C;&#x443; percentage threshold.</p><p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; evidence bundle: dead tuples, &#x434;&#x43B;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x435;&#x433;&#x43E; vacuum, plan &#x438; application canary. &#x415;&#x441;&#x43B;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; storage counter, &#x430; retrieval SLO/recall &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x438;&#x441;&#x44C; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x43C;&#x438;, &#x43D;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x44D;&#x442;&#x43E; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E;&#x43C; maintenance mechanism &#x2014; &#x43D;&#x435; &#xAB;&#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x435;&#x43C; RAG&#xBB;.</p><h2 id="recall-gate">Recall gate: approximate HNSW &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x441; exact search &#x43D;&#x430; &#x442;&#x43E;&#x43C; &#x436;&#x435; snapshot</h2>
<p>pgvector &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x439; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431; &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x44C; recall: &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x44B; approximate search &#x441; exact search, &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x44F; index scan. &#x414;&#x43B;&#x44F; production-&#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43C;&#x430;&#x43B;&#x43E; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x43E;&#x434;&#x438;&#x43D; &#x440;&#x430;&#x437; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x44B;&#x43C; vector. &#x41D;&#x443;&#x436;&#x435;&#x43D; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;, &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x435; filters, &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; top-k &#x438; &#x43F;&#x43E; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43E;&#x434;&#x438;&#x43D; database snapshot, &#x447;&#x442;&#x43E;&#x431;&#x44B; concurrent writes &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x438;&#x439;.</p><p>Exact control &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x43D;&#x430; &#x443;&#x437;&#x43A;&#x438;&#x439; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;: &#x43D;&#x430;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; approximate index path &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442; &#x431;&#x43B;&#x438;&#x436;&#x430;&#x439;&#x448;&#x438;&#x445; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x435;&#x439;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x43B; &#x431;&#x44B; exact search. &#x41E;&#x43D; <strong>&#x43D;&#x435;</strong> &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x43A;&#x430;&#x447;&#x435;&#x441;&#x442;&#x432;&#x43E; RAG &#x446;&#x435;&#x43B;&#x438;&#x43A;&#x43E;&#x43C;: &#x435;&#x441;&#x43B;&#x438; embedding-&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x43F;&#x43B;&#x43E;&#x445;&#x43E; &#x43A;&#x43E;&#x434;&#x438;&#x440;&#x443;&#x435;&#x442; &#x43F;&#x440;&#x435;&#x434;&#x43C;&#x435;&#x442;&#x43D;&#x443;&#x44E; &#x43E;&#x431;&#x43B;&#x430;&#x441;&#x442;&#x44C;, exact top-k &#x442;&#x43E;&#x436;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x441;&#x435;&#x43C;&#x430;&#x43D;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43F;&#x43B;&#x43E;&#x445;&#x438;&#x43C;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; index recall &#x438; answer quality &#x434;&#x435;&#x440;&#x436;&#x438;&#x442;&#x435; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">sql</span><span class="ks-canonical-code-block__filename">recall-canary.sql</span></div>
<pre class="ks-canonical-code-block__pre"><code>BEGIN ISOLATION LEVEL REPEATABLE READ READ ONLY;

-- 1) approximate HNSW path
SELECT id
FROM public.rag_documents
WHERE tenant_id = :tenant_id
ORDER BY embedding <=> :query_embedding
LIMIT 20;

-- 2) exact control, &#x43A;&#x430;&#x43A; &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x435;&#x442; pgvector &#x434;&#x43B;&#x44F; recall monitoring
SET LOCAL enable_indexscan = off;

SELECT id
FROM public.rag_documents
WHERE tenant_id = :tenant_id
ORDER BY embedding <=> :query_embedding
LIMIT 20;

ROLLBACK;</=></=></code></pre>
<div class="ks-canonical-code-block__caption">Approximate &#x438; exact control &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; snapshot</div>
</div>
<p>&#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; IDs &#x432; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x43E;&#x43C; harness: top-k overlap, &#x43F;&#x43E;&#x43F;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x435; &#x432; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x447;&#x435;&#x43D;&#x43D;&#x44B;&#x439; relevant set &#x438; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43D;&#x430; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x438;&#x445; &#x43A;&#x430;&#x442;&#x435;&#x433;&#x43E;&#x440;&#x438;&#x44F;&#x445; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;. &#x415;&#x441;&#x43B;&#x438; exact &#x438; approximate &#x440;&#x430;&#x441;&#x445;&#x43E;&#x434;&#x44F;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x440;&#x438; &#x444;&#x438;&#x43B;&#x44C;&#x442;&#x440;&#x435;, &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x435; &#x43A; query-budget &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x435;. &#x415;&#x441;&#x43B;&#x438; &#x440;&#x430;&#x441;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x442; &#x441; churn &#x438; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; controlled maintenance, &#x44D;&#x442;&#x43E; &#x443;&#x436;&#x435; &#x433;&#x43E;&#x440;&#x430;&#x437;&#x434;&#x43E; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435; &#x43A;&#x430;&#x43A; attribution.</p><h2 id="iterative-scans">Iterative scans &#x43B;&#x435;&#x447;&#x430;&#x442; filter starvation, &#x430; &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442; maintenance</h2>
<p>&#x423; HNSW &#x435;&#x441;&#x442;&#x44C; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x438;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A; &#xAB;&#x43F;&#x440;&#x43E;&#x43F;&#x430;&#x432;&#x448;&#x438;&#x445;&#xBB; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x43E;&#x432;. &#x412; approximate search pgvector &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x439; <code>WHERE</code>-filter &#x43F;&#x43E;&#x441;&#x43B;&#x435; index scan. &#x415;&#x441;&#x43B;&#x438; &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x438;&#x435; &#x43F;&#x440;&#x43E;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442; &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x443;&#x44E; &#x434;&#x43E;&#x43B;&#x44E; rows, &#x438;&#x437; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; candidate set &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x441;&#x442;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435; &#x441;&#x442;&#x440;&#x43E;&#x43A;, &#x447;&#x435;&#x43C; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x448;&#x435;&#x43D;&#x43E; &#x447;&#x435;&#x440;&#x435;&#x437; <code>LIMIT</code>. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x432;&#x440;&#x435;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441;&#x430;.</p><p>&#x41D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x44F; &#x441; pgvector 0.8.0 &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B; iterative index scans. &#x420;&#x435;&#x436;&#x438;&#x43C; <code>strict_order</code> &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x430;&#x435;&#x442; &#x43E;&#x431;&#x445;&#x43E;&#x434;, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x44F; &#x441;&#x442;&#x440;&#x43E;&#x433;&#x438;&#x439; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43E;&#x43A; distance; <code>relaxed_order</code> &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x434;&#x430;&#x442;&#x44C; &#x43B;&#x443;&#x447;&#x448;&#x443;&#x44E; recall &#x446;&#x435;&#x43D;&#x43E;&#x439; &#x441;&#x43B;&#x435;&#x433;&#x43A;&#x430; relaxed ordering. &#x41E;&#x431;&#x445;&#x43E;&#x434; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x432; &#x447;&#x430;&#x441;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x438;, <code>hnsw.max_scan_tuples</code>; default &#x432; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x43C; source &#x2014; 20 000, &#x430; <code>hnsw.scan_mem_multiplier</code> &#x2014; 1. &#x42D;&#x442;&#x438; default &#x43D;&#x435; &#x43D;&#x430;&#x434;&#x43E; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x443;&#x432;&#x435;&#x43B;&#x438;&#x447;&#x438;&#x432;&#x430;&#x442;&#x44C;: &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x438;&#x439; search budget &#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x430;&#x435;&#x442; recall &#x434;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x43E;&#x439;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">sql</span><span class="ks-canonical-code-block__filename">iterative-scan-canary.sql</span></div>
<pre class="ks-canonical-code-block__pre"><code>BEGIN;

SHOW hnsw.ef_search;
SHOW hnsw.max_scan_tuples;
SHOW hnsw.scan_mem_multiplier;

SET LOCAL hnsw.iterative_scan = strict_order;

SELECT id
FROM public.rag_documents
WHERE tenant_id = :tenant_id
ORDER BY embedding <=> :query_embedding
LIMIT 20;

ROLLBACK;</=></code></pre>
<div class="ks-canonical-code-block__caption">Scoped canary &#x431;&#x435;&#x437; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x433;&#x43B;&#x43E;&#x431;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; defaults</div>
</div>
<div class="ks-widget" id="ks-tab-diag5"><h3>&#x427;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;?</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="filter">Filter budget</button><button type="button" class="tab-btn" data-t="maint">Maintenance</button><button type="button" class="tab-btn" data-t="embed">Embedding lifecycle</button></div><div class="panel on" data-p="filter">&#x415;&#x441;&#x43B;&#x438; iterative scan/ef_search &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x439; top-k &#x43D;&#x430; &#x442;&#x435;&#x445; &#x436;&#x435; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x43F;&#x442;&#x438;&#x43C;&#x438;&#x437;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; query path &#x438; filters.</div><div class="panel" data-p="maint">&#x415;&#x441;&#x43B;&#x438; symptom &#x441;&#x432;&#x44F;&#x437;&#x430;&#x43D; &#x441; churn, dead tuples &#x438; &#x442;&#x44F;&#x436;&#x451;&#x43B;&#x44B;&#x43C; HNSW vacuum, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; controlled REINDEX &#x2192; VACUUM.</div><div class="panel" data-p="embed">&#x415;&#x441;&#x43B;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, dimension, normalization &#x438;&#x43B;&#x438; chunking, &#x441;&#x442;&#x430;&#x440;&#x44B;&#x439; index maintenance &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; re-embed.</div><script>(function(){var r=document.getElementById('ks-tab-diag5');if(!r)return;var b=[].slice.call(r.querySelectorAll('[data-t]')),p=[].slice.call(r.querySelectorAll('[data-p]'));function s(k){b.forEach(function(x){x.classList.toggle('on',x.getAttribute('data-t')===k)});p.forEach(function(x){x.classList.toggle('on',x.getAttribute('data-p')===k)});}b.forEach(function(x){x.onclick=function(){s(x.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-06-08a0563e.webp" class="kg-image" alt="pgvector HNSW &#x43F;&#x43E;&#x441;&#x43B;&#x435; UPDATE &#x438; DELETE: VACUUM, REINDEX &#x438; recall &#x432; RAG" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-06-08a0563e.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-06-08a0563e.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-06-08a0563e.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="autovacuum">Autovacuum: &#x43D;&#x430;&#x441;&#x442;&#x440;&#x430;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; trigger &#x43F;&#x43E;&#x434; churn, &#x43D;&#x43E; &#x43D;&#x435; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x432; &#x43C;&#x430;&#x433;&#x438;&#x44E;</h2>
<p>Routine vacuum &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x43C;. PostgreSQL &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442; autovacuum, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x447;&#x438;&#x441;&#x43B;&#x43E; obsolete tuples &#x43F;&#x440;&#x435;&#x432;&#x44B;&#x448;&#x430;&#x435;&#x442; threshold, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; &#x431;&#x430;&#x437;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F;, scale factor &#x438; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;&#x430; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B;. &#x414;&#x43B;&#x44F; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; RAG table &#x434;&#x430;&#x436;&#x435; &#x441;&#x442;&#x430;&#x43D;&#x434;&#x430;&#x440;&#x442;&#x43D;&#x44B;&#x439; scale factor &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x442;&#x44C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; &#x430;&#x431;&#x441;&#x43E;&#x43B;&#x44E;&#x442;&#x43D;&#x44B;&#x439; &#x43E;&#x431;&#x44A;&#x451;&#x43C; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x439; &#x434;&#x43E; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x435;&#x433;&#x43E; vacuum; &#x434;&#x43B;&#x44F; &#x43C;&#x430;&#x43B;&#x435;&#x43D;&#x44C;&#x43A;&#x43E;&#x439; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B; &#x441;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x430;&#x433;&#x440;&#x435;&#x441;&#x441;&#x438;&#x432;&#x43D;&#x44B;&#x439; trigger &#x441;&#x43E;&#x437;&#x434;&#x430;&#x441;&#x442; &#x43B;&#x438;&#x448;&#x43D;&#x44E;&#x44E; &#x444;&#x43E;&#x43D;&#x43E;&#x432;&#x443;&#x44E; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x443;.</p><p>&#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; churn &#x438; table-specific settings. &#x41D;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x438;&#x437; &#x447;&#x443;&#x436;&#x43E;&#x433;&#x43E; runbook <code>autovacuum_vacuum_scale_factor=0.01</code> &#x438;&#x43B;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x435; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x43E;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x43E; &#x431;&#x435;&#x437; &#x431;&#x44E;&#x434;&#x436;&#x435;&#x442;&#x430;: &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x430; vacuum &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x43E;&#x432;&#x430;&#x442;&#x44C; write rate, storage bandwidth &#x438; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x43C;&#x443; background load.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">sql</span><span class="ks-canonical-code-block__filename">autovacuum-evidence.sql</span></div>
<pre class="ks-canonical-code-block__pre"><code>SHOW autovacuum;
SHOW autovacuum_vacuum_threshold;
SHOW autovacuum_vacuum_scale_factor;

SELECT
  n_live_tup,
  n_dead_tup,
  last_autovacuum,
  autovacuum_count
FROM pg_stat_user_tables
WHERE relid = &apos;public.rag_documents&apos;::regclass;

SELECT reloptions
FROM pg_class
WHERE oid = &apos;public.rag_documents&apos;::regclass;</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; global &#x438; table-specific autovacuum policy</div>
</div>
<p>&#x415;&#x441;&#x43B;&#x438; autovacuum &#x44F;&#x432;&#x43D;&#x43E; &#x43D;&#x435; &#x443;&#x441;&#x43F;&#x435;&#x432;&#x430;&#x435;&#x442; &#x437;&#x430; predictable churn, &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x43E;&#x434;&#x43D;&#x443; table-level policy &#x437;&#x430; &#x440;&#x430;&#x437; &#x438; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x446;&#x438;&#x43A;&#x43B;&#x43E;&#x432;. &#x41D;&#x43E; &#x43D;&#x435; &#x43F;&#x443;&#x442;&#x430;&#x439;&#x442;&#x435; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x447;&#x430;&#x441;&#x442;&#x44B;&#x439; routine VACUUM &#x441; pgvector-specific &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x430;&#x446;&#x438;&#x435;&#x439; reindex-before-vacuum &#x434;&#x43B;&#x44F; &#x442;&#x44F;&#x436;&#x451;&#x43B;&#x43E;&#x433;&#x43E; HNSW: &#x44D;&#x442;&#x43E; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x443;&#x440;&#x43E;&#x432;&#x43D;&#x438; maintenance.</p><h2 id="rollout">Rollout: canary, stop condition &#x438; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x431;&#x435;&#x437; &#x43B;&#x435;&#x433;&#x435;&#x43D;&#x434;&#x44B; &#x43F;&#x440;&#x43E; &#xAB;&#x43D;&#x443;&#x43B;&#x435;&#x432;&#x43E;&#x439; &#x440;&#x438;&#x441;&#x43A;&#xBB;</h2>
<p>&#x41D;&#x430; production &#x43D;&#x435; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x441; &#x441;&#x430;&#x43C;&#x43E;&#x433;&#x43E; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x433;&#x43E; HNSW. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x434;&#x443;&#x440;&#x443; &#x43D;&#x430; production-sized clone &#x438;&#x43B;&#x438; &#x43D;&#x430; &#x43C;&#x435;&#x43D;&#x435;&#x435; &#x43A;&#x440;&#x438;&#x442;&#x438;&#x447;&#x43D;&#x43E;&#x439; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x435; &#x441; &#x442;&#x43E;&#x439; &#x436;&#x435; &#x441;&#x445;&#x435;&#x43C;&#x43E;&#x439;. &#x41D;&#x430; live primary &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; <code>REINDEX CONCURRENTLY</code> &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43D;&#x443;&#x436;&#x435;&#x43D; write availability &#x438; &#x443; &#x432;&#x430;&#x441; &#x435;&#x441;&#x442;&#x44C; &#x437;&#x430;&#x43F;&#x430;&#x441; &#x440;&#x435;&#x441;&#x443;&#x440;&#x441;&#x43E;&#x432;; &#x435;&#x441;&#x43B;&#x438; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; &#x432; maintenance window, &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x439; REINDEX &#x434;&#x435;&#x448;&#x435;&#x432;&#x43B;&#x435; &#x43F;&#x43E; &#x43E;&#x431;&#x449;&#x435;&#x439; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x435;.</p><p>&#x423; rollout &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x431;&#x44B;&#x442;&#x44C; &#x442;&#x440;&#x438; gate. <strong>Infrastructure gate:</strong> rebuild &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D;, index valid, VACUUM &#x43D;&#x435; &#x437;&#x430;&#x432;&#x438;&#x441;, storage &#x438; replication &#x432;&#x435;&#x440;&#x43D;&#x443;&#x43B;&#x438;&#x441;&#x44C; &#x43A; baseline. <strong>Retrieval gate:</strong> canary approximate-vs-exact &#x43D;&#x435; &#x443;&#x445;&#x443;&#x434;&#x448;&#x438;&#x43B;&#x441;&#x44F; &#x438; production filters &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x44E;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; top-k. <strong>Application gate:</strong> RAG endpoint &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x432; &#x432;&#x430;&#x448;&#x435;&#x43C; SLO &#x438; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442; bottleneck, &#x43D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, &#x441; database I/O &#x43D;&#x430; CPU &#x438;&#x43B;&#x438; embedding service.</p><p>Rollback &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43D;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; REINDEX &#x432;&#x44B; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D;&#x44B; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x431;&#x430;&#x437;&#x443; &#x438;&#x437; backup. REINDEX &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x440;&#x430;&#x438;&#x432;&#x430;&#x435;&#x442; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441; &#x438;&#x437; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B;; &#x435;&#x441;&#x43B;&#x438; data layer &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x43B;&#x441;&#x44F;, &#x43F;&#x440;&#x438; &#x43D;&#x435;&#x443;&#x434;&#x430;&#x447;&#x43D;&#x43E;&#x43C; application canary &#x447;&#x430;&#x449;&#x435; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; &#x434;&#x430;&#x43B;&#x44C;&#x43D;&#x435;&#x439;&#x448;&#x438;&#x439; rollout, &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; query settings &#x438; &#x440;&#x430;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x44C; planner/filter path. &#x410; <a href="https://kingservers.com/blog/postgresql-pitr-vosstanovlenie-tochka-vremeni/">PITR</a> &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x44B;&#x43C; data-protection control &#x43D;&#x430; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x447;&#x43D;&#x44B;&#x445; data changes, &#x430; &#x43D;&#x435; &#x448;&#x442;&#x430;&#x442;&#x43D;&#x43E;&#x439; &#x43A;&#x43D;&#x43E;&#x43F;&#x43A;&#x43E;&#x439; &#x43E;&#x442;&#x43C;&#x435;&#x43D;&#x44B; index maintenance.</p>
<div class="ks-widget" id="ks-chk-roll9"><h3>Maintenance &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D;&#x43D;&#x44B;&#x43C;?</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> REINDEX/VACUUM &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x44B; &#x431;&#x435;&#x437; unresolved operation</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> Resource counters &#x432;&#x435;&#x440;&#x43D;&#x443;&#x43B;&#x438;&#x441;&#x44C; &#x43A; baseline</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> Approximate-vs-exact recall &#x43D;&#x435; &#x443;&#x445;&#x443;&#x434;&#x448;&#x438;&#x43B;&#x441;&#x44F;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> Filtered top-k &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> RAG application SLO &#x43F;&#x440;&#x43E;&#x448;&#x451;&#x43B; canary</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> &#x415;&#x441;&#x442;&#x44C; owner &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x435;&#x433;&#x43E; maintenance window &#x438; stop condition</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-roll9');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n===c.length?' — rollout gate PASS':' — rollout ещё не доказан');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-07-4c3b11a3.webp" class="kg-image" alt="pgvector HNSW &#x43F;&#x43E;&#x441;&#x43B;&#x435; UPDATE &#x438; DELETE: VACUUM, REINDEX &#x438; recall &#x432; RAG" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-07-4c3b11a3.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-07-4c3b11a3.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pgvector-hnsw-vacuum-reindex-rag-inline-07-4c3b11a3.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="conclusion">Decision tree: &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43D;&#x438;&#x447;&#x435;&#x433;&#x43E; &#x43D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C;, &#x43A;&#x43E;&#x433;&#x434;&#x430; tuning, &#x430; &#x43A;&#x43E;&#x433;&#x434;&#x430; REINDEX + VACUUM</h2>
<p>&#x413;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x439; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x2014; HNSW maintenance &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x435; &#x441; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B;, &#x430; &#x441; &#x43A;&#x43B;&#x430;&#x441;&#x441;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x438; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B;. &#x415;&#x441;&#x43B;&#x438; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x430; &#x43F;&#x43E;&#x447;&#x442;&#x438; append-only, autovacuum &#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F;, &#x430; canary recall &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x435;&#x43D;, &#x43F;&#x435;&#x440;&#x438;&#x43E;&#x434;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; REINDEX &#xAB;&#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x438;&#xBB; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x441;&#x442; &#x43D;&#x435;&#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x439; I/O. &#x415;&#x441;&#x43B;&#x438; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x43E;&#x432; &#x432;&#x43E;&#x437;&#x43D;&#x438;&#x43A;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x438; selective filters, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; <code>ef_search</code>, iterative scans &#x438; filter indexes. &#x415;&#x441;&#x43B;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x430;&#x441;&#x44C; embedding-&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x446;&#x435;&#x43D;&#x43D;&#x44B;&#x439; re-embed/migration lifecycle. &#x418; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43A;&#x43E;&#x433;&#x434;&#x430; churn, dead tuples, HNSW maintenance symptom &#x438; canary &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x44E;&#x442; &#x432; &#x43E;&#x434;&#x43D;&#x443; &#x441;&#x442;&#x43E;&#x440;&#x43E;&#x43D;&#x443;, &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; pgvector-specific &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; <code>REINDEX INDEX CONCURRENTLY</code> &#x2192; <code>VACUUM</code>.</p><p>&#x414;&#x43B;&#x44F; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x44B; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x442;&#x43E;&#x436;&#x435; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x435;. Dedicated database node &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43D;&#x435; &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443;, &#x447;&#x442;&#x43E; &#x441;&#x430;&#x43C; &#x43F;&#x43E; &#x441;&#x435;&#x431;&#x435; &#x43F;&#x43E;&#x432;&#x44B;&#x448;&#x430;&#x435;&#x442; recall, &#x430; &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x434;&#x430;&#x451;&#x442; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x44B;&#x439; storage/CPU envelope, &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x44B;&#x439; maintenance window &#x438; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x438; &#x43E;&#x434;&#x438;&#x43D; hardware profile. &#x415;&#x441;&#x43B;&#x438; &#x443; &#x432;&#x430;&#x441; embeddings &#x437;&#x430;&#x43D;&#x438;&#x43C;&#x430;&#x44E;&#x442; &#x437;&#x43D;&#x430;&#x447;&#x438;&#x43C;&#x443;&#x44E; &#x434;&#x43E;&#x43B;&#x44E; PostgreSQL &#x438; &#x432;&#x44B; &#x435;&#x449;&#x451; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442;&#x435; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x44B;, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x441;&#x432;&#x435;&#x440;&#x438;&#x442;&#x435;&#x441;&#x44C; &#x441;&#x43E; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x435;&#x43D;&#x438;&#x435;&#x43C; <a href="https://kingservers.com/blog/vector-db-ili-postgresql-dlya-embeddingov/">&#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; vector DB &#x438; PostgreSQL</a>. &#x410; &#x435;&#x441;&#x43B;&#x438; retrieval cost &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442; &#x434;&#x43E;&#x43C;&#x438;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;, &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; <a href="https://kingservers.com/blog/semantic-cache-dlya-llm-snizhenie-zatrat-na-zaprosy/">semantic cache</a> &#x2014; &#x44D;&#x442;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x441;&#x43B;&#x43E;&#x439; &#x438; &#x43E;&#x43D; &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43C;&#x430;&#x441;&#x43A;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x431;&#x43E;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; database maintenance.</p><p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x448;&#x430;&#x433;: &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; baseline SQL bundle &#x438; 20&#x2013;50 canary queries, &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x438;&#x442;&#x435; &#x438;&#x445; &#x434;&#x43E; &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x435;&#x433;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; churn-window &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x440;&#x435;&#x448;&#x430;&#x439;&#x442;&#x435;, &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43B;&#x438; recurring maintenance policy. &#x422;&#x430;&#x43A; &#x443; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x430;&#x44F; &#x441;&#x432;&#x44F;&#x437;&#x44C; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x431;&#x430;&#x437;&#x44B;, &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;&#x43C; HNSW &#x438; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x438;&#x43C; retrieval, &#x430; &#x43D;&#x435; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x43F;&#x435;&#x440;&#x438;&#x43E;&#x434;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x445; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434; &#xAB;&#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x442;&#x430;&#x43A; &#x43F;&#x440;&#x438;&#x43D;&#x44F;&#x442;&#x43E;&#xBB;.</p>
<div class="ks-widget" id="ks-sel-final3"><h3>&#x427;&#x442;&#x43E; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x432; maintenance policy?</h3><label>&#x412;&#x430;&#x448; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x439; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;</label><select data-s><option value="stable">&#x421;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;&#x430; &#x43D;&#x435;&#x442;, churn &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439;</option><option value="filter">Filtered top-k &#x438;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x43D;&#x435;&#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439;</option><option value="churn">Churn &#x432;&#x44B;&#x441;&#x43E;&#x43A;&#x438;&#x439;, dead tuples &#x438; maintenance &#x440;&#x430;&#x441;&#x442;&#x443;&#x442;</option><option value="model">&#x421;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438; embedding model/chunking</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-final3');if(!r)return;var m={stable:'Routine autovacuum + monitoring. Не добавляйте periodic REINDEX без evidence.',filter:'Query canary: ef_search / iterative_scan / filter indexes. REINDEX пока не доказан.',churn:'Baseline → resource budget → REINDEX CONCURRENTLY → VACUUM → exact-vs-approx recall gate.',model:'Re-embed и migration plan. Maintenance старого HNSW не обновит semantic space.'};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[GPUDirect RDMA через DMA-BUF: переход с nvidia-peermem для multi-node LLM]]></title><description><![CDATA[Практический runbook по GPUDirect RDMA: переход с legacy nvidia-peermem на DMA-BUF, open kernel, GPU↔NIC transfer, NCCL canary, application gate и rollback.]]></description><link>https://kingservers.com/blog/gpudirect-rdma-dmabuf-nvidia-peermem-llm/</link><guid isPermaLink="false">6a97508daff2afac25354c65</guid><category><![CDATA[GPU]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Tue, 01 Sep 2026 22:38:43 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-hero-15959c59.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#symptom-boundary">&#x421;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C; &#x438; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438;</a></li>
<li><a href="#two-paths">DMA-BUF &#x438; nvidia-peermem</a></li>
<li><a href="#inventory">Identity &#x438; baseline</a></li>
<li><a href="#prerequisites">Gate 1: prerequisites</a></li>
<li><a href="#rdma-test">Gate 2: GPU-memory RDMA</a></li>
<li><a href="#nccl-gate">Gate 3: NCCL</a></li>
<li><a href="#application-gate">Gate 4: LLM application</a></li>
<li><a href="#migration">Canary migration</a></li>
<li><a href="#failure-modes">Failure modes</a></li>
<li><a href="#rollback-monitoring">Rollback &#x438; monitoring</a></li>
<li><a href="#ownership">Dedicated ownership</a></li>
<li><a href="#sources">&#x418;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A;&#x438;</a></li>
<li><a href="#conclusion">&#x412;&#x44B;&#x432;&#x43E;&#x434;</a></li>
</ul></div>

</div>Multi-node LLM job &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442;, RDMA-fabric &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x44B;&#x43C;, &#x43D;&#x43E; CPU memory traffic &#x43D;&#x435;&#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x43D;&#x43E; &#x440;&#x430;&#x441;&#x442;&#x451;&#x442;, &#x430; &#x43C;&#x435;&#x436;&#x443;&#x437;&#x43B;&#x43E;&#x432;&#x43E;&#x439; &#x43E;&#x431;&#x43C;&#x435;&#x43D; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x44F;&#x43C;&#x43E;&#x439; GPU&#x2194;NIC data path. &#x427;&#x430;&#x441;&#x442;&#x430;&#x44F; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x430; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x432; fabric, &#x430; &#x43D;&#x438;&#x436;&#x435;: &#x43E;&#x434;&#x438;&#x43D; &#x443;&#x437;&#x435;&#x43B; &#x432;&#x441;&#x451; &#x435;&#x449;&#x451; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; legacy nvidia-peermem, &#x43D;&#x430; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C; DMA-BUF &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D;, &#x430; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x442;&#x438;&#x445;&#x43E; &#x436;&#x438;&#x432;&#x451;&#x442; &#x441; &#x434;&#x440;&#x443;&#x433;&#x438;&#x43C; registration path. &#x412; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; NVIDIA DMA-BUF &#x2014; &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x435;&#x43C;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x434;&#x43B;&#x44F; GPUDirect RDMA, &#x43D;&#x43E; &#xAB;&#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x44C; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#xBB; &#x438; &#xAB;GPU memory &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x443;&#x447;&#x430;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x432; RDMA&#xBB; &#x2014; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x430;. &#x41D;&#x438;&#x436;&#x435; &#x2014; production-runbook &#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x438; &#x441; canary, &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430;&#x43C;&#x438; &#x438; rollback &#x431;&#x435;&#x437; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43D;&#x438;&#x439; &#x43C;&#x430;&#x433;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x433;&#x43E; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x44F;.<div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <img src="https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-hero-15959c59.webp" alt="GPUDirect RDMA &#x447;&#x435;&#x440;&#x435;&#x437; DMA-BUF: &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434; &#x441; nvidia-peermem &#x434;&#x43B;&#x44F; multi-node LLM"><p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="symptom-boundary">&#x421;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;: RDMA &#x435;&#x441;&#x442;&#x44C;, &#x430; &#x43F;&#x440;&#x44F;&#x43C;&#x43E;&#x439; GPU&#x2194;NIC &#x43F;&#x443;&#x442;&#x44C; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;</h2>
<p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x43D;&#x435; &#x441; &#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x435;&#x439;, &#x430; &#x441; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x433;&#x43E; &#x440;&#x430;&#x441;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F;. &#x41D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, &#x434;&#x432;&#x430; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x445; GPU-&#x443;&#x437;&#x43B;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x44E;&#x442; &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x44E;&#x442; &#x43E;&#x434;&#x438;&#x43D; fabric, &#x43D;&#x43E; &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x440;&#x430;&#x441;&#x442;&#x451;&#x442; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430; CPU &#x438; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x445;&#x43E;&#x441;&#x442;&#x430; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x43E;&#x439; &#x447;&#x430;&#x441;&#x442;&#x44C;&#x44E; data path, &#x430; &#x43D;&#x430; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C; &#x43E;&#x431;&#x43C;&#x435;&#x43D; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x431;&#x43B;&#x438;&#x436;&#x435; &#x43A; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x43C;&#x443; GPU-centric &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44E;. &#x42D;&#x442;&#x43E; &#x43F;&#x43E;&#x432;&#x43E;&#x434; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; registration path. &#x421;&#x430;&#x43C; &#x43F;&#x43E; &#x441;&#x435;&#x431;&#x435; &#x43D;&#x438;&#x437;&#x43A;&#x438;&#x439; throughput &#x43D;&#x438;&#x447;&#x435;&#x433;&#x43E; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;: &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x432; MTU, routing, PFC/ECN, PCIe topology, NUMA, CPU pinning &#x438;&#x43B;&#x438; &#x432;&#x43E;&#x43E;&#x431;&#x449;&#x435; &#x432; TCP fallback.</p><p>Disqualifier &#x432;&#x430;&#x436;&#x435;&#x43D; &#x441;&#x440;&#x430;&#x437;&#x443;. &#x415;&#x441;&#x43B;&#x438; <code>rdma link</code> &#x443;&#x436;&#x435; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443;, NIC &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442;&#x441;&#x44F;, <code>ib_write_bw</code> &#x43D;&#x430; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x439; host memory &#x43D;&#x435;&#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x435;&#x43D; &#x438;&#x43B;&#x438; &#x434;&#x432;&#x430; &#x443;&#x437;&#x43B;&#x430; &#x43D;&#x435; &#x432;&#x438;&#x434;&#x44F;&#x442; &#x434;&#x440;&#x443;&#x433; &#x434;&#x440;&#x443;&#x433;&#x430; &#x43F;&#x43E; RDMA, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x447;&#x438;&#x43D;&#x438;&#x442;&#x435; &#x441;&#x435;&#x442;&#x44C;. DMA-BUF &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; fabric. &#x422;&#x43E;&#x447;&#x43D;&#x43E; &#x442;&#x430;&#x43A; &#x436;&#x435; &#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x44F; registration path &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43E;&#x43C; &#xAB;&#x432;&#x44B;&#x43B;&#x435;&#x447;&#x438;&#x442;&#x44C;&#xBB; &#x43F;&#x43B;&#x43E;&#x445;&#x43E;&#x439; PCIe: &#x434;&#x43B;&#x44F; &#x43D;&#x438;&#x437;&#x43A;&#x43E;&#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435;&#x432;&#x44B;&#x445; P2P-&#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; <a href="https://kingservers.com/blog/pcie-acs-p2p-dma-multi-gpu-llm/">runbook &#x43F;&#x43E; PCIe ACS &#x438; P2P DMA</a>.</p><p>&#x426;&#x435;&#x43B;&#x44C; &#x44D;&#x442;&#x43E;&#x439; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438; &#x443;&#x436;&#x435;: &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;, &#x43A;&#x430;&#x43A;&#x43E;&#x439; kernel path &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x443;&#x435;&#x442; GPU memory &#x434;&#x43B;&#x44F; RDMA, &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x44C; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x447;&#x443; &#x438;&#x437; GPU memory, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; NCCL &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x435;&#x442;&#x44C; &#x43D;&#x430; LLM SLO. &#x415;&#x441;&#x43B;&#x438; application metric &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F;, &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x438;&#x437;&#x43A;&#x43E;&#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435;&#x432;&#x43E;&#x433;&#x43E; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E;&#x43C; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x430;, &#x430; &#x43D;&#x435; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441;-&#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#x430;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-01-5beef8ca.webp" class="kg-image" alt="GPUDirect RDMA &#x447;&#x435;&#x440;&#x435;&#x437; DMA-BUF: &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434; &#x441; nvidia-peermem &#x434;&#x43B;&#x44F; multi-node LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-01-5beef8ca.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-01-5beef8ca.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-01-5beef8ca.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="two-paths">DMA-BUF &#x438; nvidia-peermem: &#x447;&#x442;&#x43E; &#x43D;&#x430; &#x441;&#x430;&#x43C;&#x43E;&#x43C; &#x434;&#x435;&#x43B;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F;</h2>
<p>GPUDirect RDMA &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; peer-&#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x443; &#x2014; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; RDMA NIC &#x2014; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C; &#x441; GPU memory &#x431;&#x435;&#x437; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x43C;&#x435;&#x436;&#x443;&#x442;&#x43E;&#x447;&#x43D;&#x43E;&#x439; &#x43A;&#x43E;&#x43F;&#x438;&#x438; &#x447;&#x435;&#x440;&#x435;&#x437; host memory. &#x412; Linux &#x434;&#x43B;&#x44F; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438; &#x438; &#x43E;&#x431;&#x43C;&#x435;&#x43D;&#x430; memory handles. &#x412; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; &#x441;&#x442;&#x435;&#x43A;&#x435; NVIDIA &#x442;&#x430;&#x43A;&#x438;&#x43C; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x43E;&#x43C; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x441;&#x442;&#x430;&#x43D;&#x434;&#x430;&#x440;&#x442;&#x43D;&#x44B;&#x439; DMA-BUF; legacy-&#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x44C; <code>nvidia-peermem</code> &#x438; peer-memory API.</p><p>&#x412; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; NVIDIA GPU Operator 26.3 DMA-BUF &#x43E;&#x431;&#x43E;&#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D; &#x43A;&#x430;&#x43A; &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x435;&#x43C;&#x44B;&#x439; &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442;. &#x414;&#x43B;&#x44F; &#x43D;&#x435;&#x433;&#x43E; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442;&#x441;&#x44F; Open GPU Kernel Module, &#x430; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x430; RDMA &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x43F;&#x438;&#x440;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; inbox-&#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x44B; Linux. Legacy <code>nvidia-peermem</code> &#x43F;&#x43E;-&#x43F;&#x440;&#x435;&#x436;&#x43D;&#x435;&#x43C;&#x443; &#x43E;&#x43F;&#x438;&#x441;&#x430;&#x43D; &#x43A;&#x430;&#x43A; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x438; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x435;&#x433;&#x43E; OFED/DOCA-OFED &#x441;&#x442;&#x435;&#x43A;&#x430;. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x438;&#x439; peermem-&#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x441;&#x440;&#x43E;&#x447;&#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C;: production-&#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x43E;&#x43F;&#x440;&#x430;&#x432;&#x434;&#x430;&#x43D;&#x430;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x432;&#x44B; &#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x438; baseline &#x438; &#x43E;&#x442;&#x43A;&#x430;&#x442;&#x438;&#x442;&#x44C; canary &#x431;&#x435;&#x437; &#x441;&#x43C;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;.</p><p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x440;&#x430;&#x437;&#x43D;&#x438;&#x446;&#x430; &#x434;&#x43B;&#x44F; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x430; &#x432; ownership. &#x421; DMA-BUF &#x432;&#x44B; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x435; open kernel module, kernel/RDMA stack &#x438; GPU-memory transfer; &#x441; peermem &#x43F;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x44C; &#x438; &#x435;&#x433;&#x43E; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x441; RDMA drivers. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; kernel, NVIDIA driver &#x438;&#x43B;&#x438; NIC stack &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x443;&#x437;&#x43B;&#x44B; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x431;&#x44B;&#x442;&#x44C; &#xAB;&#x437;&#x435;&#x43B;&#x451;&#x43D;&#x44B;&#x43C;&#x438;&#xBB;, &#x43D;&#x43E; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x43F;&#x443;&#x442;&#x438;.</p>
<style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}
.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}
.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}
.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}
.ks-widget .panel.on{display:block}
.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}
.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}
.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style><div class="ks-widget" id="ks-tab-gdrd001"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x439; path &#x432;&#x44B; &#x441;&#x435;&#x439;&#x447;&#x430;&#x441; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x435;?</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="dmabuf">DMA-BUF</button><button type="button" class="tab-btn" data-t="peermem">nvidia-peermem</button><button type="button" class="tab-btn" data-t="fallback">Fallback</button></div><div class="panel on" data-p="dmabuf">&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; Open GPU Kernel Module, RDMA device &#x438; GPU-memory transfer &#x441; <code>--use_cuda_dmabuf</code>. &#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; nvidia-peermem &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x432;&#x430;&#x448;&#x438;&#x43C; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E;&#x43C;.</div><div class="panel" data-p="peermem">Legacy-&#x43F;&#x443;&#x442;&#x44C; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x443; nvidia-peermem &#x438; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; RDMA stack. &#x41D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x44B; &#x441; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x443;&#x437;&#x43B;&#x430; &#x43D;&#x430; DMA-BUF canary.</div><div class="panel" data-p="fallback">&#x415;&#x441;&#x43B;&#x438; host-memory RDMA &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442;, &#x430; GPU-memory test &#x43D;&#x435;&#x442;, &#x441;&#x435;&#x442;&#x44C; &#x435;&#x449;&#x451; &#x43D;&#x435; &#x43E;&#x43F;&#x440;&#x430;&#x432;&#x434;&#x430;&#x43D;&#x430;: &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x438;&#x437;&#x43E;&#x432;&#x430;&#x43D;&#x430; &#x431;&#x43B;&#x438;&#x436;&#x435; &#x43A; GPU registration path &#x438;&#x43B;&#x438; &#x435;&#x433;&#x43E; prerequisites.</div><script>(function(){var r=document.getElementById('ks-tab-gdrd001');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-02-f4162ed4.webp" class="kg-image" alt="GPUDirect RDMA &#x447;&#x435;&#x440;&#x435;&#x437; DMA-BUF: &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434; &#x441; nvidia-peermem &#x434;&#x43B;&#x44F; multi-node LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-02-f4162ed4.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-02-f4162ed4.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-02-f4162ed4.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="inventory">&#x414;&#x43E; &#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x438; &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; identity &#x443;&#x437;&#x43B;&#x430;, GPU &#x438; RDMA NIC</h2>
<p>&#x41F;&#x435;&#x440;&#x432;&#x43E;&#x435; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x43E; &#x2014; &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; kernel path &#x434;&#x43E; evidence bundle. &#x417;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; kernel release, &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; &#x438; &#x442;&#x438;&#x43F; NVIDIA kernel module, PCI identity GPU, RDMA devices &#x438; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x443;&#x44E; &#x431;&#x43B;&#x438;&#x437;&#x43E;&#x441;&#x442;&#x44C; GPU&#x2194;NIC. &#x418;&#x43D;&#x430;&#x447;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x432;&#x44B; &#x443;&#x432;&#x438;&#x434;&#x438;&#x442;&#x435; &#xAB;&#x441;&#x442;&#x430;&#x43B;&#x43E; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C;&#xBB; &#x438; &#x43D;&#x435; &#x441;&#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x438;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x43E;&#x441;&#x44C;.</p><p>Identity &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x431;&#x44B;&#x442;&#x44C; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x438; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x439;. &#x414;&#x43B;&#x44F; GPU &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; BDF &#x438;&#x437; <code>nvidia-smi</code> &#x438; topology map; &#x434;&#x43B;&#x44F; NIC &#x2014; RDMA device &#x438; &#x441;&#x432;&#x44F;&#x437;&#x430;&#x43D;&#x43D;&#x44B;&#x439; netdev. &#x415;&#x441;&#x43B;&#x438; &#x443; &#x432;&#x430;&#x441; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; HCA, &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#xAB;mlx5_0&#xBB; &#x43A;&#x430;&#x43A; &#x432;&#x435;&#x447;&#x43D;&#x443;&#x44E; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441;-&#x438;&#x434;&#x435;&#x43D;&#x442;&#x438;&#x447;&#x43D;&#x43E;&#x441;&#x442;&#x44C;: &#x43F;&#x43E;&#x441;&#x43B;&#x435; firmware &#x438;&#x43B;&#x438; PCI enumeration &#x438;&#x43C;&#x44F; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x43E;&#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C;&#x441;&#x44F;. &#x421;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x441; PCI BDF &#x438; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x43C; &#x43F;&#x43E;&#x440;&#x442;&#x43E;&#x43C;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">baseline-gpudirect.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>uname -r
modinfo nvidia | grep -E &apos;^(version|license):&apos;
nvidia-smi -L
nvidia-smi topo -m
rdma link
rdma dev show
ibdev2netdev
lsmod | grep -E &apos;nvidia_peermem|nvidia|ib_core|mlx5&apos;</code></pre>
<div class="ks-canonical-code-block__caption">Evidence bundle &#x434;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; registration path</div>
</div>
<p>&#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x44D;&#x442;&#x43E;&#x442; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; &#x432;&#x435;&#x440;&#x441;&#x438;&#x435;&#x439; CUDA/NCCL &#x438; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x43E;&#x43C; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;. &#x41F;&#x440;&#x438; canary &#x441;&#x440;&#x430;&#x432;&#x43D;&#x435;&#x43D;&#x438;&#x438; &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#xAB;&#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#xBB;, &#x430; &#x443;&#x437;&#x435;&#x43B; &#x442;&#x43E;&#x433;&#x43E; &#x436;&#x435; topology class. &#x415;&#x441;&#x43B;&#x438; &#x43E;&#x434;&#x43D;&#x430; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x430; &#x438;&#x43C;&#x435;&#x435;&#x442; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; root complex, &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; NIC firmware &#x438;&#x43B;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; kernel, &#x43E;&#x43D;&#x430; &#x43F;&#x43B;&#x43E;&#x445;&#x43E;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;.</p><p>&#x414;&#x43B;&#x44F; LLM-&#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; application baseline: &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; distributed job, steady-state throughput, p95/p99 &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x443;&#x44E;&#x449;&#x435;&#x439; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438; &#x438; CPU utilization. &#x41D;&#x435; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x439;&#x442;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43E;&#x434;&#x43D;&#x443; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x443;. &#x41D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, NCCL transport &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x441;&#x442;&#x430;&#x442;&#x44C; &#x447;&#x438;&#x449;&#x435;, &#x43D;&#x43E; end-to-end latency &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x441;&#x44F; &#x438;&#x437;-&#x437;&#x430; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x433;&#x43E; bottleneck. &#x42D;&#x442;&#x43E; &#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;, &#x430; &#x43D;&#x435; &#x43F;&#x43E;&#x432;&#x43E;&#x434; &#x43F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-03-4e013412.webp" class="kg-image" alt="GPUDirect RDMA &#x447;&#x435;&#x440;&#x435;&#x437; DMA-BUF: &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434; &#x441; nvidia-peermem &#x434;&#x43B;&#x44F; multi-node LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-03-4e013412.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-03-4e013412.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-03-4e013412.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="prerequisites">Gate 1: &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; prerequisites DMA-BUF, &#x430; &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x43D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x435; NVIDIA driver</h2>
<p>&#x41F;&#x43E; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; NVIDIA &#x434;&#x43B;&#x44F; GPUDirect RDMA &#x447;&#x435;&#x440;&#x435;&#x437; DMA-BUF &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442;&#x441;&#x44F; Open GPU Kernel Module; GPU Operator &#x442;&#x430;&#x43A;&#x436;&#x435; &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; CUDA 11.7+ &#x438; Linux kernel 5.12+ &#x43A;&#x430;&#x43A; &#x431;&#x430;&#x437;&#x43E;&#x432;&#x44B;&#x435; &#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x430;&#x448;&#x443; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x443;&#x44E; &#x43A;&#x43E;&#x43C;&#x431;&#x438;&#x43D;&#x430;&#x446;&#x438;&#x44E; OS/kernel/driver, &#x430; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x443;&#x43C;&#x44B; &#x438;&#x437; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; &#x43D;&#x430; &#x43D;&#x435;&#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x439; &#x434;&#x438;&#x441;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438;&#x432;.</p><p>&#x41D;&#x430; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x435; gate &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x442;&#x44C; &#x43D;&#x430; &#x442;&#x440;&#x438; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x430;. &#x412;&#x43E;-&#x43F;&#x435;&#x440;&#x432;&#x44B;&#x445;, &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D; &#x43B;&#x438; open kernel variant, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#xAB;NVIDIA driver &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442;&#xBB;. &#x412;&#x43E;-&#x432;&#x442;&#x43E;&#x440;&#x44B;&#x445;, &#x432;&#x438;&#x434;&#x435;&#x43D; &#x43B;&#x438; RDMA device &#x438; &#x435;&#x433;&#x43E; netdev. &#x412;-&#x442;&#x440;&#x435;&#x442;&#x44C;&#x438;&#x445;, &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x43B;&#x438; GPU/NIC topology &#x432;&#x430;&#x448;&#x435;&#x43C;&#x443; canary-&#x43F;&#x43B;&#x430;&#x43D;&#x443;. &#x41D;&#x430; &#x44D;&#x442;&#x43E;&#x43C; &#x448;&#x430;&#x433;&#x435; &#x43D;&#x435; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; LLM: &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x44B;&#x439; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">dmabuf-prereqs.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>uname -r
modinfo nvidia | grep -E &apos;^(version|license):&apos;
rdma dev show
rdma link
nvidia-smi topo -m
ls -l /dev/infiniband</code></pre>
<div class="ks-canonical-code-block__caption">&#x41C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; kernel/RDMA prerequisites</div>
</div>
<p>&#x41D;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; <code>nvidia_peermem</code> &#x43A;&#x430;&#x43A; &#x435;&#x434;&#x438;&#x43D;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x439; PASS. &#x41C;&#x43E;&#x434;&#x443;&#x43B;&#x44C; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43D;&#x435; &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D;, &#x43D;&#x43E; DMA-BUF transfer &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x43D;&#x435; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C; &#x438;&#x437;-&#x437;&#x430; &#x43D;&#x435;&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x439; &#x43A;&#x43E;&#x43C;&#x431;&#x438;&#x43D;&#x430;&#x446;&#x438;&#x438; kernel/NIC driver. &#x418; &#x43D;&#x430;&#x43E;&#x431;&#x43E;&#x440;&#x43E;&#x442;, &#x43D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x435; &#x441;&#x442;&#x430;&#x440;&#x43E;&#x433;&#x43E; &#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x44F; &#x432; filesystem &#x435;&#x449;&#x451; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; runtime &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; legacy path.</p>
<div class="ks-widget" id="ks-chk-gdrd002"><h3>&#x413;&#x43E;&#x442;&#x43E;&#x432; &#x43B;&#x438; &#x443;&#x437;&#x435;&#x43B; &#x43A; DMA-BUF canary?</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x44B; kernel, NVIDIA driver &#x438; CUDA/NCCL &#x432;&#x435;&#x440;&#x441;&#x438;&#x438;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x41F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D; Open GPU Kernel Module</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> RDMA device &#x438; netdev &#x43E;&#x434;&#x43D;&#x43E;&#x437;&#x43D;&#x430;&#x447;&#x43D;&#x43E; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x44B;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x430; GPU&#x2194;NIC topology</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x415;&#x441;&#x442;&#x44C; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x43C;&#x44B;&#x439; baseline-&#x443;&#x437;&#x435;&#x43B;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x41F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43B;&#x435;&#x43D; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x43A; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x435;&#x43C;&#x443; driver image</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-gdrd002');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><h2 id="rdma-test">Gate 2: &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; RDMA &#x438;&#x437; GPU memory</h2>
<p>&#x421;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; gate &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; fabric &#x43E;&#x442; GPU-memory registration. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x44C; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x439; host-memory RDMA test &#x43D;&#x430; &#x442;&#x43E;&#x439; &#x436;&#x435; &#x43F;&#x430;&#x440;&#x435; &#x443;&#x437;&#x43B;&#x43E;&#x432; &#x438; &#x43F;&#x43E;&#x440;&#x442;&#x443;. &#x415;&#x441;&#x43B;&#x438; &#x43E;&#x43D; &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;, &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x435; &#x43A; DMA-BUF &#x2014; &#x438;&#x43D;&#x430;&#x447;&#x435; &#x434;&#x432;&#x435; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x44B; &#x441;&#x43C;&#x435;&#x448;&#x430;&#x44E;&#x442;&#x441;&#x44F;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; PASS &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x43A;&#x43B;&#x430;&#x441;&#x441; perftest &#x441; GPU buffer &#x438; &#x444;&#x43B;&#x430;&#x433;&#x43E;&#x43C; DMA-BUF.</p><p>NVIDIA &#x432; troubleshooting &#x434;&#x43B;&#x44F; NCCL &#x43F;&#x440;&#x44F;&#x43C;&#x43E; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x442; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C; host-memory transfer &#x438; GPU-memory transfer &#x447;&#x435;&#x440;&#x435;&#x437; <code>ib_write_bw</code>; &#x434;&#x43B;&#x44F; DMA-BUF &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442;&#x441;&#x44F; <code>--use_cuda_dmabuf</code>. &#x41D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x435; HCA, GPU id &#x438; server address &#x43F;&#x43E;&#x434;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x438;&#x437; &#x441;&#x432;&#x43E;&#x435;&#x433;&#x43E; inventory, &#x430; &#x43D;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x438;&#x437; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;&#x430; &#x43A;&#x430;&#x43A; &#x43A;&#x43E;&#x43D;&#x441;&#x442;&#x430;&#x43D;&#x442;&#x44B;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">gpudirect-perftest.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code># &#x41D;&#x430; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x43E;&#x439; &#x441;&#x442;&#x43E;&#x440;&#x43E;&#x43D;&#x435;
ib_write_bw -d mlx5_0 -a

# &#x41D;&#x430; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x435;: &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; host-memory baseline
ib_write_bw -d mlx5_0 -a <server_ip>

# &#x417;&#x430;&#x442;&#x435;&#x43C; GPU-memory DMA-BUF test
ib_write_bw --use_cuda=0 --use_cuda_dmabuf -d mlx5_0 -a -F --report_gbits -q 1 <server_ip></server_ip></server_ip></code></pre>
<div class="ks-canonical-code-block__caption">&#x420;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x43C; fabric baseline &#x438; GPU-memory DMA-BUF transfer</div>
</div>
<p>&#x421;&#x43C;&#x44B;&#x441;&#x43B; &#x43D;&#x435; &#x432; &#x442;&#x43E;&#x43C;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x43E; Gbit/s. PASS &#x2014; GPU-memory test &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442; &#x43D;&#x430; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x439; &#x43F;&#x430;&#x440;&#x435; GPU/NIC, &#x43D;&#x435; &#x440;&#x430;&#x437;&#x432;&#x430;&#x43B;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x438; &#x438; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; controlled restart. &#x421;&#x440;&#x430;&#x432;&#x43D;&#x435;&#x43D;&#x438;&#x435; bandwidth &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x43C;&#x438; topology, message sizes &#x438; software versions.</p><p>&#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;: &#x43D;&#x430;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x435; host-memory &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;. &#x415;&#x441;&#x43B;&#x438; &#x43E;&#x431;&#x430; &#x440;&#x435;&#x436;&#x438;&#x43C;&#x430; &#x434;&#x430;&#x44E;&#x442; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E; &#x43F;&#x43B;&#x43E;&#x445;&#x43E;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;, &#x43D;&#x435; &#x43E;&#x431;&#x44A;&#x44F;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; DMA-BUF &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43E;&#x439;. &#x415;&#x441;&#x43B;&#x438; host memory &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x435;&#x43D;, &#x430; GPU DMA-BUF &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442;, &#x43E;&#x431;&#x43B;&#x430;&#x441;&#x442;&#x44C; &#x43F;&#x43E;&#x438;&#x441;&#x43A;&#x430; &#x441;&#x443;&#x436;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43A; GPU registration/peer path &#x438; &#x435;&#x433;&#x43E; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438;.</p>
<div class="ks-widget" id="ks-sel-gdrd003"><h3>&#x427;&#x442;&#x43E; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; perftest?</h3><label>&#x421;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x439;</label><select data-s><option value="both">Host &#x438; GPU tests &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;</option><option value="hostonly">Host &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x435;&#x43D;, GPU DMA-BUF &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442;</option><option value="none">&#x41E;&#x431;&#x430; &#x43D;&#x435;&#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;</option><option value="gpuonly">GPU test &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;, application &#x432;&#x441;&#x451; &#x435;&#x449;&#x451; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-gdrd003');if(!r)return;var m={"both":"Infrastructure gate пройден. Переходите к NCCL и application gate; ускорение пока не доказано.","hostonly":"Fabric baseline жив. Проверяйте open kernel, DMA-BUF prerequisites, GPU/NIC identity и driver compatibility.","none":"Не мигрируйте registration path. Сначала локализуйте fabric/NIC/route/MTU проблему.","gpuonly":"Механизм GPUDirect подтверждён, но bottleneck находится выше: NCCL config, orchestration или само приложение."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-04-51426d8f.webp" class="kg-image" alt="GPUDirect RDMA &#x447;&#x435;&#x440;&#x435;&#x437; DMA-BUF: &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434; &#x441; nvidia-peermem &#x434;&#x43B;&#x44F; multi-node LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-04-51426d8f.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-04-51426d8f.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-04-51426d8f.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="nccl-gate">Gate 3: &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435;, &#x447;&#x442;&#x43E; NCCL &#x43D;&#x435; &#x43C;&#x430;&#x441;&#x43A;&#x438;&#x440;&#x443;&#x435;&#x442; path &#x441;&#x432;&#x43E;&#x438;&#x43C; fallback</h2>
<p>&#x414;&#x430;&#x436;&#x435; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; perftest &#x435;&#x449;&#x451; &#x43D;&#x435; &#x440;&#x430;&#x432;&#x435;&#x43D; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;&#x43C;&#x443; distributed workload. NCCL &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; transport &#x441; &#x443;&#x447;&#x451;&#x442;&#x43E;&#x43C; topology &#x438; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x445; plugins. &#x412; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; <code>NCCL_DMABUF_ENABLE</code> &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x441; NCCL 2.13, &#x438;&#x43C;&#x435;&#x435;&#x442; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E; &#x443;&#x43C;&#x43E;&#x43B;&#x447;&#x430;&#x43D;&#x438;&#x44E; 1 &#x438; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x435;&#x441;&#x43B;&#x438; platform &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; DMA-BUF. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; &#x440;&#x443;&#x447;&#x43D;&#x43E;&#x433;&#x43E; export &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; path &#x430;&#x43A;&#x442;&#x438;&#x432;&#x435;&#x43D;, &#x430; &#x441;&#x430;&#x43C; export &#x43D;&#x435; &#x437;&#x430;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442; &#x43D;&#x435;&#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x443;&#x44E; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x443; &#x447;&#x443;&#x434;&#x435;&#x441;&#x43D;&#x44B;&#x43C; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x43E;&#x43C; &#x437;&#x430;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C;.</p><p>&#x414;&#x43B;&#x44F; canary &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x43B;&#x43E;&#x433; &#x438; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x44B;&#x439; <code>nccl-tests</code> &#x43D;&#x430; &#x442;&#x43E;&#x439; &#x436;&#x435; &#x43F;&#x430;&#x440;&#x435; &#x443;&#x437;&#x43B;&#x43E;&#x432;. &#x421;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; &#x438;&#x442;&#x43E;&#x433;&#x43E;&#x432;&#x443;&#x44E; &#x43F;&#x43E;&#x43B;&#x43E;&#x441;&#x443;, &#x43D;&#x43E; &#x438; &#x43D;&#x430; transport selection, &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; registration &#x438; &#x43D;&#x435;&#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x439; socket fallback. &#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43D;&#x438;&#x436;&#x435; &#x2014; &#x448;&#x430;&#x431;&#x43B;&#x43E;&#x43D; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x442;&#x435;&#x441;&#x442;&#x430;; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431; multi-node launch &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; &#x432;&#x430;&#x448;&#x435;&#x439; MPI/Slurm/Kubernetes &#x43E;&#x431;&#x432;&#x44F;&#x437;&#x43A;&#x438;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">nccl-dmabuf-canary.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>export NCCL_DEBUG=INFO
export NCCL_DMABUF_ENABLE=1

# &#x417;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x442;&#x435;&#x43C; &#x436;&#x435; orchestrator, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442;&#x435; &#x434;&#x43B;&#x44F; canary
./build/all_reduce_perf -b 8M -e 1G -f 2 -g 1</code></pre>
<div class="ks-canonical-code-block__caption">NCCL canary &#x441; &#x44F;&#x432;&#x43D;&#x44B;&#x43C; DMA-BUF intent &#x438; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x43E;&#x439;</div>
</div>
<p>&#x415;&#x441;&#x43B;&#x438; &#x442;&#x435;&#x441;&#x442; &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; RDMA transport, &#x43D;&#x435; &#x43B;&#x435;&#x447;&#x438;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435;&#x43C; safety checks &#x432;&#x441;&#x43B;&#x435;&#x43F;&#x443;&#x44E;. &#x412;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435;&#x441;&#x44C; &#x43A; identity &#x438; network baseline. &#x41F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;: &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; &#x43D;&#x43E;&#x432;&#x44B;&#x439; environment override &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x442;&#x44C; &#x43D;&#x430; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x435; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x432; &#x43B;&#x43E;&#x433;&#x435; &#x438; &#x438;&#x43C;&#x435;&#x442;&#x44C; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x443;&#x44E; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x443;.</p><p>&#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43D;&#x435; &#x43F;&#x443;&#x442;&#x430;&#x439;&#x442;&#x435; DMA-BUF &#x441; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x43E;&#x439; RoCE fabric. ECN/PFC, QoS &#x438; congestion control &#x43E;&#x441;&#x442;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x441;&#x430;&#x43C;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; &#x441;&#x43B;&#x43E;&#x435;&#x43C;. &#x415;&#x441;&#x43B;&#x438; NCCL &#x432;&#x438;&#x434;&#x438;&#x442; RDMA, &#x43D;&#x43E; &#x441;&#x435;&#x442;&#x44C; &#x442;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x44B; &#x438;&#x43B;&#x438; &#x443;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x432; congestion, registration path &#x443;&#x436;&#x435; &#x43D;&#x435; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x439; &#x43F;&#x43E;&#x434;&#x43E;&#x437;&#x440;&#x435;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x439;.</p>
<div class="ks-widget" id="ks-tab-gdrd004"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x439; gate &#x443;&#x436;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;?</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="perftest">Perftest</button><button type="button" class="tab-btn" data-t="nccl">NCCL</button><button type="button" class="tab-btn" data-t="app">LLM app</button></div><div class="panel on" data-p="perftest">&#x414;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; GPU-memory RDMA &#x43D;&#x430; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x440;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;. &#x41D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; transport &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; NCCL job.</div><div class="panel" data-p="nccl">&#x414;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; distributed collective path &#x432; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x43C; &#x442;&#x435;&#x441;&#x442;&#x435;. &#x41D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; user-facing LLM SLO &#x443;&#x43B;&#x443;&#x447;&#x448;&#x438;&#x43B;&#x441;&#x44F;.</div><div class="panel" data-p="app">&#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; application canary &#x441;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x43E;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x441; latency/throughput/cost &#x432;&#x430;&#x448;&#x435;&#x439; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;.</div><script>(function(){var r=document.getElementById('ks-tab-gdrd004');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-05-b6b0a5e6.webp" class="kg-image" alt="GPUDirect RDMA &#x447;&#x435;&#x440;&#x435;&#x437; DMA-BUF: &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434; &#x441; nvidia-peermem &#x434;&#x43B;&#x44F; multi-node LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-05-b6b0a5e6.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-05-b6b0a5e6.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-05-b6b0a5e6.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="application-gate">Gate 4: LLM canary &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;, &#x430; &#x43D;&#x435; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x44B;&#x439; low-level test</h2>
<p>&#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; workload &#x43D;&#x430; canary-&#x443;&#x437;&#x43B;&#x430;&#x445;. &#x414;&#x43B;&#x44F; training &#x44D;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; &#x440;&#x435;&#x43F;&#x440;&#x435;&#x437;&#x435;&#x43D;&#x442;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x439; distributed step; &#x434;&#x43B;&#x44F; multi-node inference &#x2014; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; replay &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432; &#x441; &#x442;&#x435;&#x43C;&#x438; &#x436;&#x435; model revision, tensor/pipeline parallel settings &#x438; concurrency. &#x413;&#x43B;&#x430;&#x432;&#x43D;&#x43E;&#x435; &#x2014; &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; registration path, batch policy &#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;: &#x438;&#x43D;&#x430;&#x447;&#x435; attribution &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44F;&#x43D;&#x430;.</p><p>&#x414;&#x435;&#x440;&#x436;&#x438;&#x442;&#x435; &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x443;&#x43C; &#x442;&#x440;&#x438; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;: application SLO, NCCL/RDMA evidence &#x438; host pressure. &#x41D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, &#x435;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; DMA-BUF direct path CPU utilization &#x443;&#x43F;&#x430;&#x43B;, &#x43D;&#x43E; tokens/s &#x438; p95 &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x438;&#x441;&#x44C; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x43C;&#x438;, &#x432;&#x44B; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43B;&#x438; &#x440;&#x430;&#x437;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x443; host path, &#x43D;&#x43E; &#x43D;&#x435; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430;. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x434;&#x43B;&#x44F; capacity, &#x43D;&#x43E; &#x435;&#x433;&#x43E; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x43F;&#x440;&#x43E;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; &#x43A;&#x430;&#x43A; &#x440;&#x43E;&#x441;&#x442; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x431;&#x435;&#x437; &#x434;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; evidence.</p><p>&#x415;&#x441;&#x43B;&#x438; &#x43D;&#x430;&#x43E;&#x431;&#x43E;&#x440;&#x43E;&#x442; p95 &#x443;&#x43B;&#x443;&#x447;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; canary, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; topology class &#x438; workload equality. &#x41E;&#x434;&#x43D;&#x430; &#xAB;&#x431;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F;&#xBB; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x430; &#x43D;&#x430; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C; PCIe root complex &#x2014; &#x43F;&#x43B;&#x43E;&#x445;&#x43E;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E;. &#x414;&#x43B;&#x44F; &#x441;&#x43C;&#x435;&#x436;&#x43D;&#x44B;&#x445; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432; CPU/memory locality &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; <a href="https://kingservers.com/blog/pinned-memory-memlock-llm-inference/">runbook &#x43F;&#x43E; pinned memory &#x438; memlock</a>, &#x430; throttling GPU &#x43B;&#x443;&#x447;&#x448;&#x435; &#x438;&#x441;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x442;&#x44C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; <a href="https://kingservers.com/blog/gpu-throttling-llm-inference-dcgm-prometheus/">DCGM/Prometheus runbook</a>.</p>
<div class="ks-widget" id="ks-chk-gdrd005"><h3>Application gate &#x43F;&#x435;&#x440;&#x435;&#x434; rollout</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> Model revision &#x438; container image &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x44E;&#x442; &#x441; baseline</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> Concurrency &#x438; parallelism &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x43B;&#x438;&#x441;&#x44C;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> NCCL/RDMA path &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x421;&#x43D;&#x44F;&#x442;&#x44B; p95/throughput &#x438; host CPU/memory metrics</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x415;&#x441;&#x442;&#x44C; baseline &#x442;&#x43E;&#x433;&#x43E; &#x436;&#x435; topology class</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x41E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x451;&#x43D; stop condition &#x438; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x435;&#x446; rollback</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-gdrd005');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><h2 id="migration">Canary migration: &#x43D;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; DMA-BUF &#x438; legacy path &#x432; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x435;</h2>
<p>&#x421;&#x430;&#x43C;&#x430;&#x44F; &#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x430;&#x44F; &#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x2014; &#xAB;&#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x438;&#x43C; &#x43F;&#x43E;&#x43B;&#x43E;&#x432;&#x438;&#x43D;&#x443; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x43E;&#x432; &#x438; &#x43F;&#x43E;&#x441;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x43C;&#xBB;. &#x414;&#x43B;&#x44F; canary &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; immutable software set: kernel, NVIDIA driver/kernel module type, CUDA/NCCL, RDMA stack, firmware &#x438; container image. &#x41C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; registration path &#x438; &#x441;&#x432;&#x44F;&#x437;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; prerequisites.</p><p>&#x415;&#x441;&#x43B;&#x438; &#x432;&#x44B; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442;&#x435; GPU Operator, &#x442;&#x435;&#x43A;&#x443;&#x449;&#x430;&#x44F; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; DMA-BUF &#x43A;&#x430;&#x43A; default path &#x434;&#x43B;&#x44F; GPUDirect RDMA &#x438; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; <code>driver.rdma.enabled=true</code> &#x434;&#x43B;&#x44F; legacy peer-memory &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x44F;. &#x414;&#x43B;&#x44F; bare metal &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x442;&#x443; &#x436;&#x435; &#x438;&#x434;&#x435;&#x44E;: &#x434;&#x432;&#x430; &#x44F;&#x432;&#x43D;&#x44B;&#x445; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44F; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;, &#x430; &#x43D;&#x435; &#x440;&#x443;&#x447;&#x43D;&#x44B;&#x435; <code>modprobe</code> &#x43D;&#x430; &#x434;&#x435;&#x441;&#x44F;&#x442;&#x43A;&#x430;&#x445; &#x443;&#x437;&#x43B;&#x43E;&#x432;. Infrastructure-as-code &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x442;&#x44C; &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x439; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44C; &#x446;&#x435;&#x43B;&#x438;&#x43A;&#x43E;&#x43C;.</p><p>&#x41F;&#x43E;&#x440;&#x44F;&#x434;&#x43E;&#x43A; rollout: &#x43E;&#x434;&#x438;&#x43D; canary pair &#x2192; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435; reboot &#x2192; &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; pool &#x2192; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; cluster. &#x41D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x44D;&#x442;&#x430;&#x43F;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x435; gates &#x432; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43A;&#x435;. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; reboot GPU-memory perftest &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x43B; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C;, &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x435; &#x43A; NCCL; &#x435;&#x441;&#x43B;&#x438; NCCL &#x443;&#x43F;&#x430;&#x43B;, &#x43D;&#x435; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x44D;&#x442;&#x43E; application metrics.</p>
<div class="ks-widget" id="ks-tab-gdrd006"><h3>&#x41A;&#x430;&#x43A; &#x440;&#x430;&#x441;&#x43A;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435;?</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="one">1 &#x43F;&#x430;&#x440;&#x430;</button><button type="button" class="tab-btn" data-t="pool">Canary pool</button><button type="button" class="tab-btn" data-t="fleet">Fleet</button></div><div class="panel on" data-p="one">&#x41F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; evidence bundle, reboot &#x438; &#x432;&#x441;&#x435; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x435; gates. &#x41B;&#x44E;&#x431;&#x43E;&#x439; FAIL &#x2014; rollback &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44F;, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x447;&#x435;&#x447;&#x43D;&#x44B;&#x435; &#x445;&#x430;&#x43A;&#x438;.</div><div class="panel" data-p="pool">&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x43E;&#x434;&#x43D;&#x43E;&#x440;&#x43E;&#x434;&#x43D;&#x43E;&#x441;&#x442;&#x44C; kernel/driver/topology &#x438; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; runtime path &#x43C;&#x435;&#x436;&#x434;&#x443; &#x443;&#x437;&#x43B;&#x430;&#x43C;&#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; job.</div><div class="panel" data-p="fleet">&#x420;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; canary window &#x438; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43E;&#x433;&#x43E; operational monitor; &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; rollout &#x43A;&#x430;&#x43A; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431; &#x441;&#x43E;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; baseline.</div><script>(function(){var r=document.getElementById('ks-tab-gdrd006');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-06-8014388e.webp" class="kg-image" alt="GPUDirect RDMA &#x447;&#x435;&#x440;&#x435;&#x437; DMA-BUF: &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434; &#x441; nvidia-peermem &#x434;&#x43B;&#x44F; multi-node LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-06-8014388e.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-06-8014388e.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-06-8014388e.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="failure-modes">&#x422;&#x438;&#x43F;&#x43E;&#x432;&#x44B;&#x435; failure modes: &#x433;&#x434;&#x435; DMA-BUF &#x447;&#x430;&#x449;&#x435; &#x432;&#x441;&#x435;&#x433;&#x43E; &#x43E;&#x431;&#x432;&#x438;&#x43D;&#x44F;&#x44E;&#x442; &#x437;&#x440;&#x44F;</h2>
<p><strong>&#x421;&#x435;&#x442;&#x44C; &#x43D;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x430;.</strong> Host-memory perftest &#x443;&#x436;&#x435; &#x43D;&#x435;&#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x435;&#x43D;, &#x43D;&#x43E; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x441;&#x440;&#x430;&#x437;&#x443; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442; GPU test. &#x412; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x435; DMA-BUF &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x435;&#x442; &#x447;&#x443;&#x436;&#x443;&#x44E; &#x432;&#x438;&#x43D;&#x443;. Negative control &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x439;: &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; host buffer &#x43D;&#x430; &#x442;&#x43E;&#x43C; &#x436;&#x435; HCA/port/path.</p><p><strong>&#x421;&#x43C;&#x435;&#x448;&#x430;&#x43D;&#x44B; kernel module types.</strong> &#x41E;&#x434;&#x438;&#x43D; &#x443;&#x437;&#x435;&#x43B; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; open module, &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x2014; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; driver profile, &#x430; orchestration &#x441;&#x447;&#x438;&#x442;&#x430;&#x435;&#x442; &#x438;&#x445; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x43C;&#x438;. Distributed job &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x43E;&#x43C; &#x441;&#x440;&#x430;&#x437;&#x443; &#x441; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x438;&#x43C;&#x438; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x43C;&#x438;. &#x41B;&#x435;&#x447;&#x438;&#x442;&#x441;&#x44F; inventory gate &#x438; node labels/taints, &#x430; &#x43D;&#x435; &#x434;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; environment variable.</p><p><strong>NCCL auto-disable &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x44E;&#x442; &#x437;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x445;.</strong> &#x41F;&#x43E;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x443; <code>NCCL_DMABUF_ENABLE</code> &#x43F;&#x43E; &#x443;&#x43C;&#x43E;&#x43B;&#x447;&#x430;&#x43D;&#x438;&#x44E; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x451;&#x43D;, &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x447;&#x43D;&#x43E; &#x440;&#x435;&#x448;&#x438;&#x442;&#x44C;, &#x447;&#x442;&#x43E; DMA-BUF &#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442;&#x441;&#x44F;. &#x414;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x43F;&#x440;&#x44F;&#x43C;&#x43E; &#x433;&#x43E;&#x432;&#x43E;&#x440;&#x438;&#x442; &#x43E;&#x431; auto-disable &#x43D;&#x430; &#x43D;&#x435;&#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x43E;&#x439; platform; &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43D;&#x443;&#x436;&#x435;&#x43D; log/evidence, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;&#x439;.</p><p><strong>Peermem &#x443;&#x434;&#x430;&#x43B;&#x44F;&#x44E;&#x442; &#x434;&#x43E; rollback window.</strong> &#x415;&#x441;&#x43B;&#x438; legacy path &#x431;&#x44B;&#x43B; &#x440;&#x430;&#x431;&#x43E;&#x447;&#x438;&#x43C; baseline, &#x43D;&#x435; &#x443;&#x43D;&#x438;&#x447;&#x442;&#x43E;&#x436;&#x430;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x432; &#x442;&#x43E;&#x43C; &#x436;&#x435; change, &#x433;&#x434;&#x435; &#x432;&#x43F;&#x435;&#x440;&#x432;&#x44B;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x435; DMA-BUF. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x439; path, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x441;&#x43E;&#x43A;&#x440;&#x430;&#x449;&#x430;&#x439;&#x442;&#x435; legacy dependencies &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; change.</p><p><strong>&#x41C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C; &#x43F;&#x443;&#x442;&#x430;&#x44E;&#x442; &#x441; SLO.</strong> GPU-memory RDMA &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C; &#x438;&#x434;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;, &#x430; LLM &#x43D;&#x435; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x44C;&#x441;&#x44F;, &#x435;&#x441;&#x43B;&#x438; bottleneck &#x2014; compute, storage &#x438;&#x43B;&#x438; scheduler. &#x414;&#x43B;&#x44F; I/O storm &#x43D;&#x430; &#x43E;&#x431;&#x449;&#x435;&#x43C; NVMe, &#x43D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x435;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; <a href="https://kingservers.com/blog/io-isolation-llm-cgroup-v2-systemd/">&#x438;&#x437;&#x43E;&#x43B;&#x44F;&#x446;&#x438;&#x44F; I/O &#x447;&#x435;&#x440;&#x435;&#x437; cgroup v2/systemd</a>.</p><h2 id="rollback-monitoring">Rollback &#x438; &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433;: &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44C;, &#x430; &#x43D;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x44C;</h2>
<p>Rollback &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x43C; rollout. &#x415;&#x441;&#x43B;&#x438; baseline &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x43B; legacy <code>nvidia-peermem</code>, &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x439; driver/RDMA profile &#x446;&#x435;&#x43B;&#x438;&#x43A;&#x43E;&#x43C;, &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x435; &#x443;&#x437;&#x435;&#x43B; &#x43F;&#x440;&#x438; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438; &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x435; &#x436;&#x435; gates: identity &#x2192; host/GPU perftest &#x2192; NCCL &#x2192; application. &#x42D;&#x442;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435;, &#x447;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x44C; &#x432; <code>lsmod</code>.</p><p>&#x414;&#x43B;&#x44F; legacy path NVIDIA GPU Operator &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; RDMA driver integration. &#x41D;&#x430; bare metal &#x44D;&#x43A;&#x432;&#x438;&#x432;&#x430;&#x43B;&#x435;&#x43D;&#x442;&#x43E;&#x43C; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; versioned package/profile, &#x430; &#x43D;&#x435; &#xAB;&#x434;&#x435;&#x436;&#x443;&#x440;&#x43D;&#x44B;&#x439; &#x437;&#x43D;&#x430;&#x435;&#x442;, &#x43A;&#x430;&#x43A;&#x43E;&#x439; modprobe &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C;&#xBB;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; rollback &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x43E;&#x431;&#x430; evidence bundles &#x2014; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43E;&#x43D;&#x438; &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x44E;&#x442; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x44C;, &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x43B;&#x438; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">legacy-rollback-check.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code># &#x41F;&#x440;&#x438;&#x43C;&#x435;&#x440; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; legacy baseline &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44F;
sudo modprobe nvidia-peermem
lsmod | grep nvidia_peermem
rdma dev show
nvidia-smi topo -m

# &#x417;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; host-memory &#x438; GPU-memory tests,
# &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x438;&#x435; &#x432;&#x430;&#x448;&#x435;&#x43C;&#x443; legacy baseline.</code></pre>
<div class="ks-canonical-code-block__caption">&#x41D;&#x435; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; modprobe &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x44B;&#x43C; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E;&#x43C; rollback</div>
</div>
<p>&#x412; &#x43F;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x43D;&#x44B;&#x439; &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; &#x438;&#x43C;&#x435;&#x435;&#x442; &#x441;&#x43C;&#x44B;&#x441;&#x43B; &#x432;&#x44B;&#x43D;&#x435;&#x441;&#x442;&#x438; &#x43D;&#x435; &#xAB;DMA-BUF=1&#xBB;, &#x430; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;&#x44B; &#x440;&#x430;&#x441;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F;: node software fingerprint, RDMA link state, NCCL transport errors, &#x43D;&#x435;&#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x440;&#x43E;&#x441;&#x442; host CPU/memory &#x43F;&#x440;&#x438; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x43C; workload &#x438; application SLO. &#x415;&#x441;&#x43B;&#x438; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x44B;&#x439; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x431;&#x435;&#x437; user-facing &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#x430;, &#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x43A;&#x430;&#x43A; &#x440;&#x430;&#x43D;&#x43D;&#x438;&#x439; &#x438;&#x43D;&#x434;&#x438;&#x43A;&#x430;&#x442;&#x43E;&#x440;, &#x43D;&#x43E; &#x43D;&#x435; &#x44D;&#x441;&#x43A;&#x430;&#x43B;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43A;&#x430;&#x43A; outage &#x431;&#x435;&#x437; &#x43F;&#x43E;&#x440;&#x43E;&#x433;&#x43E;&#x432;.</p>
<div class="ks-widget" id="ks-sel-gdrd007"><h3>&#x41A;&#x43E;&#x433;&#x434;&#x430; &#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; rollback?</h3><label>&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x435;</label><select data-s><option value="infra">GPU-memory RDMA gate &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;</option><option value="nccl">Perftest PASS, NCCL FAIL</option><option value="slo">&#x412;&#x441;&#x435; infra gates PASS, SLO &#x445;&#x443;&#x436;&#x435;</option><option value="neutral">&#x412;&#x441;&#x435; gates PASS, SLO &#x431;&#x435;&#x437; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x439;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-gdrd007');if(!r)return;var m={"infra":"Остановите rollout. Верните прежний профиль и соберите diff kernel/driver/RDMA stack.","nccl":"Не обвиняйте fabric автоматически. Сравните NCCL transport/logs и верните canary к baseline, если причина не локализована.","slo":"Инфраструктурный механизм работает, но change вреден workload. Rollback оправдан по application stop condition.","neutral":"Это может быть валидная миграция ради поддержки/снижения legacy dependency, но не заявляйте performance gain."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-07-3aa844c7.webp" class="kg-image" alt="GPUDirect RDMA &#x447;&#x435;&#x440;&#x435;&#x437; DMA-BUF: &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434; &#x441; nvidia-peermem &#x434;&#x43B;&#x44F; multi-node LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-07-3aa844c7.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-07-3aa844c7.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpudirect-rdma-dmabuf-nvidia-peermem-llm-inline-07-3aa844c7.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="ownership">&#x41A;&#x43E;&#x433;&#x434;&#x430; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; GPU-&#x443;&#x437;&#x435;&#x43B; &#x434;&#x430;&#x451;&#x442; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x435; &#x43F;&#x440;&#x435;&#x438;&#x43C;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x43E;</h2>
<p>&#x417;&#x434;&#x435;&#x441;&#x44C; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x440;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x434;&#x43E;&#x432;&#x43E;&#x43B;&#x44C;&#x43D;&#x43E; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x430;. &#x41F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434; &#x43C;&#x435;&#x436;&#x434;&#x443; kernel registration paths &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44F; &#x43D;&#x430;&#x434; kernel, &#x442;&#x438;&#x43F;&#x43E;&#x43C; NVIDIA kernel module, NIC/RDMA stack, firmware, reboot/drain &#x438; &#x441;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43E;&#x43C; canary pool. &#x412; &#x441;&#x440;&#x435;&#x434;&#x435;, &#x433;&#x434;&#x435; &#x44D;&#x442;&#x438; &#x441;&#x43B;&#x43E;&#x438; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44B; &#x438;&#x43B;&#x438; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x44B; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x438;&#x43C;&#x438; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x430;&#x43C;&#x438;, &#x432;&#x44B; &#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; symptom, &#x43D;&#x43E; &#x43D;&#x435; &#x441;&#x43E;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x439; evidence bundle.</p><p>&#x426;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; dedicated GPU infrastructure &#x432; &#x442;&#x430;&#x43A;&#x43E;&#x43C; &#x43A;&#x435;&#x439;&#x441;&#x435; &#x2014; &#x43D;&#x435; &#xAB;DMA-BUF &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442; &#x432;&#x441;&#x451;&#xBB;. &#x41E;&#x43D;&#x430; &#x432; ownership: &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x44C; software/hardware profile, &#x432;&#x44B;&#x432;&#x435;&#x441;&#x442;&#x438; &#x443;&#x437;&#x435;&#x43B; &#x438;&#x437; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;, &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x44C; perftest &#x43D;&#x430; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x439; GPU&#x2194;NIC &#x43F;&#x430;&#x440;&#x435;, &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; baseline &#x438; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x43A;&#x43E;&#x43C;&#x43F;&#x43E;&#x43D;&#x435;&#x43D;&#x442;, &#x435;&#x441;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43F;&#x435;&#x440;&#x435;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; software rollback. &#x42D;&#x442;&#x43E; &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x43E; &#x434;&#x43B;&#x44F; multi-node LLM, &#x433;&#x434;&#x435; &#x43E;&#x434;&#x438;&#x43D; &#x43D;&#x435;&#x43E;&#x434;&#x43D;&#x43E;&#x440;&#x43E;&#x434;&#x43D;&#x44B;&#x439; &#x443;&#x437;&#x435;&#x43B; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x438;&#x441;&#x43F;&#x43E;&#x440;&#x442;&#x438;&#x442;&#x44C; &#x432;&#x435;&#x441;&#x44C; distributed job.</p><p>&#x415;&#x441;&#x43B;&#x438; &#x432;&#x44B; &#x43F;&#x440;&#x43E;&#x435;&#x43A;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442;&#x435; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x448;&#x438;&#x440;&#x43E;&#x43A;&#x438;&#x439; AI platform, &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44F;&#x442;&#x44C; &#x44D;&#x442;&#x43E;&#x442; &#x43D;&#x438;&#x437;&#x43A;&#x43E;&#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435;&#x432;&#x44B;&#x439; runbook &#x43E;&#x442; orchestration. &#x41D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, <a href="https://kingservers.com/blog/kubernetes-dlya-ai-inference-kserve-gpu-autoscaling/">Kubernetes/KServe/GPU Operator</a> &#x440;&#x435;&#x448;&#x430;&#x44E;&#x442; scheduling &#x438; lifecycle &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x432;&#x44B;&#x448;&#x435;, &#x43D;&#x43E; &#x43D;&#x435; &#x43E;&#x442;&#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; data path &#x43D;&#x430; &#x445;&#x43E;&#x441;&#x442;&#x435;.</p><h2 id="sources">&#x418;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A;&#x438; &#x438; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;&#x430;</h2>
<p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43E; &#x43D;&#x430; &#x434;&#x430;&#x442;&#x443; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43A;&#x438; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438; &#x43F;&#x43E; &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; NVIDIA: <a href="https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/26.3/gpu-operator-rdma.html?ref=kingservers.com">GPU Operator 26.3 &#x2014; GPUDirect RDMA</a>, <a href="https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/env.html?ref=kingservers.com">NCCL Environment Variables</a>, <a href="https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting/networking_troubleshooting.html?ref=kingservers.com">NCCL Networking Troubleshooting</a> &#x438; <a href="https://docs.nvidia.com/cuda/gpudirect-rdma/index.html?ref=kingservers.com">CUDA GPUDirect RDMA</a>.</p><p>&#x41E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x43D;&#x438;&#x43C;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x441;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; minimum kernel/driver/CUDA requirements &#x43F;&#x440;&#x438; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;&#x445;: &#x44D;&#x442;&#x430; &#x447;&#x430;&#x441;&#x442;&#x44C; &#x441;&#x442;&#x435;&#x43A;&#x430; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x435;&#x435;, &#x447;&#x435;&#x43C; &#x43E;&#x431;&#x449;&#x430;&#x44F; &#x43B;&#x43E;&#x433;&#x438;&#x43A;&#x430; runbook. &#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x432; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x435; &#x2014; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x435; &#x448;&#x430;&#x431;&#x43B;&#x43E;&#x43D;&#x44B;; &#x438;&#x43C;&#x435;&#x43D;&#x430; HCA, GPU id, IP, orchestrator &#x438; package profile &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x432;&#x430;&#x448;&#x435;&#x43C;&#x443; inventory.</p><h2 id="conclusion">&#x412;&#x44B;&#x432;&#x43E;&#x434;: &#x43C;&#x438;&#x433;&#x440;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43D;&#x435; &#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x44C;, &#x430; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43D;&#x443;&#x44E; &#x446;&#x435;&#x43F;&#x43E;&#x447;&#x43A;&#x443; data path</h2>
<p>&#x41F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434; &#x441; legacy <code>nvidia-peermem</code> &#x43D;&#x430; DMA-BUF &#x438;&#x43C;&#x435;&#x435;&#x442; &#x441;&#x43C;&#x44B;&#x441;&#x43B; &#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x43A;&#x430;&#x43A; controlled infrastructure change. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; identity &#x438; baseline, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; prerequisites open kernel, &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x435; RDMA &#x438;&#x437; GPU memory, &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x2014; NCCL transport &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432; &#x43A;&#x43E;&#x43D;&#x446;&#x435; &#x2014; LLM application SLO. &#x415;&#x441;&#x43B;&#x438; &#x43B;&#x44E;&#x431;&#x43E;&#x439; &#x441;&#x43B;&#x43E;&#x439; FAIL, &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x440;&#x44B;&#x433;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43A; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x435;&#x43C;&#x443; &#x438; &#x43D;&#x435; &#x43C;&#x430;&#x441;&#x43A;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443; &#x434;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;&#x438; overrides.</p><p>&#x413;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x439; operational &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x2014; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; reboot &#x442;&#x43E;&#x442; &#x436;&#x435; canary &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x44C; &#x442;&#x435; &#x436;&#x435; gates; rollback &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x442;&#x44C; &#x442;&#x43E;&#x442; &#x436;&#x435; baseline; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x435; low-level counters &#x431;&#x435;&#x437; application effect &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43D;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x442;&#x430;&#x43A;. &#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x440;&#x44B; &#x43E;&#x434;&#x43D;&#x43E;&#x440;&#x43E;&#x434;&#x43D;&#x44B;&#x445; GPU-&#x443;&#x437;&#x43B;&#x43E;&#x432; &#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; workload replay &#x2014; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x43B;&#x430; &#x431;&#x44B;&#x442;&#x44C; &#x434;&#x43E;&#x433;&#x430;&#x434;&#x43A;&#x43E;&#x439; &#x438; &#x441;&#x442;&#x430;&#x43B;&#x430; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x43C; change.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[PCIe AER и downtraining GPU: production-runbook для LLM inference]]></title><description><![CDATA[Практический runbook по PCIe AER и downtraining GPU: identity, LnkCap/LnkSta, replay, application gate, recovery, hardware RCA и мониторинг для LLM inference.]]></description><link>https://kingservers.com/blog/pcie-aer-gpu-downtraining-llm-runbook/</link><guid isPermaLink="false">6a974af4aff2afac25354c4b</guid><category><![CDATA[GPU]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Tue, 01 Sep 2026 22:04:50 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-hero-186b8a7d.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#symptoms">&#x41A;&#x43E;&#x433;&#x434;&#x430; &#x43F;&#x43E;&#x434;&#x43E;&#x437;&#x440;&#x435;&#x432;&#x430;&#x442;&#x44C; PCIe</a></li>
<li><a href="#identity-baseline">Identity &#x438; baseline</a></li>
<li><a href="#map-path">&#x420;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; PCIe-&#x43F;&#x443;&#x442;&#x44C;</a></li>
<li><a href="#aer-replay">AER &#x438; replay</a></li>
<li><a href="#application-gate">Application gate</a></li>
<li><a href="#triage">Triage</a></li>
<li><a href="#physical">&#x424;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x43F;&#x443;&#x442;&#x44C;</a></li>
<li><a href="#monitoring">&#x41C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433;</a></li>
<li><a href="#rollback">Recovery &#x438; rollback</a></li>
<li><a href="#decision">&#x420;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E; &#x443;&#x437;&#x43B;&#x443;</a></li>
<li><a href="#sources">&#x418;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A;&#x438;</a></li>
<li><a href="#conclusion">&#x412;&#x44B;&#x432;&#x43E;&#x434;</a></li>
</ul></div>

</div>p95 &#x443; LLM-&#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430; &#x432;&#x44B;&#x440;&#x43E;&#x441;, GPU &#x43D;&#x435; &#x443;&#x43F;&#x438;&#x440;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x438; &#x432; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x443;, &#x43D;&#x438; &#x432; power limit, &#x430; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x439; health-check &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x44B;&#x43C;. &#x412; &#x442;&#x430;&#x43A;&#x43E;&#x439; &#x441;&#x438;&#x442;&#x443;&#x430;&#x446;&#x438;&#x438; &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x43D;&#x430;&#x447;&#x430;&#x442;&#x44C; &#x43A;&#x440;&#x443;&#x442;&#x438;&#x442;&#x44C; batch size, CUDA Graphs &#x438;&#x43B;&#x438; CPU affinity &#x438; &#x43F;&#x440;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x44C; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x43D;&#x438;&#x437;&#x43A;&#x438;&#x439; &#x441;&#x43B;&#x43E;&#x439;: PCIe-&#x43B;&#x438;&#x43D;&#x438;&#x44F; &#x43C;&#x43E;&#x433;&#x43B;&#x430; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435;&#x439; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x438; &#x438;&#x43B;&#x438; &#x448;&#x438;&#x440;&#x438;&#x43D;&#x435;, &#x430; AER &#x438; replay &#x2014; &#x443;&#x436;&#x435; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43E; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x435;. &#x42D;&#x442;&#x43E;&#x442; runbook &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x43A;&#x430;&#x43A; &#x441;&#x432;&#x44F;&#x437;&#x430;&#x442;&#x44C; BDF GPU &#x441; Root Port, &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x44C; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x439; link &#x441; &#x435;&#x433;&#x43E; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44F;&#x43C;&#x438;, &#x441;&#x43E;&#x431;&#x440;&#x430;&#x442;&#x44C; AER evidence &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x440;&#x435;&#x448;&#x430;&#x442;&#x44C;, &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43B;&#x438; software rollback, retrain &#x438;&#x43B;&#x438; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x430; &#x443;&#x437;&#x43B;&#x430;. &#x412;&#x430;&#x436;&#x43D;&#x43E;: &#x440;&#x43E;&#x441;&#x442; correctable-&#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x43E;&#x432; &#x441;&#x430;&#x43C; &#x43F;&#x43E; &#x441;&#x435;&#x431;&#x435; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x44E; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x2014; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x43C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E; &#x446;&#x435;&#x43F;&#x43E;&#x447;&#x43A;&#x435; &#xAB;hardware evidence &#x2192; effective link state &#x2192; application metric&#xBB;.<div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <img src="https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-hero-186b8a7d.webp" alt="PCIe AER &#x438; downtraining GPU: production-runbook &#x434;&#x43B;&#x44F; LLM inference"><p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="symptoms">&#x41A;&#x43E;&#x433;&#x434;&#x430; &#x43F;&#x43E;&#x434;&#x43E;&#x437;&#x440;&#x435;&#x432;&#x430;&#x442;&#x44C; PCIe, &#x430; &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43D;&#x435; &#x441;&#x442;&#x43E;&#x438;&#x442;</h2>
<p>PCIe &#x440;&#x435;&#x434;&#x43A;&#x43E; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x43C; &#x43F;&#x43E;&#x434;&#x43E;&#x437;&#x440;&#x435;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x43C; &#x43F;&#x440;&#x438; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x438; LLM inference. &#x41E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442; utilization GPU, VRAM, clocks, throttling, CPU steal, NUMA &#x438; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;. &#x42D;&#x442;&#x43E; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43E;&#x43A;: &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x438;&#x43D;&#x441;&#x442;&#x432;&#x43E; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x432;&#x44B;&#x448;&#x435;. &#x41D;&#x43E; &#x435;&#x441;&#x442;&#x44C; &#x445;&#x430;&#x440;&#x430;&#x43A;&#x442;&#x435;&#x440;&#x43D;&#x430;&#x44F; &#x43A;&#x43E;&#x43C;&#x431;&#x438;&#x43D;&#x430;&#x446;&#x438;&#x44F; &#x43F;&#x440;&#x438;&#x437;&#x43D;&#x430;&#x43A;&#x43E;&#x432;, &#x43F;&#x440;&#x438; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x441;&#x442;&#x43E;&#x438;&#x442; &#x441;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; link layer: &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x442;&#x435;&#x440;&#x44F;&#x435;&#x442; throughput &#x438;&#x43B;&#x438; &#x440;&#x430;&#x441;&#x442;&#x451;&#x442; latency, GPU &#x43D;&#x435; &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D; &#x442;&#x430;&#x43A;, &#x43A;&#x430;&#x43A; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x43B;&#x43E;&#x441;&#x44C;, host-to-device transfer &#x437;&#x430;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442; &#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x43E; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438;, &#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x438; workload &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x43B;&#x438;&#x441;&#x44C;.</p><p>Disqualifier &#x437;&#x434;&#x435;&#x441;&#x44C; &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x43E;&#x439; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x44B;. &#x415;&#x441;&#x43B;&#x438; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x446;&#x435;&#x43B;&#x438;&#x43A;&#x43E;&#x43C; &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; weights &#x438; KV cache &#x43D;&#x430; GPU, &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x43D;&#x435; &#x433;&#x43E;&#x43D;&#x44F;&#x435;&#x442; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; host &#x43F;&#x43E;&#x441;&#x43B;&#x435; warmup, &#x430; p95 &#x440;&#x430;&#x441;&#x442;&#x451;&#x442; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43D;&#x430; &#x432;&#x441;&#x435;&#x445; &#x443;&#x437;&#x43B;&#x430;&#x445; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x43E; &#x43E;&#x442; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; BDF, PCIe &#x2014; &#x441;&#x43B;&#x430;&#x431;&#x44B;&#x439; &#x43A;&#x430;&#x43D;&#x434;&#x438;&#x434;&#x430;&#x442;. &#x422;&#x43E;&#x447;&#x43D;&#x43E; &#x442;&#x430;&#x43A; &#x436;&#x435; &#x43D;&#x435; &#x43D;&#x430;&#x434;&#x43E; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x44F;&#x442;&#x44C; PCIe &#x43B;&#x44E;&#x431;&#x43E;&#x439; &#x43D;&#x438;&#x437;&#x43A;&#x438;&#x439; GPU utilization: &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43E;&#x439; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; CPU preprocessing, storage, tokenizer, scheduler &#x438;&#x43B;&#x438; network backpressure.</p><p>&#x418; &#x43D;&#x430;&#x43E;&#x431;&#x43E;&#x440;&#x43E;&#x442;, &#x43D;&#x430;&#x441;&#x442;&#x43E;&#x440;&#x430;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x443;&#x437;&#x435;&#x43B;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x442; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x435;&#x439; &#x442;&#x43E;&#x433;&#x43E; &#x436;&#x435; hardware class. &#x41D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, &#x434;&#x432;&#x435; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x435; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x44B; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x44E;&#x442; &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430; &#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x435;, &#x43D;&#x43E; &#x43E;&#x434;&#x43D;&#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x438;&#x439; negotiated link width &#x438;&#x43B;&#x438; generation. &#x422;&#x430;&#x43A;&#x430;&#x44F; &#x430;&#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x44F; &#x2014; &#x443;&#x436;&#x435; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x441;&#x43B;&#x435;&#x434;: &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43D;&#x435; &#xAB;&#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x43B;&#x438; &#x432;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#xBB;, &#x430; &#xAB;&#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x43B;&#x438; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x439; effective state &#x441; &#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x43C; baseline &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x43B;&#x43E;&#x442;&#x430; &#x438; GPU&#xBB;.</p><p>&#x415;&#x441;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x43A;&#x430;&#x43A; throttling, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x438;&#x441;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x43F;&#x43E; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C;&#x443; runbook: <a href="https://kingservers.com/blog/gpu-throttling-llm-inference-dcgm-prometheus/">&#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; GPU throttling &#x447;&#x435;&#x440;&#x435;&#x437; DCGM &#x438; Prometheus</a>. &#x414;&#x43B;&#x44F; multi-GPU topology &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x438; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/pcie-acs-p2p-dma-multi-gpu-llm/">PCIe ACS &#x438; P2P DMA</a>. &#x42D;&#x442;&#x430; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x44F; &#x43D;&#x430;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E; &#x443;&#x436;&#x435;: &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43D;&#x430;&#x441; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x443;&#x44E;&#x442; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x43B;&#x438;&#x43D;&#x438;&#x438;, retrain &#x438; downtraining.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-01-0dcbb207.webp" class="kg-image" alt="PCIe AER &#x438; downtraining GPU: production-runbook &#x434;&#x43B;&#x44F; LLM inference" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-01-0dcbb207.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-01-0dcbb207.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-01-0dcbb207.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="identity-baseline">&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; identity &#x438; baseline</h2>
<p>&#x414;&#x43E; &#x43B;&#x44E;&#x431;&#x44B;&#x445; reset, retrain, &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438; &#x43A;&#x430;&#x440;&#x442;&#x44B; &#x438;&#x43B;&#x438; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x441;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; evidence bundle. &#x413;&#x43B;&#x430;&#x432;&#x43D;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x2014; &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;, &#x430; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x44B;&#x442;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x441;&#x442;&#x430;&#x43B;&#x43E; &#x43B;&#x443;&#x447;&#x448;&#x435;. &#x414;&#x43B;&#x44F; GPU &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x438;&#x434;&#x435;&#x43D;&#x442;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x442;&#x43E;&#x440;: UUID &#x438; PCI Bus ID. NVIDIA &#x43F;&#x440;&#x44F;&#x43C;&#x43E; &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x435;&#x442; &#x434;&#x43B;&#x44F; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; UUID &#x438;&#x43B;&#x438; PCI bus ID, &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441; GPU &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C;&#x441;&#x44F; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430;&#x43C;&#x438;.</p><p>&#x41C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; baseline &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x442;&#x44C; &#x43D;&#x430; &#x43F;&#x44F;&#x442;&#x44C; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;: &#x43A;&#x430;&#x43A;&#x43E;&#x439; &#x44D;&#x442;&#x43E; GPU; &#x43A;&#x430;&#x43A;&#x43E;&#x439; BDF &#x432;&#x438;&#x434;&#x438;&#x442; &#x41E;&#x421;; &#x43A;&#x430;&#x43A;&#x43E;&#x439; upstream path &#x432;&#x435;&#x434;&#x451;&#x442; &#x43A; Root Port; &#x43A;&#x430;&#x43A;&#x43E;&#x432;&#x44B; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x438; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x435; speed/width; &#x431;&#x44B;&#x43B;&#x438; &#x43B;&#x438; AER-&#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x44F; &#x434;&#x43E; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430;. &#x415;&#x441;&#x43B;&#x438; &#x443; &#x432;&#x430;&#x441; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x445; &#x443;&#x437;&#x43B;&#x43E;&#x432;, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x442;&#x435; &#x436;&#x435; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x43E;&#x439; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x44B;. &#x42D;&#x442;&#x43E; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x440;&#x430;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x438;&#x437; &#x433;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x432; diff.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">pcie-baseline.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>GPU=0
nvidia-smi -i &quot;$GPU&quot; --query-gpu=uuid,pci.bus_id,name --format=csv
nvidia-smi -i &quot;$GPU&quot; -q | sed -n &apos;/PCI/,/Clocks/p&apos;
BDF=$(nvidia-smi -i &quot;$GPU&quot; --query-gpu=pci.bus_id --format=csv,noheader | tr &apos;[:upper:]&apos; &apos;[:lower:]&apos;)
echo &quot;GPU BDF: $BDF&quot;
lspci -s &quot;$BDF&quot; -vv
lspci -t
journalctl -k -b | grep -Ei &apos;AER|PCIe Bus Error|pcieport|NVRM|Xid&apos; | tail -n 200</code></pre>
<div class="ks-canonical-code-block__caption">Baseline identity &#x438; PCIe state &#x434;&#x43E; &#x43B;&#x44E;&#x431;&#x44B;&#x445; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x439;</div>
</div>
<style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}.ks-widget .panel.on{display:block}.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style><div class="ks-widget" id="ks-chk-b4f7a21"><h3>Evidence bundle &#x441;&#x43E;&#x431;&#x440;&#x430;&#x43D;?</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> UUID &#x438; PCI Bus ID GPU</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> lspci -vv &#x434;&#x43B;&#x44F; endpoint</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> PCIe tree &#x447;&#x435;&#x440;&#x435;&#x437; lspci -t</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> kernel log &#x441; AER/NVRM/Xid</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> baseline &#x441;&#x43E; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x443;&#x437;&#x43B;&#x430;</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-b4f7a21');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><h2 id="map-path">&#x41F;&#x440;&#x438;&#x432;&#x44F;&#x436;&#x438;&#x442;&#x435; GPU &#x43A; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C;&#x443; PCIe-&#x43F;&#x443;&#x442;&#x438;</h2>
<p>&#x421;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x435; AER &#x447;&#x430;&#x441;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x43D;&#x435; &#x43E;&#x442; &#x441;&#x430;&#x43C;&#x43E;&#x433;&#x43E; GPU, &#x430; &#x43E;&#x442; Root Port &#x438;&#x43B;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x433;&#x43E; &#x44D;&#x43B;&#x435;&#x43C;&#x435;&#x43D;&#x442;&#x430; &#x438;&#x435;&#x440;&#x430;&#x440;&#x445;&#x438;&#x438;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; BDF endpoint &#x2014; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430;&#x447;&#x430;&#x43B;&#x43E;. &#x41D;&#x443;&#x436;&#x43D;&#x43E; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x44C;, &#x447;&#x435;&#x440;&#x435;&#x437; &#x43A;&#x430;&#x43A;&#x43E;&#x439; upstream bridge, riser &#x438;&#x43B;&#x438; PCIe switch &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x43A;&#x430;&#x440;&#x442;&#x430;. &#x42D;&#x442;&#x43E; &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x43E; &#x432; 2U/4U GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;&#x445;: &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x441;&#x43B;&#x43E;&#x442; &#x43D;&#x430; &#x437;&#x430;&#x434;&#x43D;&#x435;&#x439; &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x438; &#x43D;&#x435; &#x432;&#x441;&#x435;&#x433;&#x434;&#x430; &#x43E;&#x447;&#x435;&#x432;&#x438;&#x434;&#x43D;&#x43E; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x442;&#x43E;&#x43C;&#x443; Root Port, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x432;&#x44B; &#x443;&#x432;&#x438;&#x434;&#x438;&#x442;&#x435; &#x432; &#x436;&#x443;&#x440;&#x43D;&#x430;&#x43B;&#x435;.</p><p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; <code>lspci -t</code>, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x440;&#x430;&#x441;&#x43A;&#x440;&#x43E;&#x439;&#x442;&#x435; &#x43F;&#x43E;&#x434;&#x440;&#x43E;&#x431;&#x43D;&#x43E;&#x441;&#x442;&#x438; endpoint &#x438; upstream-&#x43F;&#x43E;&#x440;&#x442;&#x43E;&#x432; &#x447;&#x435;&#x440;&#x435;&#x437; <code>lspci -vv</code>. &#x412; Capability PCI Express &#x438;&#x449;&#x438;&#x442;&#x435; <code>LnkCap</code> &#x438; <code>LnkSta</code>: &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x435; &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x432;&#x435;&#x43D;&#x430;, &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x435; &#x2014; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;. &#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x43D;&#x430;&#x434;&#x43E; speed &#x438; width &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435;. Gen5 x8 &#x438; Gen4 x16 &#x2014; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x44F;, &#x438; &#x43E;&#x434;&#x438;&#x43D; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x43E;&#x43C;&#x435;&#x440; &#x43F;&#x43E;&#x43A;&#x43E;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x43D;&#x435; &#x433;&#x43E;&#x432;&#x43E;&#x440;&#x438;&#x442;, &#x447;&#x442;&#x43E; &#x43B;&#x438;&#x43D;&#x438;&#x44F; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B;&#x430;.</p><p>&#x41D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x439;&#x442;&#x435; &#x435;&#x449;&#x451; &#x43E;&#x434;&#x43D;&#x443; &#x440;&#x430;&#x441;&#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x443;&#x44E; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x443;: &#x43D;&#x435; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x439; link &#x441; &#x43C;&#x430;&#x440;&#x43A;&#x435;&#x442;&#x438;&#x43D;&#x433;&#x43E;&#x432;&#x44B;&#x43C; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x443;&#x43C;&#x43E;&#x43C; GPU. &#x41E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x432; &#x441;&#x43B;&#x43E;&#x442;&#x435;, riser, switch &#x438;&#x43B;&#x438; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x435;. &#x41F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; baseline &#x2014; &#x442;&#x43E;, &#x447;&#x442;&#x43E; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x437;&#x432;&#x435;&#x43D;&#x43E; &#x43F;&#x43E; &#x43F;&#x443;&#x442;&#x438; &#x438; &#x447;&#x442;&#x43E; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x44B;&#x439; &#x443;&#x437;&#x435;&#x43B; &#x442;&#x43E;&#x439; &#x436;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">pcie-path.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>GPU_BDF=0000:65:00.0
lspci -s &quot;$GPU_BDF&quot; -vv | grep -E &apos;LnkCap:|LnkSta:&apos;
lspci -t
# &#x417;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; -vv &#x434;&#x43B;&#x44F; upstream bridge/root port &#x438;&#x437; &#x434;&#x435;&#x440;&#x435;&#x432;&#x430;:
lspci -s 0000:64:00.0 -vv | grep -E &apos;LnkCap:|LnkSta:|AER|DevSta:&apos;</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x43E;&#x438;&#x441;&#x43A; endpoint &#x438; upstream path</div>
</div>
<div class="ks-widget" id="ks-tab-h91k2q4"><h3>&#x427;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x432; link state</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="cap">Capability</button><button type="button" class="tab-btn" data-t="state">Current state</button><button type="button" class="tab-btn" data-t="peer">Peer baseline</button></div><div class="panel on" data-p="cap">LnkCap &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x442;&#x43E;&#x43B;&#x43E;&#x43A; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x432;&#x435;&#x43D;&#x430;. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43D;&#x438;&#x435;, &#x447;&#x442;&#x43E; &#x432;&#x441;&#x44F; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C; &#x43D;&#x430; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x443;&#x43C;&#x435; GPU.</div><div class="panel" data-p="state">LnkSta &#x2014; negotiated speed &#x438; width &#x441;&#x435;&#x439;&#x447;&#x430;&#x441;. &#x418;&#x449;&#x438;&#x442;&#x435; &#x440;&#x430;&#x441;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x441; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x43C; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;&#x43C; &#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438;.</div><div class="panel" data-p="peer">&#x417;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x44B;&#x439; &#x443;&#x437;&#x435;&#x43B; &#x442;&#x43E;&#x439; &#x436;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x435;&#x435; datasheet: &#x43E;&#x43D; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; baseline &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B;, riser &#x438; BIOS.</div><script>(function(){var r=document.getElementById('ks-tab-h91k2q4');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-02-868bd534.webp" class="kg-image" alt="PCIe AER &#x438; downtraining GPU: production-runbook &#x434;&#x43B;&#x44F; LLM inference" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-02-868bd534.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-02-868bd534.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-02-868bd534.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="aer-replay">&#x41A;&#x430;&#x43A; &#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; AER &#x438; replay &#x431;&#x435;&#x437; &#x43B;&#x43E;&#x436;&#x43D;&#x44B;&#x445; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x43E;&#x432;</h2>
<p>Linux AER driver &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x446;&#x438;&#x44E; &#x43E;&#x431; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430;&#x445; PCIe, &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x430;&#x435;&#x442; &#x435;&#x451; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44E; &#x438; &#x443;&#x447;&#x430;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x432; recovery. &#x412; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; &#x44F;&#x434;&#x440;&#x430; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x434;&#x435;&#x43B;&#x44F;&#x442;&#x441;&#x44F; &#x43D;&#x430; correctable &#x438; uncorrectable. Correctable &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x43E;&#x442;&#x43E;&#x43A;&#x43E;&#x43B;&#x43E;&#x43C; &#x431;&#x435;&#x437; &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x43E;&#x43D;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438;; uncorrectable &#x443;&#x436;&#x435; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x437;&#x430;&#x442;&#x440;&#x430;&#x433;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x442;&#x440;&#x430;&#x43D;&#x437;&#x430;&#x43A;&#x446;&#x438;&#x44E; &#x438;&#x43B;&#x438; &#x43D;&#x430;&#x434;&#x451;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x441;&#x430;&#x43C;&#x43E;&#x439; &#x43B;&#x438;&#x43D;&#x438;&#x438;. &#x42D;&#x442;&#x43E; &#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x432;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430;: &#x43D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x435; correctable warning &#x43D;&#x435; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#xAB;GPU &#x441;&#x43B;&#x43E;&#x43C;&#x430;&#x43D;&#xBB;, &#x43D;&#x43E; &#x441;&#x435;&#x440;&#x438;&#x44F; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x439; &#x2014; &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x438;&#x439; &#x442;&#x440;&#x438;&#x433;&#x433;&#x435;&#x440; &#x434;&#x43B;&#x44F; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43B;&#x44F;&#x446;&#x438;&#x438;.</p><p>AER &#x432; Linux &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442; &#x447;&#x435;&#x440;&#x435;&#x437; Root Port service driver &#x438; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; &#x442;&#x43E;&#x433;&#x43E;, &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x43B;&#x430; &#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x448;&#x438;&#x432;&#x43A;&#x430; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; AER &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x43E;&#x439; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; ACPI _OSC. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x439; &#x432; <code>dmesg</code> &#x43D;&#x435; &#x432;&#x441;&#x435;&#x433;&#x434;&#x430; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A; &#x43D;&#x430; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x43C; &#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435;. &#x41D;&#x430; &#x43E;&#x434;&#x43D;&#x438;&#x445; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x445; &#x442;&#x435;&#x43B;&#x435;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x44F; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x439; &#x432; Linux, &#x43D;&#x430; &#x434;&#x440;&#x443;&#x433;&#x438;&#x445; &#x447;&#x430;&#x441;&#x442;&#x44C; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x432; firmware/BMC. &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x44D;&#x442;&#x443; &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B; &#x434;&#x43E; &#x442;&#x43E;&#x433;&#x43E;, &#x43A;&#x430;&#x43A; &#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x44C; &#x430;&#x43B;&#x435;&#x440;&#x442; &#xAB;AER=0 &#x2014; &#x432;&#x441;&#x451; &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x43E;&#xBB;.</p><p>&#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B; &#x2014; replay. PCIe &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x43E;&#x439; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x447;&#x438;, &#x438; &#x440;&#x43E;&#x441;&#x442; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x435;&#x433;&#x43E; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x442;&#x43E;&#x43A;&#x43E;&#x43B;&#x443; &#x43F;&#x440;&#x438;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x442;&#x440;&#x430;&#x43D;&#x437;&#x430;&#x43A;&#x446;&#x438;&#x438;. &#x41D;&#x43E; &#x43E;&#x43F;&#x44F;&#x442;&#x44C; &#x436;&#x435;: &#x430;&#x431;&#x441;&#x43E;&#x43B;&#x44E;&#x442;&#x43D;&#x43E;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x43E; &#x431;&#x435;&#x437; &#x43E;&#x43A;&#x43D;&#x430; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x431;&#x435;&#x437; baseline &#x43C;&#x430;&#x43B;&#x43E; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;. &#x421;&#x43D;&#x438;&#x43C;&#x430;&#x439;&#x442;&#x435; delta &#x437;&#x430; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x432;&#x430;&#x43B; &#x43F;&#x43E;&#x434; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x439; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x43E;&#x439; &#x438; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x441; p95/throughput &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;.</p><p>&#x412; NVIDIA-&#x441;&#x442;&#x435;&#x43A;&#x435; &#x447;&#x430;&#x441;&#x442;&#x44C; PCIe-&#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x435;&#x439; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x442;&#x44C; &#x447;&#x435;&#x440;&#x435;&#x437; NVML/DCGM; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x43B;&#x433;&#x43E;&#x436;&#x438;&#x432;&#x443;&#x449;&#x435;&#x439; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x43F;&#x440;&#x435;&#x434;&#x43F;&#x43E;&#x447;&#x442;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x435;&#x435; NVML/DCGM, &#x447;&#x435;&#x43C; &#x43F;&#x430;&#x440;&#x441;&#x438;&#x43D;&#x433; &#x447;&#x435;&#x43B;&#x43E;&#x432;&#x435;&#x43A;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x435;&#x43C;&#x43E;&#x433;&#x43E; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x430; <code>nvidia-smi</code>, &#x43F;&#x43E;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x443; NVIDIA &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442; NVSMI &#x43D;&#x435; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x443;&#x44E; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">aer-window.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>START=$(date -Is)
echo &quot;start=$START&quot;
# &#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; canary workload
sleep 60
journalctl -k --since &quot;$START&quot; | grep -Ei &apos;AER|PCIe Bus Error|pcieport|NVRM|Xid&apos;
# &#x41D;&#x430; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x445; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430;&#x445; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; sysfs AER counters &#x434;&#x43B;&#x44F; endpoint/upstream port:
find /sys/bus/pci/devices/0000:65:00.0 -maxdepth 1 -type f -name &apos;aer_*&apos; -print -exec cat {} \;</code></pre>
<div class="ks-canonical-code-block__caption">&#x421;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; AER evidence &#x432; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x43C; &#x43E;&#x43A;&#x43D;&#x435;</div>
</div>
<div class="ks-widget" id="ks-sel-x3m8q7v"><h3>&#x41D;&#x430;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x435;&#x440;&#x44C;&#x451;&#x437;&#x435;&#x43D; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B;?</h3><label>&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x435;</label><select data-s><option value="single">&#x415;&#x434;&#x438;&#x43D;&#x438;&#x447;&#x43D;&#x44B;&#x439; correctable warning</option><option value="delta">&#x421;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A; &#x440;&#x430;&#x441;&#x442;&#x451;&#x442; &#x43F;&#x43E;&#x434; canary</option><option value="down">&#x41E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x441;&#x43D;&#x438;&#x437;&#x438;&#x43B;&#x438;&#x441;&#x44C; speed/width</option><option value="fatal">Uncorrectable/fatal &#x438;&#x43B;&#x438; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E; &#x442;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x441;&#x44F;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-x3m8q7v');if(!r)return;var m={"single":"Не делайте вывод по одному событию: сохраните baseline и проверьте повторяемость.","delta":"Коррелируйте delta с нагрузкой и application metric; проверьте upstream path.","down":"Сильный hardware-path сигнал: зафиксируйте evidence до retrain/reset.","fatal":"Остановите canary и переходите к recovery/escalation; не маскируйте проблему тюнингом приложения."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-03-e1cf9300.webp" class="kg-image" alt="PCIe AER &#x438; downtraining GPU: production-runbook &#x434;&#x43B;&#x44F; LLM inference" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-03-e1cf9300.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-03-e1cf9300.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-03-e1cf9300.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="application-gate">&#x414;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x432;&#x43B;&#x438;&#x44F;&#x43D;&#x438;&#x435; &#x43D;&#x430; LLM, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; PCIe-&#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;</h2>
<p>&#x414;&#x430;&#x436;&#x435; &#x435;&#x441;&#x43B;&#x438; &#x432;&#x44B; &#x43D;&#x430;&#x448;&#x43B;&#x438; AER &#x438; current link &#x43D;&#x438;&#x436;&#x435; baseline, &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x434;&#x43B;&#x44F; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x440;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x437;&#x43D;&#x430;&#x447;&#x438;&#x43C;&#x43E;&#x433;&#x43E; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x430;. Production-&#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441; &#x437;&#x432;&#x443;&#x447;&#x438;&#x442; &#x43D;&#x435; &#xAB;&#x435;&#x441;&#x442;&#x44C; &#x43B;&#x438; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; PCIe&#xBB;, &#x430; &#xAB;&#x43C;&#x435;&#x448;&#x430;&#x435;&#x442; &#x43B;&#x438; &#x43E;&#x43D;&#x430; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;&#x439; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x435;&#xBB;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; infrastructure gate &#x438; application gate.</p><p>Infrastructure gate &#x441;&#x447;&#x438;&#x442;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x43E;&#x439;&#x434;&#x435;&#x43D;&#x43D;&#x44B;&#x43C;, &#x43A;&#x43E;&#x433;&#x434;&#x430; identity &#x43E;&#x434;&#x43D;&#x43E;&#x437;&#x43D;&#x430;&#x447;&#x43D;&#x430;, topology &#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x430;, current link &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x435;&#x43D; &#x441; capability &#x438; peer baseline, &#x430; AER/replay &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x432; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x43C; &#x43E;&#x43A;&#x43D;&#x435;. Application gate &#x2014; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;: &#x43E;&#x434;&#x438;&#x43D; &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; prompt set, &#x442;&#x435; &#x436;&#x435; model revision, batch/concurrency, CPU affinity, tokenizer path &#x438; network path. &#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; request throughput &#x438; latency, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; GPU utilization.</p><p>&#x41E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x430;&#x43A;&#x43A;&#x443;&#x440;&#x430;&#x442;&#x43D;&#x43E; &#x441; prefilling &#x438; streaming. Workload, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x447;&#x430;&#x441;&#x442;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x451;&#x442; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x438;&#x435; host buffers, &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435; &#x43F;&#x440;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x442;&#x44C; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x44E; PCIe, &#x447;&#x435;&#x43C; steady-state decode &#x441; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x43C;&#x438; &#x443;&#x436;&#x435; &#x432; VRAM. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; canary &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x440;&#x435;&#x434;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; traffic mix. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x432;&#x438;&#x434;&#x43D;&#x430; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432; synthetic host-to-device copy benchmark, &#x430; production SLO &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F;, &#x432;&#x44B; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43B;&#x438; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;, &#x43D;&#x43E; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43B;&#x438; &#x432;&#x43B;&#x438;&#x44F;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;.</p><p>&#x414;&#x43B;&#x44F; NUMA-&#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43E;&#x43A; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; runbook <a href="https://kingservers.com/blog/p/251424d4-d278-473d-a1a5-ec6bd9ace729/">NUMA-locality &#x434;&#x43B;&#x44F; GPU-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430;</a>: remote memory &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x438;&#x43C;&#x438;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x447;&#x430;&#x441;&#x442;&#x44C; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;&#x43E;&#x432;, &#x43D;&#x43E; &#x44D;&#x442;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x441;&#x43B;&#x43E;&#x439;.</p>
<div class="ks-widget" id="ks-chk-r5t2n8c"><h3>Application gate &#x433;&#x43E;&#x442;&#x43E;&#x432;?</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x41E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x430;&#x44F; model revision</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x41E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x435; batch &#x438; concurrency</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x44B; p50/p95 &#x438; throughput</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x415;&#x441;&#x442;&#x44C; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x44B;&#x439; peer &#x438;&#x43B;&#x438; pre-change baseline</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> Infrastructure evidence &#x437;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43D; &#x432; &#x442;&#x43E;&#x43C; &#x436;&#x435; &#x43E;&#x43A;&#x43D;&#x435;</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-r5t2n8c');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><h2 id="triage">Triage: software, retrain &#x438;&#x43B;&#x438; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x43F;&#x443;&#x442;&#x44C;</h2>
<p>&#x41A;&#x43E;&#x433;&#x434;&#x430; evidence &#x441;&#x43E;&#x431;&#x440;&#x430;&#x43D;, &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x442;&#x44C; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x435;. &#x415;&#x441;&#x43B;&#x438; link state &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; baseline, AER &#x43D;&#x435; &#x440;&#x430;&#x441;&#x442;&#x451;&#x442;, &#x430; application gate &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;, &#x43E;&#x441;&#x442;&#x430;&#x432;&#x430;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x43D;&#x430; software path: &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;, runtime, NUMA, CPU, storage, network &#x438;&#x43B;&#x438; &#x441;&#x430;&#x43C;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;. &#x41D;&#x435; &#x43D;&#x430;&#x434;&#x43E; &#xAB;&#x43D;&#x430; &#x432;&#x441;&#x44F;&#x43A;&#x438;&#x439; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#xBB; &#x442;&#x440;&#x43E;&#x433;&#x430;&#x442;&#x44C; PCIe reset.</p><p>&#x415;&#x441;&#x43B;&#x438; current speed/width &#x43D;&#x438;&#x436;&#x435; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x433;&#x43E; &#x438; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x43E;&#x441;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; boot &#x438;&#x43B;&#x438; maintenance, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x438;&#x449;&#x438;&#x442;&#x435; &#x43D;&#x430;&#x438;&#x43C;&#x435;&#x43D;&#x435;&#x435; &#x440;&#x430;&#x437;&#x440;&#x443;&#x448;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x44C; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x443;. &#x414;&#x43B;&#x44F; production-&#x443;&#x437;&#x43B;&#x430; &#x44D;&#x442;&#x43E; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; drain workload, &#x444;&#x438;&#x43A;&#x441;&#x430;&#x446;&#x438;&#x44F; evidence, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x44B;&#x439; reboot &#x432; maintenance window. &#x420;&#x443;&#x447;&#x43D;&#x43E;&#x439; reset bridge &#x438;&#x43B;&#x438; endpoint &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x437;&#x430;&#x442;&#x440;&#x43E;&#x43D;&#x443;&#x442;&#x44C; &#x434;&#x440;&#x443;&#x433;&#x438;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430; &#x432; &#x442;&#x43E;&#x439; &#x436;&#x435; &#x438;&#x435;&#x440;&#x430;&#x440;&#x445;&#x438;&#x438;; Linux AER recovery &#x434;&#x43B;&#x44F; &#x441;&#x435;&#x440;&#x44C;&#x451;&#x437;&#x43D;&#x44B;&#x445; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A; &#x442;&#x43E;&#x436;&#x435; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x442;&#x44C; reset &#x432;&#x44B;&#x448;&#x435; originator. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; topology &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x431;&#x44B;&#x442;&#x44C; &#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x430; &#x434;&#x43E; &#x43B;&#x44E;&#x431;&#x43E;&#x433;&#x43E; &#x432;&#x43E;&#x437;&#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x44F;.</p><p>&#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; reboot/retrain &#x43B;&#x438;&#x43D;&#x438;&#x44F; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43A; baseline &#x438; application metric &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x44D;&#x442;&#x43E; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43B;&#x44F;&#x446;&#x438;&#x44F;, &#x43D;&#x43E; &#x435;&#x449;&#x451; &#x43D;&#x435; &#x43F;&#x43E;&#x432;&#x43E;&#x434; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;. &#x41D;&#x443;&#x436;&#x435;&#x43D; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;: &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; canary &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435;, &#x43D;&#x435; &#x440;&#x430;&#x441;&#x442;&#x443;&#x442; &#x43B;&#x438; AER/replay &#x441;&#x43D;&#x43E;&#x432;&#x430;. &#x412;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x44E;&#x449;&#x430;&#x44F;&#x441;&#x44F; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x44F; &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43D;&#x430; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x43F;&#x443;&#x442;&#x44C;, signal integrity, riser, &#x441;&#x43B;&#x43E;&#x442;, &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x435;, board &#x438;&#x43B;&#x438; firmware/BIOS interaction.</p><p>&#x415;&#x441;&#x43B;&#x438; &#x436;&#x435; link &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x435;&#x43D; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x445;&#x43E;&#x43B;&#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430;, &#x43D;&#x43E; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x438;&#x440;&#x443;&#x435;&#x442; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x434; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x439; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x43E;&#x439;, &#x440;&#x430;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x435;&#x435;: &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43B;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x443; &#x43F;&#x43B;&#x430;&#x442;&#x44B;, &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x435;, BMC SEL, AER delta &#x438; workload. &#x41D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x44D;&#x442;&#x43E;&#x442; &#x430;&#x43D;&#x430;&#x43B;&#x438;&#x437; &#x441;&#x43D;&#x438;&#x436;&#x435;&#x43D;&#x438;&#x435;&#x43C; PCIe generation &#xAB;&#x434;&#x43B;&#x44F; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#xBB; &#x431;&#x435;&#x437; &#x444;&#x438;&#x43A;&#x441;&#x430;&#x446;&#x438;&#x438; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B;: &#x442;&#x430;&#x43A;&#x43E;&#x439; workaround &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44C; &#x434;&#x435;&#x444;&#x435;&#x43A;&#x442; &#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x443;&#x440;&#x435;&#x437;&#x430;&#x442;&#x44C; capacity.</p>
<div class="ks-widget" id="ks-sel-p7d4z2a"><h3>&#x421;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; &#x448;&#x430;&#x433;</h3><label>&#x421;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435; baseline</label><select data-s><option value="normal">Link &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x441; baseline</option><option value="low">Link &#x43D;&#x438;&#x436;&#x435; baseline, AER &#x43D;&#x435; &#x440;&#x430;&#x441;&#x442;&#x451;&#x442;</option><option value="err">Link &#x43D;&#x438;&#x436;&#x435; baseline &#x438; AER/replay &#x440;&#x430;&#x441;&#x442;&#x443;&#x442;</option><option value="return">&#x41F;&#x43E;&#x441;&#x43B;&#x435; reboot &#x43D;&#x43E;&#x440;&#x43C;&#x430;, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-p7d4z2a');if(!r)return;var m={"normal":"Продолжайте software/application triage; PCIe пока не главный подозреваемый.","low":"Проверьте BIOS/platform limits и peer node; не путайте допустимую конфигурацию с downtraining.","err":"Drain canary, сохраните evidence и планируйте контролируемый recovery с учётом upstream hierarchy.","return":"Эскалируйте hardware path: riser/slot/board/power/firmware. Workaround не заменяет RCA."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-04-397f09d8.webp" class="kg-image" alt="PCIe AER &#x438; downtraining GPU: production-runbook &#x434;&#x43B;&#x44F; LLM inference" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-04-397f09d8.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-04-397f09d8.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-04-397f09d8.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="physical">&#x41A;&#x43E;&#x433;&#x434;&#x430; &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x44C; &#x43A; riser, &#x441;&#x43B;&#x43E;&#x442;&#x443; &#x438; &#x43F;&#x43B;&#x430;&#x442;&#x435;</h2>
<p>&#x424;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x443;&#x44E; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x443; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; software evidence, &#x438;&#x43D;&#x430;&#x447;&#x435; &#x43E;&#x447;&#x435;&#x43D;&#x44C; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x43E; &#x43F;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#xAB;&#x440;&#x435;&#x43C;&#x43E;&#x43D;&#x442; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x43E;&#x43C; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438;&#xBB;. &#x41D;&#x430; &#x432;&#x44B;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; &#x438; &#x441;&#x43D;&#x44F;&#x442;&#x43E;&#x43C; &#x441; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x43F;&#x43E;&#x441;&#x430;&#x434;&#x43A;&#x443; GPU &#x438; riser, &#x43A;&#x440;&#x435;&#x43F;&#x451;&#x436;, &#x440;&#x430;&#x437;&#x44A;&#x451;&#x43C;&#x44B; &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x44F;, &#x441;&#x43B;&#x435;&#x434;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x433;&#x440;&#x435;&#x432;&#x430; &#x438; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; riser/slot &#x441;&#x43F;&#x435;&#x446;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x438; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B;. &#x41D;&#x430; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430;&#x445; &#x441; PCIe switch &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x435;&#x433;&#x43E; firmware &#x438; health &#x432; evidence bundle.</p><p>&#x41B;&#x443;&#x447;&#x448;&#x438;&#x439; hardware experiment &#x2014; &#x43E;&#x434;&#x438;&#x43D; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x44B;&#x439; swap &#x437;&#x430; &#x440;&#x430;&#x437;. &#x41F;&#x435;&#x440;&#x435;&#x43D;&#x435;&#x441;&#x43B;&#x438; GPU &#x432; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x437;&#x430;&#x432;&#x435;&#x434;&#x43E;&#x43C;&#x43E; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43D;&#x44B;&#x439; slot: &#x435;&#x441;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x435;&#x442; &#x437;&#x430; &#x43A;&#x430;&#x440;&#x442;&#x43E;&#x439;, &#x43F;&#x43E;&#x434;&#x43E;&#x437;&#x440;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x43C;&#x435;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43A; endpoint. &#x41E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x43B;&#x438; GPU, &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438; riser: &#x435;&#x441;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x438;&#x441;&#x447;&#x435;&#x437;&#x43B;&#x430;, &#x443; &#x432;&#x430;&#x441; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x438;&#x437;&#x43E;&#x432;&#x430;&#x43D; &#x44D;&#x43B;&#x435;&#x43C;&#x435;&#x43D;&#x442; &#x43F;&#x443;&#x442;&#x438;. &#x41D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x43A;&#x430;&#x440;&#x442;&#x443;, &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; riser, &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; BIOS &#x438; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;, &#x430; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x43E;&#x431;&#x44A;&#x44F;&#x432;&#x438;&#x442;&#x44C; RCA &#x2014; &#x432;&#x44B; &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x435; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C;.</p><p>&#x414;&#x43B;&#x44F; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; swap &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x439;&#x442;&#x435; stable identity &#x43D;&#x43E;&#x432;&#x43E;&#x439; &#x43A;&#x43E;&#x43C;&#x431;&#x438;&#x43D;&#x430;&#x446;&#x438;&#x438;: serial/UUID GPU, BDF, slot label &#x438;&#x437; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;, upstream Root Port, BIOS version. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x442;&#x435; &#x436;&#x435; &#x434;&#x432;&#x430; gate: infrastructure &#x438; application. &#x421;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x44F; &#x432;&#x430;&#x436;&#x43D;&#x430; &#x2014; &#x43E;&#x434;&#x43D;&#x438; &#x438; &#x442;&#x435; &#x436;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x434;&#x43E; &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x44E;&#x442; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x438;&#x442;&#x44C; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x43E;&#x442; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x43E;&#x433;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;.</p><p>&#x415;&#x441;&#x43B;&#x438; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440; &#x430;&#x440;&#x435;&#x43D;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x438;&#x43B;&#x438; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x449;&#x451;&#x43D; &#x443; &#x43F;&#x440;&#x43E;&#x432;&#x430;&#x439;&#x434;&#x435;&#x440;&#x430;, &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x446;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; ownership &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x439;: &#x43D;&#x443;&#x436;&#x43D;&#x430; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C; drain &#x443;&#x437;&#x43B;&#x430;, &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; BMC/firmware evidence, &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x44C; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x443; riser/slot &#x438; &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x44E;&#x44E; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E;. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43D;&#x438;&#x435; &#xAB;dedicated &#x431;&#x44B;&#x441;&#x442;&#x440;&#x435;&#x435;&#xBB;; &#x44D;&#x442;&#x43E; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x438;, &#x431;&#x435;&#x437; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x442;&#x430;&#x43A;&#x43E;&#x439; RCA &#x447;&#x430;&#x441;&#x442;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x435;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-05-2ec4423f.webp" class="kg-image" alt="PCIe AER &#x438; downtraining GPU: production-runbook &#x434;&#x43B;&#x44F; LLM inference" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-05-2ec4423f.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-05-2ec4423f.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-05-2ec4423f.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="monitoring">&#x427;&#x442;&#x43E; &#x432;&#x44B;&#x43D;&#x435;&#x441;&#x442;&#x438; &#x432; &#x43F;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x43D;&#x44B;&#x439; &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433;</h2>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430; &#x43D;&#x435; &#x441;&#x442;&#x43E;&#x438;&#x442; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x442;&#x44C; &#x432;&#x441;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x438; &#x432; paging alerts. &#x425;&#x43E;&#x440;&#x43E;&#x448;&#x438;&#x439; &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; PCIe &#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x441;&#x44F; &#x441;&#x43B;&#x43E;&#x44F;&#x43C;&#x438;. &#x41F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x441;&#x43B;&#x43E;&#x439; &#x2014; inventory: GPU UUID/BDF, &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; speed/width &#x438; upstream path. &#x412;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x2014; error telemetry: AER &#x438; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x435; PCIe counters. &#x422;&#x440;&#x435;&#x442;&#x438;&#x439; &#x2014; application SLO. &#x421;&#x440;&#x430;&#x431;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x43A;&#x43E;&#x43C;&#x431;&#x438;&#x43D;&#x430;&#x446;&#x438;&#x44F;, &#x430; &#x43D;&#x435; &#x43B;&#x44E;&#x431;&#x43E;&#x439; &#x43E;&#x434;&#x438;&#x43D;&#x43E;&#x447;&#x43D;&#x44B;&#x439; correctable event.</p><p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; pattern: alert &#x432;&#x44B;&#x441;&#x43E;&#x43A;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x438;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x442;&#x430;, &#x435;&#x441;&#x43B;&#x438; current link &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x442; expected baseline &#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x438;&#x440;&#x443;&#x435;&#x442; application metric. &#x421;&#x440;&#x435;&#x434;&#x43D;&#x438;&#x439; &#x43F;&#x440;&#x438;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x442; &#x2014; sustained &#x440;&#x43E;&#x441;&#x442; error/replay delta &#x43D;&#x430; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x43C; BDF &#x431;&#x435;&#x437; SLO impact; &#x44D;&#x442;&#x43E; &#x43F;&#x43E;&#x432;&#x43E;&#x434; &#x434;&#x43B;&#x44F; &#x43F;&#x43B;&#x430;&#x43D;&#x43E;&#x432;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;. &#x415;&#x434;&#x438;&#x43D;&#x438;&#x447;&#x43D;&#x44B;&#x439; correctable warning &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x43A;&#x430;&#x43A; event &#x434;&#x43B;&#x44F; &#x440;&#x430;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F;, &#x430; &#x43D;&#x435; &#x431;&#x443;&#x434;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x443; &#x43D;&#x43E;&#x447;&#x44C;&#x44E;.</p><p>&#x414;&#x43B;&#x44F; &#x441;&#x43A;&#x440;&#x438;&#x43F;&#x442;&#x43E;&#x432; &#x438; exporter-&#x43B;&#x43E;&#x433;&#x438;&#x43A;&#x438; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43E;&#x43F;&#x438;&#x440;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; NVML/DCGM &#x438;&#x43B;&#x438; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; structured interface, &#x430; &#x43D;&#x435; &#x43D;&#x430; &#x441;&#x432;&#x43E;&#x431;&#x43E;&#x434;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x43A;&#x441;&#x442; <code>nvidia-smi -q</code>. NVSMI &#x443;&#x434;&#x43E;&#x431;&#x435;&#x43D; &#x434;&#x43B;&#x44F; &#x440;&#x443;&#x447;&#x43D;&#x43E;&#x439; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x438;, &#x43D;&#x43E; NVIDIA &#x43D;&#x435; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x443;&#x44E; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x430;. &#x414;&#x43B;&#x44F; AER Linux &#x43F;&#x440;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x441;&#x442;&#x430;&#x442;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x443; &#x432; sysfs &#x43D;&#x430; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x445; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430;&#x445;; &#x443;&#x447;&#x438;&#x442;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435;, &#x447;&#x442;&#x43E; firmware ownership &#x447;&#x435;&#x440;&#x435;&#x437; ACPI _OSC &#x432;&#x43B;&#x438;&#x44F;&#x435;&#x442; &#x43D;&#x430; &#x442;&#x43E;, &#x447;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x443;&#x432;&#x438;&#x434;&#x438;&#x442; &#x41E;&#x421;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">pcie-monitor-snapshot.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>GPU=0
STAMP=$(date -Is)
echo &quot;timestamp=$STAMP&quot;
nvidia-smi -i &quot;$GPU&quot; --query-gpu=uuid,pci.bus_id,utilization.gpu,power.draw,temperature.gpu --format=csv,noheader
BDF=$(nvidia-smi -i &quot;$GPU&quot; --query-gpu=pci.bus_id --format=csv,noheader | tr &apos;[:upper:]&apos; &apos;[:lower:]&apos;)
lspci -s &quot;$BDF&quot; -vv | grep -E &apos;LnkCap:|LnkSta:&apos;
for f in /sys/bus/pci/devices/${BDF}/aer_*; do [ -r &quot;$f&quot; ] &amp;&amp; printf &apos;%s=&apos; &quot;$f&quot; &amp;&amp; cat &quot;$f&quot;; done</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x440;&#x438;&#x43C;&#x435;&#x440; snapshot &#x434;&#x43B;&#x44F; diff, &#x430; &#x43D;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x44B;&#x439; exporter</div>
</div>
<div class="ks-widget" id="ks-tab-q2v6m1e"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x439; alert &#x43D;&#x443;&#x436;&#x435;&#x43D;</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="page">Page</button><button type="button" class="tab-btn" data-t="ticket">Ticket</button><button type="button" class="tab-btn" data-t="event">Event</button></div><div class="panel on" data-p="page">Link &#x43D;&#x438;&#x436;&#x435; expected baseline + &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x44F; SLO &#x438;&#x43B;&#x438; uncorrectable/fatal event.</div><div class="panel" data-p="ticket">&#x423;&#x441;&#x442;&#x43E;&#x439;&#x447;&#x438;&#x432;&#x430;&#x44F; delta AER/replay &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; BDF &#x431;&#x435;&#x437; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; SLO impact &#x2014; &#x43F;&#x43B;&#x430;&#x43D;&#x43E;&#x432;&#x430;&#x44F; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x430;.</div><div class="panel" data-p="event">&#x415;&#x434;&#x438;&#x43D;&#x438;&#x447;&#x43D;&#x44B;&#x439; correctable &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B; &#x431;&#x435;&#x437; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; effective state &#x2014; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x44C; &#x434;&#x43B;&#x44F; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43B;&#x44F;&#x446;&#x438;&#x438;, &#x43D;&#x435; &#x431;&#x443;&#x434;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x443;.</div><script>(function(){var r=document.getElementById('ks-tab-q2v6m1e');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><h2 id="rollback">Recovery &#x438; rollback: &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;</h2>
<p>Recovery &#x441;&#x447;&#x438;&#x442;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x43C; &#x43D;&#x435; &#x442;&#x43E;&#x433;&#x434;&#x430;, &#x43A;&#x43E;&#x433;&#x434;&#x430; GPU &#x441;&#x43D;&#x43E;&#x432;&#x430; &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x441;&#x44F; &#x432; <code>nvidia-smi</code>. &#x41D;&#x443;&#x436;&#x43D;&#x43E; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; &#x432;&#x441;&#x44E; &#x446;&#x435;&#x43F;&#x43E;&#x447;&#x43A;&#x443; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; identity: &#x442;&#x43E;&#x442; &#x43B;&#x438; endpoint &#x438; &#x442;&#x43E;&#x442; &#x43B;&#x438; slot. &#x417;&#x430;&#x442;&#x435;&#x43C; effective link state: speed/width &#x432;&#x435;&#x440;&#x43D;&#x443;&#x43B;&#x438;&#x441;&#x44C; &#x43A; expected baseline. &#x41F;&#x43E;&#x442;&#x43E;&#x43C; error window: AER/replay &#x43D;&#x435; &#x434;&#x435;&#x43C;&#x43E;&#x43D;&#x441;&#x442;&#x440;&#x438;&#x440;&#x443;&#x44E;&#x442; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x439; &#x43F;&#x430;&#x442;&#x442;&#x435;&#x440;&#x43D;. &#x418; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; application canary &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; SLO.</p><p>Rollback &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x451;&#x43D;. &#x415;&#x441;&#x43B;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x43B;&#x43E; BIOS option, firmware, &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x443; riser &#x438;&#x43B;&#x438; &#x43D;&#x43E;&#x432;&#x44B;&#x439; driver, &#x432;&#x44B; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x437;&#x43D;&#x430;&#x442;&#x44C;, &#x43A;&#x430;&#x43A; &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C;&#x441;&#x44F; &#x43A; &#x43F;&#x440;&#x435;&#x434;&#x44B;&#x434;&#x443;&#x449;&#x435;&#x439; &#x43A;&#x43E;&#x43C;&#x431;&#x438;&#x43D;&#x430;&#x446;&#x438;&#x438;. &#x41E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x44B;, &#x433;&#x434;&#x435; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x439; &#x434;&#x430;&#x44E;&#x442; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;&#x435; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x435;: &#x431;&#x435;&#x437; rollback &#x432;&#x44B; &#x43D;&#x435; &#x43F;&#x43E;&#x439;&#x43C;&#x451;&#x442;&#x435;, &#x447;&#x442;&#x43E; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x432;&#x43B;&#x438;&#x44F;&#x43B;&#x43E; &#x43D;&#x430; &#x43B;&#x438;&#x43D;&#x438;&#x44E;.</p><p>&#x41F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442; &#x2014; &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x44E;&#x44E; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E; &#x43D;&#x430; canary, &#x435;&#x441;&#x43B;&#x438; &#x44D;&#x442;&#x43E; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;, &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C;, &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43B;&#x438; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;. &#x414;&#x43B;&#x44F; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x435;&#x444;&#x435;&#x43A;&#x442;&#x430; &#x442;&#x430;&#x43A;&#x43E;&#x439; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442; &#x43D;&#x435; &#x432;&#x441;&#x435;&#x433;&#x434;&#x430; &#x440;&#x430;&#x437;&#x443;&#x43C;&#x435;&#x43D;: &#x43D;&#x435; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x442;&#x435;&#x43D;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; fatal &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x440;&#x430;&#x434;&#x438; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x43E;&#x433;&#x43E; RCA. &#x412; &#x44D;&#x442;&#x43E;&#x43C; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x435; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x443;&#x441;&#x442;&#x43E;&#x439;&#x447;&#x438;&#x432;&#x43E;&#x439; &#x441;&#x432;&#x44F;&#x437;&#x438; &#xAB;&#x434;&#x435;&#x444;&#x435;&#x43A;&#x442;&#x43D;&#x44B;&#x439; &#x44D;&#x43B;&#x435;&#x43C;&#x435;&#x43D;&#x442; &#x2192; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430;&#xBB; &#x438; &#xAB;&#x437;&#x430;&#x43C;&#x435;&#x43D;&#x430; &#x44D;&#x43B;&#x435;&#x43C;&#x435;&#x43D;&#x442;&#x430; &#x2192; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; baseline&#xBB; &#x43F;&#x440;&#x438; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x43C; workload.</p><p>&#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; ownership. &#x41A;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;&#x43E; drain &#x443;&#x437;&#x435;&#x43B;, &#x43A;&#x442;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; BIOS, &#x43A;&#x442;&#x43E; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442; &#x441; &#x436;&#x435;&#x43B;&#x435;&#x437;&#x43E;&#x43C;, &#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442; SLO &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430;. Hardware runbook &#x431;&#x435;&#x437; owner &#x447;&#x430;&#x441;&#x442;&#x43E; &#x437;&#x430;&#x432;&#x438;&#x441;&#x430;&#x435;&#x442; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x432; &#x43C;&#x43E;&#x43C;&#x435;&#x43D;&#x442;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x430; &#x443;&#x436;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43B;&#x430; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443;, &#x43D;&#x43E; &#x43D;&#x438;&#x43A;&#x442;&#x43E; &#x43D;&#x435; &#x445;&#x43E;&#x447;&#x435;&#x442; &#x431;&#x440;&#x430;&#x442;&#x44C; &#x440;&#x438;&#x441;&#x43A; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x433;&#x43E; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x44F;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-06-3a21f2d8.webp" class="kg-image" alt="PCIe AER &#x438; downtraining GPU: production-runbook &#x434;&#x43B;&#x44F; LLM inference" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-06-3a21f2d8.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-06-3a21f2d8.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-06-3a21f2d8.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="decision">&#x420;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E; &#x443;&#x437;&#x43B;&#x443;: &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; &#x432; &#x43F;&#x443;&#x43B;, &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x442;&#x44C; &#x438;&#x43B;&#x438; &#x432;&#x44B;&#x432;&#x435;&#x441;&#x442;&#x438;</h2>
<p>&#x41D;&#x435; &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; PCIe incident &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x43D;&#x435;&#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x439; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44B; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;. &#x420;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x443;&#x434;&#x43E;&#x431;&#x43D;&#x43E; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x438;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C;. &#x412;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; &#x443;&#x437;&#x435;&#x43B; &#x432; production &#x43C;&#x43E;&#x436;&#x43D;&#x43E;, &#x435;&#x441;&#x43B;&#x438; negotiated link &#x443;&#x441;&#x442;&#x43E;&#x439;&#x447;&#x438;&#x432;&#x43E; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; baseline, error delta &#x43D;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; canary-&#x43E;&#x43A;&#x43D;&#x435;, application SLO &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D; &#x438; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x430; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x430;. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x430; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x430;, &#x43D;&#x43E; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;&#x44B; &#x438;&#x441;&#x447;&#x435;&#x437;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; reboot, &#x440;&#x430;&#x437;&#x443;&#x43C;&#x43D;&#x435;&#x435; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x443;&#x437;&#x435;&#x43B; &#x43F;&#x43E;&#x434; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x438;&#x43B;&#x438; &#x432; &#x43F;&#x43E;&#x43D;&#x438;&#x436;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; blast radius, &#x430; &#x43D;&#x435; &#x441;&#x440;&#x430;&#x437;&#x443; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43D;&#x44B;&#x43C;.</p><p>&#x412;&#x44B;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435; &#x443;&#x437;&#x435;&#x43B; &#x438;&#x437; &#x43F;&#x443;&#x43B;&#x430;, &#x435;&#x441;&#x43B;&#x438; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F;, link &#x441;&#x43D;&#x43E;&#x432;&#x430; downtrain &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;, &#x43F;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x44E;&#x442;&#x441;&#x44F; uncorrectable/fatal &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x44F;, &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E; &#x442;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x438;&#x43B;&#x438; recovery &#x437;&#x430;&#x442;&#x440;&#x430;&#x433;&#x438;&#x432;&#x430;&#x435;&#x442; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x435; endpoints. &#x422;&#x43E; &#x436;&#x435; &#x43E;&#x442;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x441;&#x44F; &#x43A; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x44E;&#x449;&#x435;&#x43C;&#x443;&#x441;&#x44F; &#x434;&#x435;&#x444;&#x435;&#x43A;&#x442;&#x443; riser/slot: workaround &#x432;&#x440;&#x43E;&#x434;&#x435; &#x43F;&#x440;&#x438;&#x43D;&#x443;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x43D;&#x438;&#x437;&#x43A;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;&#x43A;&#x43E;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43A;&#x430;&#x43A; &#x44F;&#x432;&#x43D;&#x43E; &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x435; operational &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x441; capacity impact &#x438; &#x441;&#x440;&#x43E;&#x43A;&#x43E;&#x43C; &#x443;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F;.</p><p>&#x414;&#x43B;&#x44F; LLM-&#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x44C; topology class &#x43A;&#x430;&#x43A; &#x447;&#x430;&#x441;&#x442;&#x44C; inventory: &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;, BIOS, CPU, slot, riser, GPU SKU, &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; link parameters. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x43D;&#x43E;&#x432;&#x44B;&#x439; &#x443;&#x437;&#x435;&#x43B; &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#xAB;GPU A100/H100/&#x434;&#x440;&#x443;&#x433;&#x43E;&#x439;&#xBB;, &#x430; &#x447;&#x43B;&#x435;&#x43D; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x441;&#x430; &#x441; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x43C; baseline. &#x42D;&#x442;&#x43E; &#x43E;&#x431;&#x43B;&#x435;&#x433;&#x447;&#x430;&#x435;&#x442; &#x438; capacity planning, &#x438; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x443; &#x436;&#x435;&#x43B;&#x435;&#x437;&#x430;.</p><p>&#x415;&#x441;&#x43B;&#x438; &#x432;&#x430;&#x43C; &#x43D;&#x443;&#x436;&#x43D;&#x430; &#x441;&#x440;&#x435;&#x434;&#x430;, &#x433;&#x434;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; BIOS, PCIe topology, reboot window &#x438; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x443;&#x44E; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x443;, &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440; &#x434;&#x430;&#x451;&#x442; &#x442;&#x430;&#x43A;&#x443;&#x44E; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443; ownership. &#x41D;&#x43E; &#x43F;&#x43E;&#x43A;&#x443;&#x43F;&#x430;&#x442;&#x44C; &#xAB;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; PCIe&#xBB; &#x431;&#x435;&#x437; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x438;&#x44F; &#x431;&#x435;&#x441;&#x441;&#x43C;&#x44B;&#x441;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;: &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435;, &#x447;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; link state &#x432;&#x43B;&#x438;&#x44F;&#x435;&#x442; &#x43D;&#x430; &#x432;&#x430;&#x448; workload, &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x43E;&#x435; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435;.</p><h2 id="sources">&#x418;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A;&#x438; &#x438; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x44F; runbook</h2>
<p>&#x41E;&#x441;&#x43D;&#x43E;&#x432;&#x43D;&#x44B;&#x435; &#x432;&#x43D;&#x435;&#x448;&#x43D;&#x438;&#x435; &#x43E;&#x43F;&#x43E;&#x440;&#x44B; &#x44D;&#x442;&#x43E;&#x433;&#x43E; runbook &#x2014; &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; Linux Kernel &#x43F;&#x43E; PCI Express Advanced Error Reporting &#x438; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; NVIDIA &#x43F;&#x43E; nvidia-smi/NVML/DCGM. Linux &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; AER &#x43A;&#x430;&#x43A; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C; &#x441;&#x431;&#x43E;&#x440;&#x430; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x435;&#x43D;&#x43D;&#x43E;&#x439; &#x438;&#x43D;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x446;&#x438;&#x438; &#x43E;&#x431; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430;&#x445;, &#x438;&#x445; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x430; &#x438; recovery; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x447;&#x451;&#x440;&#x43A;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43A;&#x43B;&#x430;&#x441;&#x441;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x44E; correctable/uncorrectable &#x438; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; OS AER &#x43E;&#x442; ACPI _OSC. NVIDIA &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; PCI bus ID &#x43A;&#x430;&#x43A; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431; &#x430;&#x434;&#x440;&#x435;&#x441;&#x430;&#x446;&#x438;&#x438; GPU &#x438; &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x435;&#x442; NVML &#x434;&#x43B;&#x44F; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x43E;&#x439; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438;, &#x43F;&#x43E;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x443; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x43E;&#x432;&#x44B;&#x439; &#x432;&#x44B;&#x432;&#x43E;&#x434; NVSMI &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C;&#x441;&#x44F; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F;&#x43C;&#x438;.</p><p>&#x421;&#x441;&#x44B;&#x43B;&#x43A;&#x438;: <a href="https://docs.kernel.org/PCI/pcieaer-howto.html?ref=kingservers.com">Linux Kernel: PCIe AER Driver Guide HOWTO</a>, <a href="https://docs.nvidia.com/deploy/nvidia-smi/index.html?ref=kingservers.com">NVIDIA System Management Interface documentation</a>, <a href="https://docs.nvidia.com/datacenter/dcgm/latest/user-guide/feature-overview.html?ref=kingservers.com">NVIDIA DCGM Feature Overview</a>.</p><p>&#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x432; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x435; &#x2014; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; baseline, &#x430; &#x43D;&#x435; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x432;&#x441;&#x435;&#x445; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;. &#x41D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x44F; sysfs-&#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432;, &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; counters &#x438; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; firmware &#x437;&#x430;&#x432;&#x438;&#x441;&#x44F;&#x442; &#x43E;&#x442; kernel, platform firmware &#x438; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;. &#x41F;&#x435;&#x440;&#x435;&#x434; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;&#x43C;&#x438; &#x43D;&#x430; production-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; &#x441;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x441; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x435;&#x439; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x439; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x438; maintenance policy.</p><h2 id="conclusion">&#x412;&#x44B;&#x432;&#x43E;&#x434;: &#x438;&#x449;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43F;&#x43E; &#x441;&#x43B;&#x43E;&#x44F;&#x43C;</h2>
<p>PCIe-&#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x432; GPU-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x435; &#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x430; &#x442;&#x435;&#x43C;, &#x447;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x435;&#x442;&#x44C; &#x43A;&#x430;&#x43A; &#xAB;&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443;-&#x442;&#x43E; &#x441;&#x442;&#x430;&#x43B;&#x430; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x435;&#x435;&#xBB;, &#x430; &#x441;&#x430;&#x43C; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C; &#x43F;&#x440;&#x438; &#x44D;&#x442;&#x43E;&#x43C; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x438;&#x442; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x442;&#x44C; &#x43D;&#x430; health-check. &#x41D;&#x430;&#x434;&#x451;&#x436;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x2014; &#x43D;&#x435; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x442;&#x44C; &#x441; reset &#x438; &#x43D;&#x435; &#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; &#x43E;&#x434;&#x43D;&#x43E;&#x43C;&#x443; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x443;. &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; identity, &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; topology, &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; capability &#x441; effective link state, &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44C;&#x442;&#x435; AER/replay &#x432; &#x43E;&#x43A;&#x43D;&#x435; &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x435; &#x432;&#x43B;&#x438;&#x44F;&#x43D;&#x438;&#x435; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x43C; application canary.</p><p>&#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; recovery link &#x432;&#x435;&#x440;&#x43D;&#x443;&#x43B;&#x441;&#x44F; &#x43A; baseline, &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x435; &#x436;&#x435; gate &#x432; &#x442;&#x43E;&#x43C; &#x436;&#x435; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43A;&#x435;. &#x415;&#x441;&#x43B;&#x438; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x435; &#x43A; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x43C;&#x443; &#x43F;&#x443;&#x442;&#x438; &#x2014; riser, slot, switch, board, power &#x438; firmware &#x2014; &#x43C;&#x435;&#x43D;&#x44F;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43E;&#x434;&#x438;&#x43D; &#x444;&#x430;&#x43A;&#x442;&#x43E;&#x440; &#x437;&#x430; &#x440;&#x430;&#x437;. &#x422;&#x430;&#x43A; &#x432;&#x44B; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x435; RCA, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x44C;, &#x430; &#x43D;&#x435; &#x438;&#x441;&#x442;&#x43E;&#x440;&#x438;&#x44E; &#xAB;&#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x43B;&#x438; &#x2014; &#x432;&#x440;&#x43E;&#x434;&#x435; &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x43E;&#xBB;.</p><p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x448;&#x430;&#x433; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x439;: &#x432;&#x44B;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x44B;&#x439; &#x438; &#x43E;&#x434;&#x438;&#x43D; &#x43F;&#x43E;&#x434;&#x43E;&#x437;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; GPU-&#x443;&#x437;&#x435;&#x43B;, &#x441;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; evidence bundle &#x438; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; expected topology class. &#x414;&#x430;&#x436;&#x435; &#x435;&#x441;&#x43B;&#x438; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x433;&#x43E; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430; &#x43D;&#x435;&#x442;, &#x44D;&#x442;&#x43E;&#x442; baseline &#x440;&#x435;&#x437;&#x43A;&#x43E; &#x441;&#x43E;&#x43A;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x438;, &#x43A;&#x43E;&#x433;&#x434;&#x430; p95 &#x43E;&#x434;&#x43D;&#x430;&#x436;&#x434;&#x44B; &#x43D;&#x430;&#x447;&#x43D;&#x451;&#x442; &#x440;&#x430;&#x441;&#x442;&#x438; &#x431;&#x435;&#x437; &#x43E;&#x447;&#x435;&#x432;&#x438;&#x434;&#x43D;&#x43E;&#x433;&#x43E; GPU error.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-07-8dacb7fa.webp" class="kg-image" alt="PCIe AER &#x438; downtraining GPU: production-runbook &#x434;&#x43B;&#x44F; LLM inference" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-07-8dacb7fa.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-07-8dacb7fa.webp 1000w, https://kingservers.com/blog/content/images/2026/09/pcie-aer-gpu-downtraining-llm-runbook-inline-07-8dacb7fa.webp 1376w" sizes="(min-width: 720px) 720px"></figure><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[NVMe/TCP TLS и DH-HMAC-CHAP: защищаем хранилище весов LLM]]></title><description><![CDATA[Production-runbook по защите удалённых весов LLM: NVMe/TCP TLS, DH-HMAC-CHAP, kernel keyring, canary, negative controls, vLLM gate и rollback.]]></description><link>https://kingservers.com/blog/nvme-tcp-tls-dh-hmac-chap-llm-storage/</link><guid isPermaLink="false">6a961441aff2afac25354c22</guid><category><![CDATA[AI]]></category><category><![CDATA[Инфраструктура]]></category><category><![CDATA[Безопасность]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Tue, 01 Sep 2026 21:29:57 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-hero-429d4018.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#threat-model">&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; threat model: &#x447;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x43C;</a></li>
<li><a href="#security-layers">&#x41D;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; identity, authentication &#x438; encryption</a></li>
<li><a href="#preflight">Preflight: kernel, nvme-cli, tlshd &#x438; &#x441;&#x442;&#x430;&#x442;&#x443;&#x441; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x439;</a></li>
<li><a href="#stable-identity">&#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; Host NQN &#x438; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x432;&#x44B;&#x434;&#x430;&#x447;&#x438; &#x43A;&#x43B;&#x44E;&#x447;&#x430;</a></li>
<li><a href="#tls-psk">TLS PSK: keyring &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442;&#x430; &#x432; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x43D;&#x43E;&#x439; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x435;</a></li>
<li><a href="#chap-mutual">DH-HMAC-CHAP: &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; mutual auth &#x43E;&#x441;&#x43E;&#x437;&#x43D;&#x430;&#x43D;&#x43D;&#x43E;</a></li>
<li><a href="#secure-connect">Secure connect &#x438; effective-state gate</a></li>
<li><a href="#application-gate">&#x41E;&#x442; &#x431;&#x43B;&#x43E;&#x43A;&#x430; &#x43A; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;: immutable mount &#x438; vLLM probe</a></li>
<li><a href="#canary-rotation">Canary, negative controls &#x438; &#x440;&#x43E;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x431;&#x435;&#x437; &#x441;&#x43B;&#x435;&#x43F;&#x43E;&#x433;&#x43E; &#x43E;&#x43A;&#x43D;&#x430;</a></li>
<li><a href="#observability">&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;: &#x430;&#x43B;&#x435;&#x440;&#x442; &#x43D;&#x435; &#x43D;&#x430; &#x448;&#x443;&#x43C;, &#x430; &#x43D;&#x430; &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44E; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x439;</a></li>
<li><a href="#conclusion">&#x418;&#x442;&#x43E;&#x433;: &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x443;&#x442;&#x44C; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x43C;&#x438; &#x441;&#x43B;&#x43E;&#x44F;&#x43C;&#x438;</a></li>
</ul></div>

</div>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x430; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM &#x43D;&#x430; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x439; NVMe/TCP-&#x442;&#x43E;&#x43C; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x43D;&#x43E; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43D;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;, &#x43A;&#x442;&#x43E; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x43B;&#x441;&#x44F; &#x43A; storage &#x438; &#x43D;&#x435; &#x443;&#x448;&#x43B;&#x438; &#x43B;&#x438; shards &#x43F;&#x43E; &#x441;&#x435;&#x442;&#x438; &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x43C; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x43E;&#x43C;. &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x439; VLAN &#x441;&#x43D;&#x438;&#x436;&#x430;&#x435;&#x442; &#x440;&#x438;&#x441;&#x43A;, &#x43E;&#x434;&#x43D;&#x430;&#x43A;&#x43E; &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; identity, &#x432;&#x437;&#x430;&#x438;&#x43C;&#x43D;&#x443;&#x44E; &#x430;&#x443;&#x442;&#x435;&#x43D;&#x442;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x44E; &#x438; &#x448;&#x438;&#x444;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435;. &#x412; &#x44D;&#x442;&#x43E;&#x43C; production-runbook &#x440;&#x430;&#x437;&#x431;&#x435;&#x440;&#x451;&#x43C; TLS PSK, DH-HMAC-CHAP, kernel keyring, canary &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x2014; &#x43E;&#x442; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; connect &#x434;&#x43E; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x438; vLLM. &#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x43E;&#x43C; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x439; block device, &#x430; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x430;&#x44F; &#x446;&#x435;&#x43F;&#x43E;&#x447;&#x43A;&#x430; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x44F; &#x441; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x44B;&#x43C; rollback.<div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <img src="https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-hero-429d4018.webp" alt="NVMe/TCP TLS &#x438; DH-HMAC-CHAP: &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x43C; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM"><p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="threat-model">&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; threat model: &#x447;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x43C;</h2>
<p>&#x423;&#x437;&#x435;&#x43B; inference &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x44C; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x431;&#x435;&#x437; &#x435;&#x434;&#x438;&#x43D;&#x43E;&#x439; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;, &#x430; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442; &#x43B;&#x43E;&#x436;&#x43D;&#x43E;&#x435; &#x447;&#x443;&#x432;&#x441;&#x442;&#x432;&#x43E; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x438;. &#x41E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x439; NVMe/TCP &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442; &#x431;&#x43B;&#x43E;&#x447;&#x43D;&#x44B;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x447;&#x435;&#x440;&#x435;&#x437; IP-&#x441;&#x435;&#x442;&#x44C;; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x439; namespace &#x438; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x439; VLAN &#x435;&#x449;&#x451; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x44E;&#x442; &#x43D;&#x438; &#x43B;&#x438;&#x447;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x430;, &#x43D;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x434;&#x435;&#x43D;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;. &#x414;&#x43B;&#x44F; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM &#x44D;&#x442;&#x43E; &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x43D;&#x435;&#x43F;&#x440;&#x438;&#x44F;&#x442;&#x43D;&#x43E;: &#x43E;&#x434;&#x438;&#x43D; &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x439; &#x442;&#x43E;&#x43C; &#x447;&#x430;&#x441;&#x442;&#x43E; &#x447;&#x438;&#x442;&#x430;&#x44E;&#x442; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x434;&#x43E;&#x440;&#x43E;&#x433;&#x438;&#x445; GPU-&#x443;&#x437;&#x43B;&#x43E;&#x432;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x432; trust boundary &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x442;&#x441;&#x44F; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x43C;.</p>
<p>&#x420;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x44B; &#x43D;&#x430; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x435; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B;: &#x441;&#x430;&#x43C;&#x438; shards &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;, tokenizer &#x438; config, &#x43C;&#x430;&#x43D;&#x438;&#x444;&#x435;&#x441;&#x442; &#x441; pinned revision &#x438; &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442;&#x44B; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F;. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x43D;&#x430;&#x437;&#x43E;&#x432;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x442;&#x438;&#x432;&#x43D;&#x438;&#x43A;&#x430;. TLS &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x43F;&#x440;&#x43E;&#x442;&#x438;&#x432; &#x43F;&#x430;&#x441;&#x441;&#x438;&#x432;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x445;&#x432;&#x430;&#x442;&#x430; &#x438; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x439; &#x43F;&#x43E;&#x434;&#x43C;&#x435;&#x43D;&#x44B; &#x43D;&#x430; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x43C; &#x43F;&#x443;&#x442;&#x438;. DH-HMAC-CHAP &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; host, &#x430; &#x43F;&#x440;&#x438; &#x434;&#x432;&#x443;&#x441;&#x442;&#x43E;&#x440;&#x43E;&#x43D;&#x43D;&#x435;&#x439; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x435; &#x2014; &#x438; controller. &#x41D;&#x43E; &#x44D;&#x442;&#x438; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x44B; &#x43D;&#x435; &#x441;&#x43F;&#x430;&#x441;&#x430;&#x44E;&#x442; &#x43E;&#x442; root &#x43D;&#x430; inference-&#x443;&#x437;&#x43B;&#x435;, &#x441;&#x43A;&#x43E;&#x43C;&#x43F;&#x440;&#x43E;&#x43C;&#x435;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; storage target, &#x43F;&#x43E;&#x434;&#x43C;&#x435;&#x43D;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x444;&#x430;&#x439;&#x43B;&#x430; &#x443;&#x436;&#x435; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x441;&#x43C;&#x43E;&#x43D;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x424;&#x421; &#x438;&#x43B;&#x438; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; namespace.</p>
<p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; disqualifier &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x439;: &#x435;&#x441;&#x43B;&#x438; &#x440;&#x438;&#x441;&#x43A; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#xAB;&#x43D;&#x430; &#x434;&#x438;&#x441;&#x43A;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43A;&#x438;&#xBB;, &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x441; encryption at rest &#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44F; &#x446;&#x435;&#x43B;&#x43E;&#x441;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x430; &#x43D;&#x435; &#x441; TLS. &#x415;&#x441;&#x43B;&#x438; &#x441;&#x435;&#x442;&#x44C; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x430;&#x44F;, &#x43D;&#x43E; &#x435;&#x451; &#x430;&#x434;&#x43C;&#x438;&#x43D;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x443;&#x44E;&#x442; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434; &#x438;&#x43B;&#x438; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x447;&#x435;&#x440;&#x435;&#x437; &#x43E;&#x431;&#x449;&#x443;&#x44E; &#x444;&#x430;&#x431;&#x440;&#x438;&#x43A;&#x443;, secure NVMe/TCP &#x443;&#x436;&#x435; &#x438;&#x43C;&#x435;&#x435;&#x442; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x443;&#x44E; &#x446;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C;. &#x414;&#x43B;&#x44F; &#x43E;&#x431;&#x449;&#x435;&#x433;&#x43E; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;&#x430; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x43D;&#x430;&#x448; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43E; <a href="https://kingservers.com/blog/nvme-i-raspredelennye-failovye-sistemy-trendy-hraneniya/">NVMe &#x438; &#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x445; &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432;&#x44B;&#x445; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430;&#x445;</a>; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43C;&#x44B; &#x43D;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x43C; &#x43E;&#x431;&#x437;&#x43E;&#x440;, &#x430; &#x441;&#x442;&#x440;&#x43E;&#x438;&#x43C; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x443;&#x44E; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x434;&#x43B;&#x44F; AI workload.</p><p>&#x41F;&#x435;&#x440;&#x435;&#x434; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x43E;&#x43C; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x430; &#x43D;&#x430;&#x440;&#x438;&#x441;&#x443;&#x439;&#x442;&#x435; data flow: &#x43E;&#x442; model registry &#x438; staging host &#x434;&#x43E; NVMe target, IP-&#x444;&#x430;&#x431;&#x440;&#x438;&#x43A;&#x438;, initiator &#x438; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; page cache. &#x41E;&#x442;&#x43C;&#x435;&#x442;&#x44C;&#x442;&#x435;, &#x433;&#x434;&#x435; &#x431;&#x430;&#x439;&#x442;&#x44B; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x44F;&#x442;&#x441;&#x44F; &#x432; &#x43F;&#x43E;&#x43A;&#x43E;&#x435;, &#x433;&#x434;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x438; &#x433;&#x434;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F;. &#x412;&#x435;&#x441;&#x430; Safetensors &#x43D;&#x435; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x44F;&#x442;&#x441;&#x44F; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x434;&#x435;&#x43D;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;&#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x438;&#x437;-&#x437;&#x430; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442;&#x430;, &#x430; read-only mount &#x43D;&#x435; &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x442; &#x43F;&#x430;&#x43A;&#x435;&#x442; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x432;&#x43E;&#x434;&#x435;. &#x417;&#x430;&#x442;&#x43E; TLS &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;, &#x447;&#x442;&#x43E; &#x432; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x43E;&#x43C; namespace &#x43B;&#x435;&#x436;&#x438;&#x442; &#x43D;&#x443;&#x436;&#x43D;&#x430;&#x44F; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x44F;. &#x422;&#x430;&#x43A;&#x430;&#x44F; &#x43A;&#x430;&#x440;&#x442;&#x430; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x43E; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x43A;&#x430;&#x43A;&#x438;&#x435; controls &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43D;&#x443;&#x436;&#x43D;&#x44B;.</p>
<p>&#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; acceptance criteria &#x434;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;: &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x44B;&#x439; Host NQN &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441; TLS; &#x43D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; PSK &#x438; &#x43D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; host &#x43E;&#x442;&#x432;&#x435;&#x440;&#x433;&#x430;&#x44E;&#x442;&#x441;&#x44F;; pinned manifest &#x447;&#x438;&#x442;&#x430;&#x435;&#x442;&#x441;&#x44F;; model service &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; probe; &#x43F;&#x43E;&#x441;&#x43B;&#x435; rollback &#x442;&#x435; &#x436;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x43A; baseline. &#x41D;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; &#x432; &#x43A;&#x440;&#x438;&#x442;&#x435;&#x440;&#x438;&#x438; &#xAB;&#x437;&#x430;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x430; &#x441;&#x442;&#x430;&#x43B;&#x430; &#x43B;&#x443;&#x447;&#x448;&#x435;&#xBB;, &#x435;&#x441;&#x43B;&#x438; change &#x43F;&#x43E;&#x441;&#x432;&#x44F;&#x449;&#x451;&#x43D; &#x437;&#x430;&#x449;&#x438;&#x442;&#x435;. &#x41F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43D;&#x430; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x43C; workload &#x438; &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x43F;&#x43E;&#x434;&#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; security outcome.</p><h2 id="security-layers">&#x41D;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; identity, authentication &#x438; encryption</h2>
<p>&#x421;&#x430;&#x43C;&#x430;&#x44F; &#x447;&#x430;&#x441;&#x442;&#x430;&#x44F; &#x430;&#x440;&#x445;&#x438;&#x442;&#x435;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x2014; &#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x437;&#x43D;&#x430;&#x43A; &#x440;&#x430;&#x432;&#x435;&#x43D;&#x441;&#x442;&#x432;&#x430; &#x43C;&#x435;&#x436;&#x434;&#x443; Host NQN, DH-HMAC-CHAP &#x438; TLS. Host NQN &#x2014; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x438;&#x43C;&#x44F; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x442;&#x43E;&#x440;&#x430;. &#x41E;&#x43D;&#x43E; &#x443;&#x447;&#x430;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x432; policy &#x438; &#x43F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x43A;&#x435; &#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x439;, &#x43D;&#x43E; &#x441;&#x430;&#x43C;&#x43E; &#x43F;&#x43E; &#x441;&#x435;&#x431;&#x435; &#x43D;&#x435; &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442; &#x438; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E; &#x43B;&#x438;&#x447;&#x43D;&#x43E;&#x441;&#x442;&#x438;. DH-HMAC-CHAP &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x43E;&#x431;&#x449;&#x438;&#x439; &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442;, &#x447;&#x442;&#x43E;&#x431;&#x44B; target &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x43B; host; &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439; controller secret &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; mutual authentication. TLS &#x43F;&#x43E;&#x432;&#x435;&#x440;&#x445; NVMe/TCP &#x448;&#x438;&#x444;&#x440;&#x443;&#x435;&#x442; transport &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x435; PSK.</p>
<p>&#x41D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x44C;&#x442;&#x435; owner &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C;&#x443; &#x441;&#x43B;&#x43E;&#x44E;. Platform team &#x432;&#x43B;&#x430;&#x434;&#x435;&#x435;&#x442; Host NQN &#x438; &#x436;&#x438;&#x437;&#x43D;&#x435;&#x43D;&#x43D;&#x44B;&#x43C; &#x446;&#x438;&#x43A;&#x43B;&#x43E;&#x43C; &#x443;&#x437;&#x43B;&#x430;. Storage team &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x430;&#x435;&#x442; &#x44D;&#x442;&#x43E;&#x442; NQN &#x43D;&#x430; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x43C; subsystem &#x438; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; target-side secrets. Security &#x438;&#x43B;&#x438; secrets team &#x437;&#x430;&#x434;&#x430;&#x451;&#x442; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x434;&#x443;&#x440;&#x443; &#x432;&#x44B;&#x434;&#x430;&#x447;&#x438;, &#x440;&#x43E;&#x442;&#x430;&#x446;&#x438;&#x438; &#x438; &#x43E;&#x442;&#x437;&#x44B;&#x432;&#x430;. &#x412;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x435;&#x446; model service &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x437;&#x430; pinned model revision &#x438; application probe. &#x41A;&#x43E;&#x433;&#x434;&#x430; &#x43E;&#x434;&#x438;&#x43D; &#x447;&#x435;&#x43B;&#x43E;&#x432;&#x435;&#x43A; &#xAB;&#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x43A;&#x43B;&#x430;&#x434;&#x451;&#x442; &#x43A;&#x43B;&#x44E;&#x447; &#x43D;&#x430; &#x43E;&#x431;&#x435; &#x441;&#x442;&#x43E;&#x440;&#x43E;&#x43D;&#x44B;&#xBB;, &#x440;&#x430;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x439; &#x436;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x43F;&#x435;&#x440;&#x435;&#x431;&#x43E;&#x440; &#x434;&#x43E;&#x433;&#x430;&#x434;&#x43E;&#x43A;.</p>
<p>&#x41C;&#x438;&#x43D;&#x438;-&#x43A;&#x435;&#x439;&#x441;: controller &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x43B;&#x441;&#x44F;, &#x43D;&#x43E; vLLM &#x43D;&#x435; &#x441;&#x442;&#x430;&#x440;&#x442;&#x43E;&#x432;&#x430;&#x43B;. &#x415;&#x441;&#x43B;&#x438; evidence &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x44B;&#x439; TLS identity, &#x447;&#x442;&#x435;&#x43D;&#x438;&#x435; namespace &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;, &#x430; hash manifest &#x43D;&#x435; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x435;&#x442;, &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x432;&#x44B;&#x448;&#x435; transport. &#x415;&#x441;&#x43B;&#x438; &#x43D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; Host NQN &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x435;&#x442; &#x442;&#x43E;&#x442; &#x436;&#x435; namespace, &#x43D;&#x430;&#x43E;&#x431;&#x43E;&#x440;&#x43E;&#x442;, application logs &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x431;&#x435;&#x441;&#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;: &#x43D;&#x430;&#x440;&#x443;&#x448;&#x435;&#x43D;&#x430; identity policy. &#x422;&#x430;&#x43A;&#x43E;&#x435; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E;&#x445;&#x43E;&#x436;&#x435; &#x43D;&#x430; &#x43F;&#x430;&#x441;&#x43F;&#x43E;&#x440;&#x442;, &#x442;&#x443;&#x440;&#x43D;&#x438;&#x43A;&#x435;&#x442; &#x438; &#x431;&#x440;&#x43E;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x440;&#x438;&#x434;&#x43E;&#x440; &#x2014; &#x442;&#x440;&#x438; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;, &#x434;&#x430;&#x436;&#x435; &#x435;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x438;&#x445; &#x43F;&#x43E;&#x434;&#x440;&#x44F;&#x434;.</p><style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}
.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}
.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}
.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}
.ks-widget .panel.on{display:block}
.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}
.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}
.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style><div class="ks-widget" id="ks-tab-a7n2p4q"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x439; &#x441;&#x43B;&#x43E;&#x439; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x440;&#x438;&#x441;&#x43A;</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="auth">&#x410;&#x443;&#x442;&#x435;&#x43D;&#x442;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x44F;</button><button type="button" class="tab-btn" data-t="tls">TLS</button><button type="button" class="tab-btn" data-t="disk">&#x414;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x43D;&#x430; &#x434;&#x438;&#x441;&#x43A;&#x435;</button></div><div class="panel on" data-p="auth">DH-HMAC-CHAP &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43A; subsystem &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; host; &#x434;&#x432;&#x443;&#x441;&#x442;&#x43E;&#x440;&#x43E;&#x43D;&#x43D;&#x438;&#x439; &#x440;&#x435;&#x436;&#x438;&#x43C; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; controller.</div><div class="panel" data-p="tls">TLS &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x442; NVMe/TCP-&#x442;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x43E;&#x442; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x43F;&#x43E;&#x434;&#x43C;&#x435;&#x43D;&#x44B; &#x43D;&#x430; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x43C; &#x43F;&#x443;&#x442;&#x438;. &#x41E;&#x43D; &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; ACL, firewall &#x438; &#x448;&#x438;&#x444;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435;&#x43B;&#x44F;.</div><div class="panel" data-p="disk">LUKS, encryption at rest &#x438;&#x43B;&#x438; &#x437;&#x430;&#x449;&#x438;&#x442;&#x430; &#x441;&#x430;&#x43C;&#x43E;&#x433;&#x43E; &#x43C;&#x430;&#x441;&#x441;&#x438;&#x432;&#x430; &#x43D;&#x443;&#x436;&#x43D;&#x44B; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;: TLS &#x43F;&#x440;&#x435;&#x43A;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43A;&#x438; &#x431;&#x43B;&#x43E;&#x43A;&#x430; &#x43D;&#x430; endpoint.</div><script>(function(){var r=document.getElementById('ks-tab-a7n2p4q');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-01-6696ecbc.webp" class="kg-image" alt="NVMe/TCP TLS &#x438; DH-HMAC-CHAP: &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x43C; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-01-6696ecbc.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-01-6696ecbc.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-01-6696ecbc.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="preflight">Preflight: kernel, nvme-cli, tlshd &#x438; &#x441;&#x442;&#x430;&#x442;&#x443;&#x441; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x439;</h2>
<p>Secure connect &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x435; &#x441; &#x43A;&#x43B;&#x44E;&#x447;&#x430;, &#x430; &#x441; evidence bundle. &#x41D;&#x430; &#x434;&#x430;&#x442;&#x443; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43A;&#x438; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438; latest stable nvme-cli &#x2014; 2.16; &#x432;&#x435;&#x442;&#x43A;&#x430; 3.0 &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x430; &#x43A;&#x430;&#x43A; pre-release. &#x412; master &#x441;&#x442;&#x430;&#x440;&#x44B;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; <code>gen-tls-key</code>, <code>tls-key</code>, <code>gen-dhchap-key</code> &#x443;&#x436;&#x435; &#x43F;&#x43E;&#x43C;&#x435;&#x447;&#x435;&#x43D;&#x44B; deprecated &#x432; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443; &#x441;&#x435;&#x43C;&#x435;&#x439;&#x441;&#x442;&#x432;&#x430; <code>nvme keys</code>. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; &#x438; &#x435;&#x451; <code>--help</code>, &#x430; &#x43D;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; &#x438;&#x437; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x43E;&#x433;&#x43E; gist.</p>
<p>&#x414;&#x43B;&#x44F; kTLS handshake &#x43D;&#x443;&#x436;&#x435;&#x43D; <code>tlshd</code> &#x438;&#x437; ktls-utils. &#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x435;&#x43A;&#x442; &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; kernel 6.5+ &#x438; &#x43E;&#x43F;&#x446;&#x438;&#x438; <code>CONFIG_TLS</code>, <code>CONFIG_KEYS</code>, <code>CONFIG_KEYS_REQUEST_CACHE</code>; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x439; &#x434;&#x438;&#x441;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438;&#x432; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; &#x441;&#x432;&#x43E;&#x438; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438;. &#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; <code>CONFIG_NVME_TCP_TLS</code> &#x438; host authentication &#x432; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; kernel. &#x41D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x435; &#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x44F; <code>nvme_tcp</code> &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; TLS.</p>
<p>&#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x441; change ticket. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C;: &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; kernel &#x431;&#x435;&#x437; &#x43F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x44F;&#x449;&#x435;&#x433;&#x43E; tlshd &#x438;&#x43B;&#x438; &#x441;&#x43C;&#x435;&#x43D;&#x430; nvme-cli &#x43C;&#x435;&#x436;&#x434;&#x443; major versions &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43D;&#x43E; &#x441;&#x43B;&#x43E;&#x43C;&#x430;&#x442;&#x44C; reconnect &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;, &#x445;&#x43E;&#x442;&#x44F; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x430;&#x44F; &#x441;&#x435;&#x441;&#x441;&#x438;&#x44F; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x438;&#x442; &#x436;&#x438;&#x442;&#x44C;.</p><p>&#x414;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; support status, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x43E;&#x43C;&#x435;&#x440; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x430;. &#x420;&#x435;&#x43F;&#x43E;&#x437;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x439; <a href="https://github.com/linux-nvme/nvme-cli/releases?ref=kingservers.com">nvme-cli releases</a> &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; stable 2.16 &#x43E;&#x442; beta 3.0; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; master &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x433;&#x43E; &#x435;&#x449;&#x451; &#x43D;&#x435;&#x442; &#x432; &#x432;&#x430;&#x448;&#x435;&#x43C; &#x434;&#x438;&#x441;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438;&#x432;&#x435;. &#x41F;&#x440;&#x43E;&#x435;&#x43A;&#x442; <a href="https://github.com/oracle/ktls-utils?ref=kingservers.com">ktls-utils</a> &#x43F;&#x440;&#x44F;&#x43C;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x447;&#x438;&#x441;&#x43B;&#x44F;&#x435;&#x442; kernel prerequisites &#x434;&#x43B;&#x44F; handshake agent. &#x415;&#x441;&#x43B;&#x438; &#x43E;&#x434;&#x438;&#x43D; &#x438;&#x437; &#x43A;&#x43E;&#x43C;&#x43F;&#x43E;&#x43D;&#x435;&#x43D;&#x442;&#x43E;&#x432; vendor backport, &#x43F;&#x440;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x438;&#x441;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438;&#x432;&#x430; &#x438; &#x442;&#x435;&#x441;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x435;&#x433;&#x43E; &#x43F;&#x430;&#x43A;&#x435;&#x442;, &#x430; &#x43D;&#x435; upstream mainline.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">nvme-secure-preflight.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>set -eu
uname -r
nvme version
nvme connect --help | sed -n &apos;/tls\|keyring\|chap\|kxchap/p&apos;
nvme keys --help 2&gt;/dev/null || true
modprobe nvme-tcp
systemctl is-active tlshd
nvme show-hostnqn
grep -E &apos;CONFIG_(TLS|KEYS|KEYS_REQUEST_CACHE|NVME_TCP_TLS|NVME_HOST_AUTH)=&apos; \
  /boot/config-$(uname -r) || true
keyctl show</code></pre>

</div>
<div class="ks-widget" id="ks-chk-m3k8r2v"><h3>Preflight &#x43F;&#x435;&#x440;&#x435;&#x434; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x43C; secure connect</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x412;&#x435;&#x440;&#x441;&#x438;&#x438; kernel &#x438; nvme-cli &#x437;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x44B; &#x432; evidence bundle</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> Kernel config &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; NVMe/TCP TLS &#x438; host authentication</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> tlshd &#x437;&#x430;&#x43F;&#x443;&#x449;&#x435;&#x43D; &#x438; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D; &#x434;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430; model service</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> Host NQN &#x438; subsystem NQN &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x44B;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x415;&#x441;&#x442;&#x44C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x44B;&#x439; namespace &#x438; &#x43F;&#x43B;&#x430;&#x43D; rollback</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-m3k8r2v');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-02-fc8f2288.webp" class="kg-image" alt="NVMe/TCP TLS &#x438; DH-HMAC-CHAP: &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x43C; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-02-fc8f2288.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-02-fc8f2288.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-02-fc8f2288.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="stable-identity">&#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; Host NQN &#x438; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x432;&#x44B;&#x434;&#x430;&#x447;&#x438; &#x43A;&#x43B;&#x44E;&#x447;&#x430;</h2>
<p>Host NQN &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x435;&#x440;&#x435;&#x436;&#x438;&#x432;&#x430;&#x442;&#x44C; reboot &#x438; &#x43D;&#x435; &#x437;&#x430;&#x432;&#x438;&#x441;&#x435;&#x442;&#x44C; &#x43E;&#x442; &#x438;&#x43C;&#x435;&#x43D;&#x438; <code>/dev/nvme0</code>. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; <code>/etc/nvme/hostnqn</code> &#x438; <code>/etc/nvme/hostid</code>, &#x437;&#x430;&#x43D;&#x435;&#x441;&#x438;&#x442;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x432; inventory, &#x430; &#x43D;&#x430; target &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x443;&#x436;&#x43D;&#x443;&#x44E; &#x43F;&#x430;&#x440;&#x443; host&#x2013;subsystem. &#x41A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x430; VM &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; Host NQN &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; &#x43A;&#x43B;&#x43E;&#x43D; &#x43B;&#x438;&#x447;&#x43D;&#x43E;&#x441;&#x442;&#x438;: &#x43D;&#x43E;&#x432;&#x44B;&#x439; inference-&#x443;&#x437;&#x435;&#x43B; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;, &#x43F;&#x440;&#x435;&#x434;&#x43D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x441;&#x442;&#x430;&#x440;&#x43E;&#x43C;&#x443;.</p>
<p>&#x41F;&#x435;&#x440;&#x435;&#x434; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x441;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; baseline: &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; fabrics controllers, topology, &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x44B;&#x435; subsystem NQN, keyring &#x438; revision &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;. &#x41D;&#x43E;&#x43C;&#x435;&#x440;&#x430; controller &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; reconnect, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x441;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x441; NQN, transport address &#x438; namespace identifier. Owner &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x443;&#x43C;&#x435;&#x442;&#x44C; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x438;&#x442;&#x44C; &#x43D;&#x430; &#x434;&#x432;&#x430; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x430;: &#x43A;&#x430;&#x43A;&#x43E;&#x439; host &#x441;&#x435;&#x439;&#x447;&#x430;&#x441; &#x43F;&#x440;&#x435;&#x434;&#x44A;&#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x44D;&#x442;&#x43E;&#x442; NQN &#x438; &#x43A;&#x430;&#x43A;&#x43E;&#x439; model service &#x438;&#x43C;&#x435;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;&#x43E; &#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x44D;&#x442;&#x43E;&#x442; namespace?</p>
<p>&#x414;&#x43B;&#x44F; dedicated GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x443;&#x434;&#x43E;&#x431;&#x43D;&#x43E; &#x432;&#x44B;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; identity &#x43D;&#x430; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x443;&#x437;&#x435;&#x43B; &#x438; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; subsystem &#x434;&#x43B;&#x44F; production-&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x435;&#x439;. &#x414;&#x43B;&#x44F; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; canary &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x434;&#x440;&#x443;&#x433;&#x443;&#x44E; identity &#x438; read-only &#x43A;&#x43E;&#x43F;&#x438;&#x44E; &#x438;&#x43B;&#x438; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x44B;&#x439; namespace. &#x41D;&#x435; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x439;&#x442;&#x435; ACL production namespace &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x440;&#x430;&#x434;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;. &#x42D;&#x442;&#x43E; &#x442;&#x43E;&#x442; &#x441;&#x430;&#x43C;&#x44B;&#x439; negative control: &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x439;, &#x43D;&#x435;&#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x44B;&#x439; Host NQN &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43E;&#x442;&#x43A;&#x430;&#x437;.</p>
<p>&#x422;&#x430;&#x43A;&#x430;&#x44F; &#x434;&#x438;&#x441;&#x446;&#x438;&#x43F;&#x43B;&#x438;&#x43D;&#x430; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x438; LLMOps: pinned model revision &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x438;&#x43A;&#x43B;&#x430;&#x434;&#x43D;&#x43E;&#x439; &#x438;&#x434;&#x435;&#x43D;&#x442;&#x438;&#x447;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E;, &#x430; Host NQN &#x2014; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x43E;&#x439;. &#x41F;&#x43E;&#x434;&#x440;&#x43E;&#x431;&#x43D;&#x435;&#x435; &#x43E; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F;&#x445; &#x438; rollback &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x43C;&#x44B; &#x43F;&#x438;&#x441;&#x430;&#x43B;&#x438; &#x432; &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x435; &#x43F;&#x43E; <a href="https://kingservers.com/blog/llmops-zhiznennyy-cikl-llm-v-prodakshene/">&#x436;&#x438;&#x437;&#x43D;&#x435;&#x43D;&#x43D;&#x43E;&#x43C;&#x443; &#x446;&#x438;&#x43A;&#x43B;&#x443; LLM &#x432; production</a>.</p><div class="ks-widget" id="ks-sel-z6t1c9h"><h3>&#x413;&#x434;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x44C; &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442;</h3><label>&#x421;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x439;</label><select data-s><option value="lab">&#x41B;&#x430;&#x431;&#x43E;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x43D;&#x44B;&#x439; &#x441;&#x442;&#x435;&#x43D;&#x434;</option><option value="prod">Production host</option><option value="rotate">&#x420;&#x43E;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x43A;&#x43B;&#x44E;&#x447;&#x430;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-z6t1c9h');if(!r)return;var m={"lab":"Допустим короткоживущий тестовый secret и закрытый конфиг, но не переносите этот шаблон в production.","prod":"TLS PSK держите в kernel keyring; доступ к конфигам и загрузке ключа ограничьте отдельным owner-процессом. DH-CHAP требует отдельной оценки риска хранения секрета.","rotate":"Загрузите новый ключ параллельно, проверьте canary-подключение, затем отзывайте старый. Не меняйте обе стороны вслепую одновременно."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-03-dca0514a.webp" class="kg-image" alt="NVMe/TCP TLS &#x438; DH-HMAC-CHAP: &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x43C; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-03-dca0514a.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-03-dca0514a.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-03-dca0514a.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="tls-psk">TLS PSK: keyring &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442;&#x430; &#x432; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x43D;&#x43E;&#x439; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x435;</h2>
<p>NVMe/TCP TLS &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; pre-shared key, &#x441;&#x432;&#x44F;&#x437;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x441; Host NQN &#x438; Subsystem NQN. &#x412; Linux key material &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x436;&#x438;&#x442;&#x44C; &#x432; kernel keyring, &#x430; <code>tlshd</code> &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x435;&#x442; &#x435;&#x433;&#x43E; &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; handshake. &#x41A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x442; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x443; &#x438;&#x43B;&#x438; identity, &#x430; &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x432; &#x441;&#x43A;&#x43B;&#x430;&#x434; PSK. &#x42D;&#x442;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435; &#x44D;&#x441;&#x442;&#x435;&#x442;&#x438;&#x43A;&#x438;: &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442; &#x432; &#x430;&#x440;&#x433;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x445; &#x432;&#x438;&#x434;&#x435;&#x43D; &#x447;&#x435;&#x440;&#x435;&#x437; process inspection, &#x43F;&#x43E;&#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x432; shell history &#x438; &#x43D;&#x435;&#x440;&#x435;&#x434;&#x43A;&#x43E; &#x432; CI logs.</p>
<p>&#x413;&#x435;&#x43D;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44E; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x43E;&#x439; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x430;&#x448;&#x435;&#x439; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438;. &#x414;&#x43B;&#x44F; stable 2.16 &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B; legacy-&#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B;, &#x442;&#x43E;&#x433;&#x434;&#x430; &#x43A;&#x430;&#x43A; 3.0 pre-release &#x43F;&#x435;&#x440;&#x435;&#x432;&#x43E;&#x434;&#x438;&#x442; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x432; <code>nvme keys</code>. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x442;&#x43A;&#x440;&#x43E;&#x439;&#x442;&#x435; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; man page, &#x441;&#x433;&#x435;&#x43D;&#x435;&#x440;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; PSK &#x43D;&#x430; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; owner-host, &#x438;&#x43C;&#x43F;&#x43E;&#x440;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x432; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; keyring &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; connection config. &#x41D;&#x435; &#x432;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x432; ticket &#x438;&#x43B;&#x438; unit file.</p>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x43D;&#x435; &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x43C;&#x43E;&#x435; &#x43A;&#x43B;&#x44E;&#x447;&#x430;, &#x430; &#x435;&#x433;&#x43E; presence, type, description/identity &#x438; permissions. &#x414;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x43A; keyring &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x438;&#x43C;&#x435;&#x442;&#x44C; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; handshake, &#x43D;&#x43E; &#x43D;&#x435; model service. &#x42D;&#x442;&#x43E; &#x443;&#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x430;&#x435;&#x442; blast radius: vLLM &#x447;&#x438;&#x442;&#x430;&#x435;&#x442; &#x431;&#x43B;&#x43E;&#x43A;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;, &#x43E;&#x434;&#x43D;&#x430;&#x43A;&#x43E; &#x43D;&#x435; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;&#x43E; &#x44D;&#x43A;&#x441;&#x43F;&#x43E;&#x440;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; transport credential.</p>
<p>&#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; design document linux-nvme &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442; &#x435;&#x449;&#x451; &#x43E;&#x431; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x435;: TLS key &#x443;&#x43C;&#x435;&#x435;&#x442; &#x441;&#x441;&#x44B;&#x43B;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; keyring, &#x430; DH-CHAP secret &#x432; &#x43D;&#x43E;&#x432;&#x43E;&#x43C; INI-&#x434;&#x438;&#x437;&#x430;&#x439;&#x43D;&#x435; &#x43F;&#x43E;&#x43A;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; literal. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; storage credential &#x43C;&#x435;&#x436;&#x434;&#x443; hosts &#x438; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x441;&#x440;&#x43E;&#x43A; &#x436;&#x438;&#x437;&#x43D;&#x438;. &#x41A;&#x43B;&#x44E;&#x447; &#x431;&#x435;&#x437; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x430; &#x438; &#x434;&#x430;&#x442;&#x44B; &#x43E;&#x442;&#x437;&#x44B;&#x432;&#x430; &#x2014; &#x443;&#x436;&#x435; &#x442;&#x435;&#x445;&#x43D;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x434;&#x43E;&#x43B;&#x433;, &#x434;&#x430;&#x436;&#x435; &#x435;&#x441;&#x43B;&#x438; &#x448;&#x438;&#x444;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442;.</p><p>&#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; <a href="https://github.com/linux-nvme/nvme-cli/blob/master/libnvme/design/CONFIG.md?ref=kingservers.com">design document libnvme</a> &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; authentication &#x438; encryption &#x438; &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; default keyring <code>.nvme</code>. &#x418;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x44D;&#x442;&#x43E;&#x442; &#x438;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A; &#x434;&#x43B;&#x44F; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;, &#x43D;&#x43E; &#x43D;&#x435; &#x441;&#x447;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D;&#x43D;&#x44B;&#x439; INI-&#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43D;&#x438;&#x435;&#x43C; &#x432;&#x430;&#x448;&#x435;&#x433;&#x43E; stable package. &#x41D;&#x430;&#x434;&#x451;&#x436;&#x43D;&#x430;&#x44F; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x432;&#x430;&#x43B;&#x438;&#x434;&#x438;&#x440;&#x443;&#x435;&#x442; capabilities, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x438;&#x43C;&#x43F;&#x43E;&#x440;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; key &#x438; &#x43B;&#x438;&#x448;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; connection profile. &#x41F;&#x440;&#x438; &#x441;&#x431;&#x43E;&#x435; &#x43E;&#x43D;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x434;&#x43E; disconnect &#x441;&#x442;&#x430;&#x440;&#x43E;&#x439; &#x440;&#x430;&#x431;&#x43E;&#x447;&#x435;&#x439; &#x441;&#x435;&#x441;&#x441;&#x438;&#x438;.</p>
<p>&#x412; inventory &#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x43D;&#x435; secret, &#x430; fingerprint &#x438;&#x43B;&#x438; key identity, &#x441;&#x435;&#x440;&#x438;&#x439;&#x43D;&#x44B;&#x439; &#x43D;&#x43E;&#x43C;&#x435;&#x440;, Host NQN, Subsystem NQN, &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x430;, &#x434;&#x430;&#x442;&#x443; &#x432;&#x44B;&#x434;&#x430;&#x447;&#x438; &#x438; deadline &#x43E;&#x442;&#x437;&#x44B;&#x432;&#x430;. &#x414;&#x43B;&#x44F; incident response &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x44C;, &#x43A;&#x430;&#x43A;&#x43E;&#x439; credential &#x437;&#x430;&#x442;&#x440;&#x43E;&#x43D;&#x443;&#x442;. Payload &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x432; secrets channel &#x438; kernel keyring. &#x420;&#x43E;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x431;&#x435;&#x437; &#x442;&#x430;&#x43A;&#x43E;&#x433;&#x43E; &#x440;&#x435;&#x435;&#x441;&#x442;&#x440;&#x430; &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x43D;&#x435;&#x438;&#x437;&#x431;&#x435;&#x436;&#x43D;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x441;&#x442;&#x430;&#x440;&#x44B;&#x435; PSK &#x43D;&#x430; &#x447;&#x430;&#x441;&#x442;&#x438; inference-&#x443;&#x437;&#x43B;&#x43E;&#x432;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">inspect-nvme-keyring.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code># &#x421;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; &#x433;&#x435;&#x43D;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; nvme-cli; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x43C; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x441;&#x43F;&#x440;&#x430;&#x432;&#x43A;&#x443;.
nvme version
nvme gen-tls-key --help 2&gt;/dev/null || true
nvme keys gen-tls --help 2&gt;/dev/null || true

# &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x43C;&#x43F;&#x43E;&#x440;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C; &#x43C;&#x435;&#x442;&#x430;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435;, &#x43D;&#x435; &#x43F;&#x435;&#x447;&#x430;&#x442;&#x430;&#x44F; payload &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442;&#x430;.
keyctl show
keyctl list @s | sed -n &apos;/NVMe/p&apos;
systemctl status tlshd --no-pager</code></pre>

</div>
<figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-04-8a242609.webp" class="kg-image" alt="NVMe/TCP TLS &#x438; DH-HMAC-CHAP: &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x43C; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-04-8a242609.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-04-8a242609.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-04-8a242609.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="chap-mutual">DH-HMAC-CHAP: &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; mutual auth &#x43E;&#x441;&#x43E;&#x437;&#x43D;&#x430;&#x43D;&#x43D;&#x43E;</h2>
<p>&#x41E;&#x434;&#x43D;&#x43E;&#x441;&#x442;&#x43E;&#x440;&#x43E;&#x43D;&#x43D;&#x438;&#x439; DH-HMAC-CHAP &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; target, &#x447;&#x442;&#x43E; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x442;&#x441;&#x44F; host &#x441; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x43C; &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442;&#x43E;&#x43C;. &#x42D;&#x442;&#x43E; &#x431;&#x43B;&#x43E;&#x43A;&#x438;&#x440;&#x443;&#x435;&#x442; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x44B;&#x439; &#x438;&#x43B;&#x438; &#x447;&#x443;&#x436;&#x43E;&#x439; initiator, &#x434;&#x430;&#x436;&#x435; &#x435;&#x441;&#x43B;&#x438; &#x43E;&#x43D; &#x437;&#x43D;&#x430;&#x435;&#x442; &#x430;&#x434;&#x440;&#x435;&#x441; &#x438; NQN subsystem. &#x414;&#x432;&#x443;&#x441;&#x442;&#x43E;&#x440;&#x43E;&#x43D;&#x43D;&#x438;&#x439; &#x440;&#x435;&#x436;&#x438;&#x43C; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; controller secret &#x438; &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; host &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; storage endpoint. &#x414;&#x43B;&#x44F; &#x444;&#x430;&#x431;&#x440;&#x438;&#x43A;&#x438;, &#x433;&#x434;&#x435; &#x43C;&#x430;&#x440;&#x448;&#x440;&#x443;&#x442;&#x44B; &#x438;&#x43B;&#x438; DNS &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C;&#x441;&#x44F;, mutual auth &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x432;&#x430;&#x436;&#x43D;&#x443;&#x44E; &#x434;&#x44B;&#x440;&#x443; &#x432; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x438;.</p>
<p>&#x41D;&#x435; &#x43F;&#x443;&#x442;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x43F;&#x440;&#x43E;&#x442;&#x43E;&#x43A;&#x43E;&#x43B;&#x430; &#x438; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x439; CLI. &#x412; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x438;&#x43A;&#x430;&#x445; nvme-cli master legacy <code>gen-dhchap-key</code> &#x43F;&#x435;&#x440;&#x435;&#x438;&#x43C;&#x435;&#x43D;&#x43E;&#x432;&#x44B;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; <code>nvme keys gen-kxchap</code>; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x435; connection options &#x442;&#x430;&#x43A;&#x436;&#x435; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x44E;&#x442; <code>kxchap-*</code> spelling. &#x41D;&#x430; stable-&#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x43E;&#x435; &#x438;&#x43C;&#x44F;. &#x41F;&#x43E;&#x43C;&#x435;&#x447;&#x430;&#x439;&#x442;&#x435; &#x44D;&#x442;&#x443; &#x440;&#x430;&#x437;&#x432;&#x438;&#x43B;&#x43A;&#x443; &#x432; runbook &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x435; flags &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x435;.</p>
<p>Production-&#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x436;&#x451;&#x441;&#x442;&#x43A;&#x43E;&#x435;: &#x435;&#x441;&#x43B;&#x438; &#x432;&#x430;&#x448;&#x430; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; literal DH-CHAP secret &#x432; world-readable &#x444;&#x430;&#x439;&#x43B;&#x435;, gate &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x438;&#x442;&#x44C;&#x441;&#x44F; FAIL. &#x418;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x44C;&#x442;&#x435; permissions &#x438; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431; provisioning &#x43B;&#x438;&#x431;&#x43E; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x44C;&#x442;&#x435;&#x441;&#x44C; TLS PSK, &#x43F;&#x43E;&#x43A;&#x430; secrets story &#x43D;&#x435; &#x441;&#x442;&#x430;&#x43D;&#x435;&#x442; &#x43F;&#x440;&#x438;&#x435;&#x43C;&#x43B;&#x435;&#x43C;&#x43E;&#x439;. &#xAB;&#x424;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x44F; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F;&#xBB; &#x43D;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; &#xAB;&#x435;&#x451; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x442;&#x44C; &#x432; &#x434;&#x430;&#x43D;&#x43D;&#x43E;&#x43C; &#x434;&#x438;&#x441;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438;&#x432;&#x435;&#xBB;.</p>
<p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; canary host &#x438; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x43E;&#x433;&#x43E; subsystem. &#x41F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442;: &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; host secret &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x442;&#x441;&#x44F;. &#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435;: &#x43D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; secret &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x442;&#x441;&#x44F;; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x44B;&#x439; host &#x43D;&#x435; &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442; controller &#x441; &#x43D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x43C; mutual secret; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x431;&#x435;&#x437; TLS &#x43E;&#x442;&#x432;&#x435;&#x440;&#x433;&#x430;&#x435;&#x442;&#x441;&#x44F; policy. &#x41A;&#x430;&#x436;&#x434;&#x44B;&#x439; &#x43E;&#x442;&#x43A;&#x430;&#x437; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x432;&#x438;&#x434;&#x435;&#x43D; &#x432; host journal &#x438; target audit, &#x438;&#x43D;&#x430;&#x447;&#x435; on-call &#x43D;&#x435; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x438;&#x442; &#x430;&#x442;&#x430;&#x43A;&#x443; &#x43E;&#x442; &#x43E;&#x43F;&#x435;&#x447;&#x430;&#x442;&#x43A;&#x438;.</p>
<div class="ks-widget" id="ks-tab-f5d2w8s"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x44B;&#x43C;</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="link">Link</button><button type="button" class="tab-btn" data-t="block">Block I/O</button><button type="button" class="tab-btn" data-t="app">Application</button></div><div class="panel on" data-p="link">Controller connected &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x435; &#x442;&#x440;&#x430;&#x43D;&#x441;&#x43F;&#x43E;&#x440;&#x442;&#x43D;&#x43E;&#x439; &#x441;&#x435;&#x441;&#x441;&#x438;&#x438;. &#x42D;&#x442;&#x43E; &#x435;&#x449;&#x451; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x439; key identity &#x438; &#x43D;&#x435; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;.</div><div class="panel" data-p="block">&#x427;&#x442;&#x435;&#x43D;&#x438;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x444;&#x430;&#x439;&#x43B;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x43A; namespace &#x438; &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432;&#x43E;&#x439; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x435;, &#x43D;&#x43E; &#x43D;&#x435; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x44C; model revision.</div><div class="panel" data-p="app">&#x423;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; deterministic probe &#x43A; vLLM &#x441; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x43C; model identity &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442; gate. &#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x441; &#x442;&#x435;&#x43C; &#x436;&#x435; probe &#x434;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;.</div><script>(function(){var r=document.getElementById('ks-tab-f5d2w8s');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-05-a1b1e4cd.webp" class="kg-image" alt="NVMe/TCP TLS &#x438; DH-HMAC-CHAP: &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x43C; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-05-a1b1e4cd.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-05-a1b1e4cd.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-05-a1b1e4cd.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="secure-connect">Secure connect &#x438; effective-state gate</h2>
<p>Connection config &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x442;&#x44C; stable identities, transport address &#x438; security policy. &#x41D;&#x435; &#x43F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442; &#x43A; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x43C;&#x443; &#x43D;&#x43E;&#x43C;&#x435;&#x440;&#x443; controller. &#x412; &#x441;&#x432;&#x435;&#x436;&#x435;&#x43C; INI-&#x434;&#x438;&#x437;&#x430;&#x439;&#x43D;&#x435; linux-nvme &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x437;&#x430;&#x434;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435; Host &#x438;&#x43B;&#x438; Subsystem, &#x430; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; <code>controller =</code> &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438; &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x44E;&#x442; &#x43F;&#x443;&#x442;&#x438;. &#x41D;&#x43E; &#x44D;&#x442;&#x430; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x43E;&#x442;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x441;&#x44F; &#x43A; &#x440;&#x430;&#x437;&#x432;&#x438;&#x432;&#x430;&#x44E;&#x449;&#x435;&#x439;&#x441;&#x44F; &#x432;&#x435;&#x442;&#x43A;&#x435;: &#x434;&#x43B;&#x44F; stable distribution &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x439; &#x438;&#x43C; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442; &#x438; nvme-stas/systemd integration.</p>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; connect &#x441;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x442;&#x440;&#x438; &#x432;&#x438;&#x434;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;. Static state: &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x439; subsystem &#x438; namespace &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x443; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x433;&#x43E; Host NQN. Transport state: kernel &#x438; tlshd &#x43D;&#x435; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x430;&#x44E;&#x442; fallback &#x438;&#x43B;&#x438; handshake error. Data-path test: &#x447;&#x442;&#x435;&#x43D;&#x438;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; immutable-&#x444;&#x430;&#x439;&#x43B;&#x430; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x447;&#x435;&#x440;&#x435;&#x437; &#x430;&#x433;&#x440;&#x435;&#x433;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E;. &#x421;&#x430;&#x43C;&#x43E; &#x43D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x435; <code>/dev/nvmeXnY</code> &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E;.</p>
<p>&#x41D;&#x435; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; destructive benchmark &#x43D;&#x430; production weights. &#x414;&#x43B;&#x44F; canary &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x444;&#x430;&#x439;&#x43B;&#x430; &#x441; manifest hash &#x438; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; read. &#x415;&#x441;&#x43B;&#x438; storage team &#x43F;&#x440;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x434;&#x432;&#x430; &#x43F;&#x443;&#x442;&#x438;, TLS &#x438; authentication &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x431;&#x44B;&#x442;&#x44C; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x44B; &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C;; &#x43E;&#x434;&#x438;&#x43D; &#x43D;&#x435;&#x437;&#x430;&#x448;&#x438;&#x444;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x43E;&#x431;&#x43D;&#x443;&#x43B;&#x44F;&#x435;&#x442; &#x441;&#x43C;&#x44B;&#x441;&#x43B; change.</p><p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;. Firewall &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x430;&#x442;&#x44C; target port &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43E;&#x442; storage interfaces, routing &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43D;&#x435;&#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x43D;&#x43E; &#x443;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x44C; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x447;&#x435;&#x440;&#x435;&#x437; management-&#x441;&#x435;&#x442;&#x44C;, &#x430; MTU &#x438; offload &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x43E; &#x43E;&#x442; TLS rollout. Packet capture &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C; &#x43D;&#x430; &#x43B;&#x430;&#x431;&#x43E;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x43D;&#x43E;&#x43C; &#x441;&#x442;&#x435;&#x43D;&#x434;&#x435; &#x43A;&#x430;&#x43A; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E;: &#x43F;&#x43E;&#x441;&#x43B;&#x435; secure connect &#x432; &#x437;&#x430;&#x445;&#x432;&#x430;&#x442;&#x435; &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x43E; &#x431;&#x44B;&#x442;&#x44C; &#x447;&#x438;&#x442;&#x430;&#x435;&#x43C;&#x43E;&#x433;&#x43E; payload &#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;. &#x41D;&#x43E; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; &#x447;&#x438;&#x442;&#x430;&#x435;&#x43C;&#x43E;&#x439; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438; &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x443; negotiated security state &#x438; target policy.</p>
<p>&#x415;&#x441;&#x43B;&#x438; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442;&#x441;&#x44F; multipath, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x433;&#x43E; &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x442;&#x435;&#x441;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; failover. &#x418;&#x43D;&#x430;&#x447;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x441;&#x43E;&#x435;&#x434;&#x438;&#x43D;&#x44F;&#x435;&#x442; &#x441;&#x440;&#x430;&#x437;&#x443; &#x434;&#x432;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x435;. &#x423; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x442;&#x44C; Host NQN, Subsystem NQN &#x438; security requirement; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x430;&#x434;&#x440;&#x435;&#x441; &#x438; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x442;&#x43A;&#x430;&#x437;&#x430; &#x43F;&#x443;&#x442;&#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; application probe, &#x430; &#x43D;&#x435; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;&#x43C; controller.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">verify-secure-nvme.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>set -eu
nvme list
nvme list-subsys
journalctl -u tlshd -b --no-pager | tail -n 100
journalctl -k -b --no-pager | grep -E &apos;nvme|TLS|auth&apos; | tail -n 150

# MODEL_MOUNT &#x438; MANIFEST &#x437;&#x430;&#x434;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x432; &#x43E;&#x43A;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x438;&#x438; canary.
test -r &quot;$MODEL_MOUNT/$MANIFEST&quot;
sha256sum -c &quot;$MODEL_MOUNT/$MANIFEST&quot;
findmnt -no SOURCE,TARGET,OPTIONS &quot;$MODEL_MOUNT&quot;</code></pre>

</div>
<h2 id="application-gate">&#x41E;&#x442; &#x431;&#x43B;&#x43E;&#x43A;&#x430; &#x43A; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;: immutable mount &#x438; vLLM probe</h2>
<p>Storage gate &#x437;&#x430;&#x43A;&#x430;&#x43D;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x43D;&#x430; <code>sha256sum</code>. Model service &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x440;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; pinned revision, &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x44C; tokenizer &#x438; weights &#x438; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x438;&#x442;&#x44C; &#x43D;&#x430; &#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; probe. &#x410;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; vLLM &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442; &#x432; <code>--model</code> &#x438;&#x43C;&#x44F; &#x43B;&#x438;&#x431;&#x43E; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C;; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x43D;&#x430; &#x437;&#x430;&#x449;&#x438;&#x449;&#x451;&#x43D;&#x43D;&#x43E;&#x43C; mount &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; &#x441;&#x432;&#x44F;&#x437;&#x44C; &#x441;&#x43E; storage gate &#x44F;&#x432;&#x43D;&#x43E;&#x439;. &#x41D;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; <code>--trust-remote-code</code> &#x431;&#x435;&#x437; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; review: transport encryption &#x43D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; &#x447;&#x443;&#x436;&#x43E;&#x439; Python-&#x43A;&#x43E;&#x434; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x43C;.</p>
<p>&#x421;&#x43C;&#x43E;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; model volume read-only &#x434;&#x43B;&#x44F; service account, &#x437;&#x430;&#x43F;&#x440;&#x435;&#x442;&#x438;&#x442;&#x435; &#x441;&#x442;&#x430;&#x440;&#x442; &#x434;&#x43E; secure connect &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; manifest. &#x41D;&#x435; &#x43F;&#x43E;&#x43B;&#x430;&#x433;&#x430;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; <code>network-online.target</code>: &#x43E;&#x43D; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x430;&#x435;&#x442; &#x43E; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43C;&#x435;&#x43D;&#x435;&#x434;&#x436;&#x435;&#x440;&#x430; &#x441;&#x435;&#x442;&#x438;, &#x430; &#x43D;&#x435; &#x43E; &#x43D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x438; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; NVMe namespace, mount &#x438;&#x43B;&#x438; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x43B;&#x44E;&#x447;&#x430;. &#x412; unit chain &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; oneshot gate, &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x433;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442; vLLM.</p>
<p>Application probe &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x43C; &#x434;&#x43E; &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; change: &#x442;&#x43E;&#x442; &#x436;&#x435; model revision, tokenizer, &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; deterministic request &#x438; &#x43A;&#x440;&#x438;&#x442;&#x435;&#x440;&#x438;&#x439; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x438; API. &#x41C;&#x44B; &#x43D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x435;&#x43C;, &#x447;&#x442;&#x43E; TLS &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442; inference &#x2014; &#x43E;&#x43D; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x438;&#x442;&#x44C; CPU cost &#x43D;&#x430; I/O path. &#x417;&#x430;&#x434;&#x430;&#x447;&#x430; canary &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x438;&#x442; &#x432; &#x442;&#x43E;&#x43C;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x44C; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; &#x43D;&#x435;&#x43F;&#x440;&#x438;&#x435;&#x43C;&#x43B;&#x435;&#x43C;&#x43E;&#x439; &#x440;&#x435;&#x433;&#x440;&#x435;&#x441;&#x441;&#x438;&#x438; &#x43D;&#x430; &#x432;&#x430;&#x448;&#x435;&#x439; &#x441;&#x435;&#x442;&#x438; &#x438; CPU, &#x43D;&#x435; &#x432;&#x44B;&#x434;&#x443;&#x43C;&#x44B;&#x432;&#x430;&#x44F; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; benchmark.</p>
<p>&#x415;&#x441;&#x43B;&#x438; &#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; private AI endpoint, &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x44D;&#x442;&#x43E;&#x442; storage gate &#x441; gateway, auth &#x438; quotas &#x438;&#x437; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/private-ai-api-analog-openai-na-svoih-serverah/">Private AI API &#x43D;&#x430; &#x441;&#x432;&#x43E;&#x438;&#x445; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;&#x445;</a>. &#x417;&#x430;&#x449;&#x438;&#x449;&#x451;&#x43D;&#x43D;&#x44B;&#x435; weights &#x2014; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43E;&#x434;&#x438;&#x43D; &#x441;&#x43B;&#x43E;&#x439; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430;.</p><p>&#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; <a href="https://docs.vllm.ai/en/latest/cli/serve/?ref=kingservers.com">CLI-&#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; vLLM</a> &#x43D;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; <code>--model</code> &#x438;&#x43C;&#x435;&#x43D;&#x435;&#x43C; &#x438;&#x43B;&#x438; &#x43F;&#x443;&#x442;&#x451;&#x43C; &#x438; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442; &#x43E; &#x440;&#x438;&#x441;&#x43A;&#x430;&#x445; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; media access &#x438; remote code. Pinning &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x434;&#x432;&#x443;&#x445; &#x443;&#x440;&#x43E;&#x432;&#x43D;&#x44F;&#x445;: &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432;&#x44B;&#x439; manifest &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x435;&#x442; &#x431;&#x430;&#x439;&#x442;&#x44B;, &#x430; deployment config &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x435;&#x442; &#x43F;&#x443;&#x442;&#x44C; &#x438; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; loader. &#x415;&#x441;&#x43B;&#x438; symlink <code>current</code> &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x431;&#x435;&#x437; change record, storage transport &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x437;&#x430;&#x449;&#x438;&#x449;&#x451;&#x43D;&#x43D;&#x44B;&#x43C;, &#x43D;&#x43E; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x440;&#x435;&#x43B;&#x438;&#x437;&#x430; &#x442;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x441;&#x44F;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">ini</span><span class="ks-canonical-code-block__filename">vllm-secure-storage.service</span></div>
<pre class="ks-canonical-code-block__pre"><code>[Unit]
Description=vLLM with verified remote model storage
After=network-online.target nvme-model-storage.service
Requires=nvme-model-storage.service
ConditionPathIsReadWrite=!/srv/models

[Service]
User=vllm
ExecStartPre=/usr/local/sbin/verify-model-manifest /srv/models/revision
ExecStart=/opt/vllm/bin/vllm serve /srv/models/revision --load-format safetensors
Restart=on-failure
NoNewPrivileges=yes
ProtectSystem=strict
ReadOnlyPaths=/srv/models

[Install]
WantedBy=multi-user.target</code></pre>

</div>
<figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-06-e5c34d95.webp" class="kg-image" alt="NVMe/TCP TLS &#x438; DH-HMAC-CHAP: &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x43C; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-06-e5c34d95.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-06-e5c34d95.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-06-e5c34d95.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="canary-rotation">Canary, negative controls &#x438; &#x440;&#x43E;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x431;&#x435;&#x437; &#x441;&#x43B;&#x435;&#x43F;&#x43E;&#x433;&#x43E; &#x43E;&#x43A;&#x43D;&#x430;</h2>
<p>&#x41F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; rollout &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x441; &#x43D;&#x43E;&#x432;&#x43E;&#x433;&#x43E; key identity, &#x430; &#x43D;&#x435; &#x441; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x441;&#x442;&#x430;&#x440;&#x43E;&#x433;&#x43E;. &#x417;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x439; TLS PSK &#x43D;&#x430; canary host &#x438; target, &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; secure connection, &#x43F;&#x440;&#x43E;&#x439;&#x434;&#x438;&#x442;&#x435; static, data-path &#x438; application gates. &#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x443;&#x44E; &#x434;&#x43E;&#x43B;&#x44E; inference workload. &#x421;&#x442;&#x430;&#x440;&#x44B;&#x439; &#x43A;&#x43B;&#x44E;&#x447; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x43E;&#x435;, &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x43D;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E; rollback.</p>
<p>&#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x442;&#x435;&#x441;&#x442;&#x44B; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B; &#x438; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;, &#x435;&#x441;&#x43B;&#x438; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x43E;&#x43C; subsystem: &#x43D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; PSK &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x441;&#x43B;&#x43E;&#x43C;&#x430;&#x442;&#x44C; handshake; &#x43D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; Host NQN &#x2014; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43E;&#x442;&#x43A;&#x430;&#x437;; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; TLS &#x2014; &#x43D;&#x435; &#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; &#x442;&#x438;&#x445;&#x43E;&#x433;&#x43E; plaintext fallback; &#x43D;&#x435;&#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; pinned revision &#x2014; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x442;&#x44C; model service &#x434;&#x43E; bind &#x43F;&#x43E;&#x440;&#x442;&#x430;. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x43B;&#x443;&#x447;&#x448;&#x435;, &#x447;&#x435;&#x43C; &#x435;&#x449;&#x451; &#x43E;&#x434;&#x438;&#x43D; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; connect.</p>
<p>Rollback &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x435;&#x43D; rollout. &#x41E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; model service, &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x439; connection profile &#x438; key identity, &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; namespace, &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; manifest &#x438; application probe. &#x41D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x439;&#x442;&#x435; disconnect &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;, &#x43F;&#x43E;&#x43A;&#x430; &#x441; &#x43D;&#x435;&#x433;&#x43E; &#x447;&#x438;&#x442;&#x430;&#x44E;&#x442; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x44B;: &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; drain, &#x437;&#x430;&#x442;&#x435;&#x43C; unmount, &#x438; &#x43B;&#x438;&#x448;&#x44C; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; transport changes. Owner &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; &#x448;&#x430;&#x433;&#x430; &#x438; stop condition &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x431;&#x44B;&#x442;&#x44C; &#x432; runbook.</p>
<p>&#x420;&#x43E;&#x442;&#x430;&#x446;&#x438;&#x44E; &#x43F;&#x43B;&#x430;&#x43D;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x434;&#x43B;&#x44F; TLS PSK, host authentication secret &#x438; controller secret. &#x41E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x430;&#x44F; &#x441;&#x43C;&#x435;&#x43D;&#x430; &#x432;&#x441;&#x435;&#x445; &#x442;&#x440;&#x451;&#x445; &#x443;&#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x44F;&#x435;&#x442; attribution. &#x415;&#x441;&#x43B;&#x438; canary &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x43B;&#x441;&#x44F;, &#x432;&#x44B; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x441;&#x440;&#x430;&#x437;&#x443; &#x43F;&#x43E;&#x43D;&#x438;&#x43C;&#x430;&#x442;&#x44C;, &#x441;&#x43B;&#x43E;&#x43C;&#x430;&#x43D;&#x430; identity policy, authentication &#x438;&#x43B;&#x438; TLS handshake.</p><div class="ks-widget" id="ks-chk-q4b7n1x"><h3>Canary &#x433;&#x43E;&#x442;&#x43E;&#x432; &#x43A; &#x440;&#x43E;&#x442;&#x430;&#x446;&#x438;&#x438;</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x41D;&#x43E;&#x432;&#x44B;&#x439; &#x43A;&#x43B;&#x44E;&#x447; &#x441;&#x432;&#x44F;&#x437;&#x430;&#x43D; &#x441; &#x442;&#x435;&#x43C;&#x438; &#x436;&#x435; Host NQN &#x438; Subsystem NQN</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> Canary &#x447;&#x438;&#x442;&#x430;&#x435;&#x442; pinned model revision</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> &#x41D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; &#x43A;&#x43B;&#x44E;&#x447; &#x437;&#x430;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x435;&#x440;&#x43D;&#x43E; &#x43E;&#x442;&#x43A;&#x43B;&#x43E;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> &#x41D;&#x435;&#x437;&#x430;&#x449;&#x438;&#x449;&#x451;&#x43D;&#x43D;&#x43E;&#x435; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x437;&#x430;&#x43F;&#x440;&#x435;&#x449;&#x435;&#x43D;&#x43E; target policy</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x421;&#x442;&#x430;&#x440;&#x44B;&#x439; &#x43A;&#x43B;&#x44E;&#x447; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; &#x43E;&#x43A;&#x43D;&#x43E; rollback</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> &#x410;&#x43B;&#x435;&#x440;&#x442;&#x44B; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x44B; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x44B;&#x43C; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x435;&#x43C;</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-q4b7n1x');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-07-d3842920.webp" class="kg-image" alt="NVMe/TCP TLS &#x438; DH-HMAC-CHAP: &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x43C; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-07-d3842920.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-07-d3842920.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvme-tcp-tls-dh-hmac-chap-llm-storage-inline-07-d3842920.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="observability">&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;: &#x430;&#x43B;&#x435;&#x440;&#x442; &#x43D;&#x435; &#x43D;&#x430; &#x448;&#x443;&#x43C;, &#x430; &#x43D;&#x430; &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44E; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x439;</h2>
<p>&#x421;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x439;&#x442;&#x435; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x44F; &#x438;&#x437; kernel journal, tlshd, nvme-stas &#x438;&#x43B;&#x438; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; orchestrator, target audit &#x438; model service. &#x41F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x435; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;&#x44B;: &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x44E;&#x449;&#x438;&#x435;&#x441;&#x44F; reconnect, authentication failure, TLS handshake error, &#x438;&#x441;&#x447;&#x435;&#x437;&#x43D;&#x43E;&#x432;&#x435;&#x43D;&#x438;&#x435; controller, &#x440;&#x43E;&#x441;&#x442; model cold-start time, manifest mismatch &#x438; restart loop vLLM. &#x41E;&#x434;&#x438;&#x43D; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A; &#x43D;&#x435; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x438;&#x442; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x441;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x438;&#x445; &#x43F;&#x43E; Host NQN, Subsystem NQN &#x438; deployment revision.</p>
<p>&#x410;&#x43B;&#x435;&#x440;&#x442; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x442;&#x44C; &#x43D;&#x430; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441; &#x43E; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x438;. &#xAB;Controller reconnect&#xBB; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C; &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; maintenance. &#xAB;&#x41F;&#x43E;&#x441;&#x43B;&#x435; reconnect secure application probe &#x43D;&#x435; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x43B;&#x441;&#x44F; &#x437;&#x430; &#x43F;&#x440;&#x438;&#x43D;&#x44F;&#x442;&#x44B;&#x439; SLO&#xBB; &#x443;&#x436;&#x435; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x440;&#x435;&#x430;&#x43A;&#x446;&#x438;&#x438;. &#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x440;&#x438;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B; &#x2014; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; plaintext connect &#x442;&#x430;&#x43C;, &#x433;&#x434;&#x435; policy &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; TLS. &#x415;&#x433;&#x43E; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43B;&#x43E;&#x432;&#x438;&#x442;&#x44C; target-side &#x438; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x442;&#x44C; &#x440;&#x435;&#x433;&#x443;&#x43B;&#x44F;&#x440;&#x43D;&#x44B;&#x43C; negative test.</p>
<p>&#x41D;&#x435; &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; secrets, key payload &#x438;&#x43B;&#x438; &#x43F;&#x43E;&#x43B;&#x43D;&#x443;&#x44E; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x43D;&#x443;&#x44E; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x443; &#x432; telemetry. &#x414;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x44B; key identity, serial, owner, &#x441;&#x440;&#x43E;&#x43A; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x44F; &#x438; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438;. &#x414;&#x43B;&#x44F; &#x43E;&#x431;&#x449;&#x435;&#x439; &#x430;&#x440;&#x445;&#x438;&#x442;&#x435;&#x43A;&#x442;&#x443;&#x440;&#x44B; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;, &#x43B;&#x43E;&#x433;&#x43E;&#x432; &#x438; &#x430;&#x43B;&#x435;&#x440;&#x442;&#x43E;&#x432; &#x43F;&#x440;&#x438;&#x433;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x43E; <a href="https://kingservers.com/blog/observability-vs-monitoring-prometheus-grafana-loki/">Observability vs Monitoring</a>, &#x43D;&#x43E; security events NVMe/TCP &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x43E;&#x441;&#x442;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x441;&#x430;&#x43C;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; runbook.</p>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; kernel, nvme-cli &#x438;&#x43B;&#x438; ktls-utils &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x439;&#x442;&#x435; capability gate &#x43D;&#x430; canary. &#x412;&#x435;&#x440;&#x441;&#x438;&#x43E;&#x43D;&#x43D;&#x430;&#x44F; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x2014; &#x447;&#x430;&#x441;&#x442;&#x44C; availability. &#x417;&#x435;&#x43B;&#x451;&#x43D;&#x44B;&#x439; health model API &#x43D;&#x430; &#x441;&#x442;&#x430;&#x440;&#x43E;&#x439; &#x441;&#x435;&#x441;&#x441;&#x438;&#x438; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; reboot &#x441;&#x43C;&#x43E;&#x436;&#x435;&#x442; &#x437;&#x430;&#x43D;&#x43E;&#x432;&#x43E; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x44C; TLS handshake.</p><h2 id="conclusion">&#x418;&#x442;&#x43E;&#x433;: &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x443;&#x442;&#x44C; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x43C;&#x438; &#x441;&#x43B;&#x43E;&#x44F;&#x43C;&#x438;</h2>
<p>&#x411;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; NVMe/TCP &#x434;&#x43B;&#x44F; LLM &#x2014; &#x44D;&#x442;&#x43E; &#x43D;&#x435; &#x444;&#x43B;&#x430;&#x433; <code>--tls</code>, &#x430; &#x446;&#x435;&#x43F;&#x43E;&#x447;&#x43A;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;. &#x421;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; Host NQN &#x437;&#x430;&#x434;&#x430;&#x451;&#x442; identity, DH-HMAC-CHAP &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; initiator &#x438; &#x43F;&#x440;&#x438; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; controller, TLS &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x442; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x439; &#x43F;&#x443;&#x442;&#x44C;, manifest &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x435;&#x442; model revision, &#x430; vLLM probe &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;. &#x41A;&#x430;&#x436;&#x434;&#x44B;&#x439; &#x441;&#x43B;&#x43E;&#x439; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x441;&#x432;&#x43E;&#x439; &#x440;&#x438;&#x441;&#x43A; &#x438; &#x438;&#x43C;&#x435;&#x435;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; owner.</p>
<p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; &#x43C;&#x430;&#x43B;&#x43E;&#x433;&#x43E;: &#x438;&#x43D;&#x432;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x437;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; &#x438; kernel configs, &#x437;&#x430;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x44B;&#x439; subsystem, &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x43E;&#x436;&#x438;&#x432;&#x443;&#x449;&#x438;&#x439; PSK &#x432; keyring &#x438; &#x434;&#x43E;&#x431;&#x435;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x43F;&#x440;&#x435;&#x434;&#x441;&#x43A;&#x430;&#x437;&#x443;&#x435;&#x43C;&#x43E;&#x433;&#x43E; &#x43E;&#x442;&#x43A;&#x430;&#x437;&#x430; &#x441; &#x43D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x43C; &#x43A;&#x43B;&#x44E;&#x447;&#x43E;&#x43C;. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435; read-only model revision, &#x43F;&#x440;&#x43E;&#x439;&#x434;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; application probe &#x434;&#x43E; &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; change &#x438; &#x43E;&#x442;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x439;&#x442;&#x435; rollback. &#x415;&#x441;&#x43B;&#x438; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F;, &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; production canary, &#x430; &#x43D;&#x435; &#x432;&#x435;&#x441;&#x44C; GPU-&#x43F;&#x430;&#x440;&#x43A;.</p>
<p>&#x414;&#x43B;&#x44F; workloads, &#x433;&#x434;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x447;&#x438;&#x442;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x434;&#x438;&#x43D; &#x440;&#x430;&#x437; &#x438; &#x441;&#x435;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x438;&#x437;&#x43E;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x430;, &#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43D;&#x435; &#x43E;&#x43A;&#x443;&#x43F;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x2014; &#x44D;&#x442;&#x43E; &#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x432;&#x44B;&#x432;&#x43E;&#x434;. &#x41D;&#x43E; &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x445; inference-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43E;&#x432; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x44E;&#x442; &#x446;&#x435;&#x43D;&#x43D;&#x44B;&#x435; weights &#x43F;&#x43E; &#x43E;&#x431;&#x449;&#x435;&#x439; IP-&#x444;&#x430;&#x431;&#x440;&#x438;&#x43A;&#x435;, &#x441;&#x43E;&#x447;&#x435;&#x442;&#x430;&#x43D;&#x438;&#x435; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; identity, transport encryption &#x438; negative controls &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x43E;&#x435; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x435; &#x432; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x443;&#x44E; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x44E;. &#x41F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x44F;&#x449;&#x438;&#x439; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440; &#x438; &#x441;&#x435;&#x442;&#x435;&#x432;&#x443;&#x44E; &#x441;&#x445;&#x435;&#x43C;&#x443; &#x441;&#x442;&#x43E;&#x438;&#x442; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x442;&#x44C; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; threat model; &#x43E;&#x431;&#x437;&#x43E;&#x440; &#x43A;&#x440;&#x438;&#x442;&#x435;&#x440;&#x438;&#x435;&#x432; &#x435;&#x441;&#x442;&#x44C; &#x432; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B;&#x435; &#x43E; <a href="https://kingservers.com/blog/gpu-servera-dlya-mashinnogo-obucheniya/">GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;&#x445; &#x434;&#x43B;&#x44F; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43E;&#x431;&#x443;&#x447;&#x435;&#x43D;&#x438;&#x44F;</a>.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[NUMA-locality для GPU-инференса: CPU, память и PCIe без удалённого пути]]></title><description><![CDATA[Практический runbook по NUMA-locality для LLM-инференса: topology, CPU и memory affinity, Kubernetes Topology Manager, canary, SLO и rollback.]]></description><link>https://kingservers.com/blog/numa-locality-gpu-llm-inference/</link><guid isPermaLink="false">6a968301aff2afac25354c33</guid><category><![CDATA[GPU]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Tue, 01 Sep 2026 21:29:37 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-hero-537419be.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#numa-symptoms">&#x41A;&#x43E;&#x433;&#x434;&#x430; NUMA &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x43E;&#x439; &#x434;&#x43B;&#x44F; LLM-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430;</a></li>
<li><a href="#inventory">&#x421;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; topology &#x438; baseline &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;</a></li>
<li><a href="#read-map">&#x41A;&#x430;&#x43A; &#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x43A;&#x430;&#x440;&#x442;&#x443; NUMA &#x431;&#x435;&#x437; &#x43B;&#x43E;&#x436;&#x43D;&#x44B;&#x445; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x43E;&#x432;</a></li>
<li><a href="#bare-metal">Baseline &#x43D;&#x430; bare metal: numactl, cpuset &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430;</a></li>
<li><a href="#kubernetes">Kubernetes: &#x43A;&#x43E;&#x433;&#x434;&#x430; Topology Manager &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x432;&#x44B;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x435;&#x442; &#x440;&#x435;&#x441;&#x443;&#x440;&#x441;&#x44B;</a></li>
<li><a href="#proof">&#x41A;&#x430;&#x43A; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;: canary, &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x438; application gate</a></li>
<li><a href="#failure-modes">&#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;: affinity &#x435;&#x441;&#x442;&#x44C;, &#x430; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43D;&#x435;&#x442;</a></li>
<li><a href="#rollout">Rollout &#x438; rollback: &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x43C; canary &#x432; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x44E;</a></li>
<li><a href="#checklist">&#x41A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; production-&#x447;&#x435;&#x43A;&#x43B;&#x438;&#x441;&#x442; &#x434;&#x43B;&#x44F; NUMA-locality</a></li>
<li><a href="#conclusion">&#x412;&#x44B;&#x432;&#x43E;&#x434;: &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x430; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43A;&#x430;&#x43A; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43D;&#x430;&#x44F; policy</a></li>
</ul></div>

</div>GPU &#x43D;&#x435;&#x434;&#x43E;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D;, &#x430; p99 &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x430; &#x440;&#x430;&#x441;&#x442;&#x451;&#x442; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; &#x432;&#x441;&#x43F;&#x43B;&#x435;&#x441;&#x43A;&#x430; CPU-&#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;. &#x41D;&#x430; &#x434;&#x432;&#x443;&#x445;&#x441;&#x43E;&#x43A;&#x435;&#x442;&#x43D;&#x43E;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43D;&#x435; &#x432; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;, &#x430; &#x432; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x43C; &#x43F;&#x443;&#x442;&#x438; &#x43C;&#x435;&#x436;&#x434;&#x443; worker, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C;&#x44E; &#x438; PCIe-root GPU. &#x420;&#x430;&#x437;&#x431;&#x435;&#x440;&#x451;&#x43C;, &#x43A;&#x430;&#x43A; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x44D;&#x442;&#x443; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x443; &#x447;&#x435;&#x440;&#x435;&#x437; topology, effective state &#x438; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; canary, &#x43D;&#x435; &#x432;&#x44B;&#x434;&#x430;&#x432;&#x430;&#x44F; &#x43E;&#x434;&#x43D;&#x443; &#x443;&#x434;&#x430;&#x447;&#x43D;&#x443;&#x44E; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x443; &#x437;&#x430; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x435;. &#x412; &#x444;&#x438;&#x43D;&#x430;&#x43B;&#x435; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x441;&#x44F; runbook &#x441; stop conditions &#x438; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x43C; rollback.<div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <img src="https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-hero-537419be.webp" alt="NUMA-locality &#x434;&#x43B;&#x44F; GPU-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430;: CPU, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x438; PCIe &#x431;&#x435;&#x437; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;"><p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="numa-symptoms">&#x41A;&#x43E;&#x433;&#x434;&#x430; NUMA &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x43E;&#x439; &#x434;&#x43B;&#x44F; LLM-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430;</h2>
<p>GPU &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D; &#x43D;&#x435; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E;, &#x43D;&#x43E; p99 &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x430; &#x43F;&#x43E;&#x43B;&#x437;&#x451;&#x442; &#x432;&#x432;&#x435;&#x440;&#x445;, CPU-&#x43F;&#x43E;&#x442;&#x43E;&#x43A;&#x438; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x43C;&#x435;&#x447;&#x443;&#x442;&#x441;&#x44F; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x441;&#x43E;&#x43A;&#x435;&#x442;&#x430;&#x43C;&#x438;, &#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x440;&#x435;&#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x43A;&#x430;&#x440;&#x442;&#x438;&#x43D;&#x430; &#x438;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x441;&#x430;&#x43C;&#x430; &#x441;&#x43E;&#x431;&#x43E;&#x439;. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;&#x43E;&#x432; &#x447;&#x430;&#x441;&#x442;&#x43E; &#x441;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x44E;&#x442; &#x43D;&#x430; batching, Python, &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#x438;&#x43B;&#x438; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x439; workload. &#x41D;&#x430; &#x434;&#x432;&#x443;&#x445;&#x441;&#x43E;&#x43A;&#x435;&#x442;&#x43D;&#x43E;&#x439; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x435; &#x441;&#x442;&#x43E;&#x438;&#x442; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; &#x435;&#x449;&#x451; &#x43E;&#x434;&#x43D;&#x443; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x443;: &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; GPU &#x447;&#x435;&#x440;&#x435;&#x437; CPU &#x438; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C;, &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x44F;&#x449;&#x438;&#x435;&#x441;&#x44F; &#x43F;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x443;&#x44E; &#x441;&#x442;&#x43E;&#x440;&#x43E;&#x43D;&#x443; &#x43C;&#x435;&#x436;&#x441;&#x43E;&#x43A;&#x435;&#x442;&#x43D;&#x43E;&#x439; &#x448;&#x438;&#x43D;&#x44B;.</p>
<p>NUMA &#x2014; &#x44D;&#x442;&#x43E; &#x43D;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#xAB;&#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#xBB;. &#x41F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x443;&#x437;&#x43B;&#x430; &#x431;&#x43B;&#x438;&#x436;&#x435; &#x43A; &#x441;&#x432;&#x43E;&#x438;&#x43C; CPU-&#x44F;&#x434;&#x440;&#x430;&#x43C;, &#x430; &#x43E;&#x431;&#x440;&#x430;&#x449;&#x435;&#x43D;&#x438;&#x435; &#x43A; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x447;&#x435;&#x440;&#x435;&#x437; &#x43C;&#x435;&#x436;&#x441;&#x43E;&#x43A;&#x435;&#x442;&#x43D;&#x44B;&#x439; interconnect. &#x414;&#x43B;&#x44F; GPU &#x432;&#x430;&#x436;&#x43D;&#x430; &#x438; &#x442;&#x43E;&#x43F;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44F; PCIe: &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x432;&#x438;&#x441;&#x438;&#x442; &#x437;&#x430; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x43C; root complex. &#x415;&#x441;&#x43B;&#x438; tokenizer, scheduler, network thread, pinned host buffers &#x438; GPU feeder &#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43B;&#x438;&#x441;&#x44C; &#x43D;&#x430; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; &#x443;&#x437;&#x43B;&#x430;&#x445;, &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x435;&#x442;&#x44C; &#x442;&#x435;&#x440;&#x43F;&#x438;&#x43C;&#x43E;, &#x43D;&#x43E; &#x445;&#x432;&#x43E;&#x441;&#x442; latency &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; &#x438;&#x445; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435;.</p>
<p>Disqualifier &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x440;&#x430;&#x437;&#x443;: &#x435;&#x441;&#x43B;&#x438; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440; &#x43E;&#x434;&#x43D;&#x43E;&#x441;&#x43E;&#x43A;&#x435;&#x442;&#x43D;&#x44B;&#x439;, &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; GPU-bound, host-to-device &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x43C;&#x430;&#x43B;, &#x430; CPU &#x438; RAM &#x43D;&#x435; &#x43D;&#x430;&#x441;&#x44B;&#x449;&#x435;&#x43D;&#x44B;, &#x440;&#x443;&#x447;&#x43D;&#x430;&#x44F; NUMA-&#x43F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x43A;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43D;&#x438;&#x447;&#x435;&#x433;&#x43E; &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C;. &#x41E;&#x43D;&#x430; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x43D;&#x435; &#x43B;&#x435;&#x447;&#x438;&#x442; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x43A; VRAM, Xid, ECC, &#x43F;&#x43B;&#x43E;&#x445;&#x43E;&#x439; batching &#x438;&#x43B;&#x438; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;. &#x414;&#x43B;&#x44F; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x44B;&#x445; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x43E;&#x432; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; <a href="https://kingservers.com/blog/nvidia-xid-gpu-incident-response/">runbook &#x43F;&#x43E; NVIDIA Xid</a>, &#x430; &#x43D;&#x435; &#x43C;&#x430;&#x441;&#x43A;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x443; affinity.</p>
<p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x43A;&#x440;&#x438;&#x442;&#x435;&#x440;&#x438;&#x439; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x439;: NUMA-locality &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x43D;&#x430; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x442;&#x43E;&#x433;&#x434;&#x430;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x432;&#x44B; &#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x441;&#x432;&#x44F;&#x437;&#x430;&#x442;&#x44C; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#xAB;CPU &#x2192; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x2192; PCIe &#x2192; GPU&#xBB; &#x441; application metric. &#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440; &#x2014; &#x434;&#x432;&#x430; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x445; LLM-worker &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;: &#x43E;&#x434;&#x438;&#x43D; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x435;&#x43D;, &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x434;&#x430;&#x451;&#x442; &#x434;&#x43B;&#x438;&#x43D;&#x43D;&#x44B;&#x439; &#x445;&#x432;&#x43E;&#x441;&#x442; &#x43F;&#x440;&#x438; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x43C; prompt mix. &#x414;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; &#x438;&#x445; topology, effective affinity &#x438; &#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438; &#x438;&#x437; <code>nvidia-smi</code> &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-01-cbe66ca1.webp" class="kg-image" alt="NUMA-locality &#x434;&#x43B;&#x44F; GPU-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430;: CPU, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x438; PCIe &#x431;&#x435;&#x437; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/numa-locality-gpu-llm-inference-inline-01-cbe66ca1.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/numa-locality-gpu-llm-inference-inline-01-cbe66ca1.webp 1000w, https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-01-cbe66ca1.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="inventory">&#x421;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; topology &#x438; baseline &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;</h2>
<p>&#x41D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x441; evidence bundle, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; rollout &#x438; rollback. &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; GPU, PCI bus ID, &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;, &#x43A;&#x430;&#x440;&#x442;&#x443; CPU/NUMA, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x43F;&#x43E; &#x443;&#x437;&#x43B;&#x430;&#x43C;, &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x435; cpuset &#x438; mems &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430;, &#x430; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x43C;&#x44B;&#x439; canary-&#x43D;&#x430;&#x431;&#x43E;&#x440; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x442;&#x44E;&#x43D;&#x438;&#x43D;&#x433;&#x430; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x438; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;, &#x432;&#x44B; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x435; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x443;&#x44E; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43B;&#x44F;&#x446;&#x438;&#x44E; &#x431;&#x435;&#x437; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B;.</p>
<p>&#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; <a href="https://docs.nvidia.com/deploy/nvidia-smi/index.html?ref=kingservers.com">NVIDIA SMI</a> &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; <code>nvidia-smi topo -m</code>: &#x43C;&#x430;&#x442;&#x440;&#x438;&#x446;&#x430; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; GPU, NIC, CPU affinity &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x441;&#x44B; &#x43F;&#x443;&#x442;&#x438; PIX/PXB/PHB/NODE/SYS. &#x417;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; SYS &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x43E;: &#x43F;&#x443;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x435;&#x43A;&#x430;&#x435;&#x442; PCIe &#x438; &#x43C;&#x435;&#x436;&#x441;&#x43E;&#x43A;&#x435;&#x442;&#x43D;&#x44B;&#x439; interconnect. &#x41D;&#x43E; topology &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x443;&#x44E; &#x431;&#x43B;&#x438;&#x437;&#x43E;&#x441;&#x442;&#x44C;; &#x43E;&#x43D;&#x430; &#x43D;&#x435; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x438;&#x440;&#x443;&#x435;&#x442; &#x44F;&#x434;&#x440;&#x430; &#x438; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x433;&#x434;&#x435; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;.</p>
<p>&#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x440;&#x435;&#x434;&#x43D;&#x435;&#x435; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x430;. &#x414;&#x43B;&#x44F; &#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B; TTFT, inter-token latency, tokens/s, request queue time, CPU utilization &#x43F;&#x43E; &#x441;&#x43E;&#x43A;&#x435;&#x442;&#x430;&#x43C;, memory bandwidth &#x438; &#x447;&#x438;&#x441;&#x43B;&#x43E; remote NUMA accesses, &#x435;&#x441;&#x43B;&#x438; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x430; &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; &#x438;&#x445; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C;. Canary &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x442;&#x44C; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, &#x434;&#x43B;&#x438;&#x43D;&#x44B; prompt/output, concurrency, batching policy, warmup &#x438; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430;. &#x418;&#x43D;&#x430;&#x447;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x438; &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x432;&#x44B;&#x434;&#x430;&#x442;&#x44C; &#x437;&#x430; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; locality.</p>
<p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x43B;&#x438; &#x43B;&#x438; &#x432;&#x44B;, &#x447;&#x442;&#x43E; &#xAB;&#x431;&#x44B;&#x441;&#x442;&#x440;&#x44B;&#x439;&#xBB; worker &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x43B; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x435; prompts? &#x412;&#x43E;&#x437;&#x44C;&#x43C;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x43D;&#x430;&#x431;&#x43E;&#x440;, &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x435;&#x439;&#x442;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E; &#x438; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x43E;&#x43A;&#x43D;&#x430; warmup, steady state &#x438; cooldown. &#x41C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43E; &#x442;&#x43E;&#x43C;, &#x43A;&#x430;&#x43A; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x442;&#x44C; &#x441;&#x430;&#x43C;&#x443; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44F;, &#x443;&#x436;&#x435; &#x435;&#x441;&#x442;&#x44C; &#x432; &#x433;&#x430;&#x439;&#x434;&#x435; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/gpu-servera-dlya-mashinnogo-obucheniya/">GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x434;&#x43B;&#x44F; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43E;&#x431;&#x443;&#x447;&#x435;&#x43D;&#x438;&#x44F;</a>; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43C;&#x44B; &#x43D;&#x430;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E; &#x441;&#x443;&#x436;&#x430;&#x435;&#x43C; &#x437;&#x430;&#x434;&#x430;&#x447;&#x443; &#x434;&#x43E; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x449;&#x435;&#x43D;&#x438;&#x44F; &#x43D;&#x430; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43E;&#x43C; &#x443;&#x437;&#x43B;&#x435;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">collect-numa-baseline.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>#!/usr/bin/env bash
set -euo pipefail
date --iso-8601=seconds
uname -a
nvidia-smi --query-gpu=index,pci.bus_id,name,driver_version --format=csv
nvidia-smi topo -m
lscpu --extended=CPU,NODE,SOCKET,CORE,ONLINE
numactl --hardware
PID=&quot;$(pgrep -n -f &apos;vllm|tritonserver|text-generation&apos;)&quot;
taskset -pc &quot;$PID&quot;
grep -E &apos;Cpus_allowed_list|Mems_allowed_list&apos; &quot;/proc/$PID/status&quot;
head -n 40 &quot;/proc/$PID/numa_maps&quot;</code></pre>
<div class="ks-canonical-code-block__caption">Topology &#x438; effective state &#x43F;&#x435;&#x440;&#x435;&#x434; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;&#x43C;&#x438;</div>
</div>
<style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}
.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}
.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}
.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}
.ks-widget .panel.on{display:block}
.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}
.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}
.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style><div class="ks-widget" id="ks-sel-q7n2m4a"><h3>&#x421;&#x442;&#x43E;&#x438;&#x442; &#x43B;&#x438; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x442;&#x44C; NUMA-&#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;</h3>
<label>&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x439;</label><select data-s><option value="dual">&#x414;&#x432;&#x430; &#x441;&#x43E;&#x43A;&#x435;&#x442;&#x430;, &#x43D;&#x435;&#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; p99</option><option value="single">&#x41E;&#x434;&#x438;&#x43D; &#x441;&#x43E;&#x43A;&#x435;&#x442;</option><option value="xid">&#x415;&#x441;&#x442;&#x44C; Xid &#x438;&#x43B;&#x438; ECC-&#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;</option><option value="gpu">GPU &#x43F;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x43D;&#x43E; &#x43D;&#x430;&#x441;&#x44B;&#x449;&#x435;&#x43D;</option></select>
<div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-sel-q7n2m4a');if(!r)return;var m={"dual":"Снимите topology, effective affinity и одинаковый canary: гипотеза правдоподобна.","single":"NUMA, скорее всего, не главный фактор. Ищите очередь, batching, CPU saturation или storage.","xid":"Сначала аппаратный incident response. Affinity не является recovery для Xid/ECC.","gpu":"Проверьте, есть ли host-side bottleneck. Без него locality может не изменить SLO."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-02-a0d00f4c.webp" class="kg-image" alt="NUMA-locality &#x434;&#x43B;&#x44F; GPU-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430;: CPU, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x438; PCIe &#x431;&#x435;&#x437; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/numa-locality-gpu-llm-inference-inline-02-a0d00f4c.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/numa-locality-gpu-llm-inference-inline-02-a0d00f4c.webp 1000w, https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-02-a0d00f4c.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="read-map">&#x41A;&#x430;&#x43A; &#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x43A;&#x430;&#x440;&#x442;&#x443; NUMA &#x431;&#x435;&#x437; &#x43B;&#x43E;&#x436;&#x43D;&#x44B;&#x445; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x43E;&#x432;</h2>
<p>&#x412; <code>nvidia-smi topo -m</code> &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43D;&#x430;&#x439;&#x434;&#x438;&#x442;&#x435; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x443; &#x43D;&#x443;&#x436;&#x43D;&#x43E;&#x433;&#x43E; GPU &#x438; &#x43A;&#x43E;&#x43B;&#x43E;&#x43D;&#x43A;&#x443; CPU Affinity. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x44F;&#x434;&#x440;&#x430; &#x441; <code>lscpu -e</code> &#x438; PCI bus ID &#x441; <code>lspci -D</code>. &#x423; &#x434;&#x432;&#x443;&#x445; GPU &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x439; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; affinity &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x430;&#x442;&#x44C;&#x441;&#x44F;, &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x43A;&#x430;&#x440;&#x442;&#x44B; &#x441;&#x442;&#x43E;&#x44F;&#x442; &#x437;&#x430; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x43C;&#x438; root complex. &#x41D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430; &#x438; &#x43D;&#x43E;&#x43C;&#x435;&#x440; CUDA &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442; stable identity: &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; ordinal &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C;&#x441;&#x44F;, &#x430; PCI address &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x434;&#x43B;&#x44F; &#x438;&#x43D;&#x432;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438;.</p>
<p>&#x41C;&#x430;&#x442;&#x440;&#x438;&#x446;&#x430; GPU&#x2194;GPU &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x43D;&#x430; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;. NVLink, PIX &#x438;&#x43B;&#x438; PHB &#x432;&#x430;&#x436;&#x43D;&#x44B; &#x434;&#x43B;&#x44F; tensor/pipeline parallel, &#x43D;&#x43E; worker &#x441; &#x43E;&#x434;&#x43D;&#x438;&#x43C; GPU &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; CPU &#x438; host memory. &#x41D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x446;&#x435;&#x43B;&#x438;&#x43A;&#x43E;&#x43C; &#x43F;&#x43E;&#x43C;&#x435;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; VRAM, &#x43E;&#x434;&#x43D;&#x430;&#x43A;&#x43E; tokenizer &#x432;&#x44B;&#x434;&#x430;&#x451;&#x442; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x445; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;, scheduler &#x43F;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x43D;&#x43E; &#x444;&#x43E;&#x440;&#x43C;&#x438;&#x440;&#x443;&#x435;&#x442; batches, &#x430; pinned buffers &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x448;&#x430;&#x433;&#x435;. &#x412; &#x44D;&#x442;&#x43E;&#x43C; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x439; CPU path &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x44F;&#x432;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x432; p99, &#x430; &#x43D;&#x435; &#x432; &#x441;&#x440;&#x435;&#x434;&#x43D;&#x435;&#x43C; tokens/s.</p>
<p>&#x421;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x441; <a href="https://docs.nvidia.com/datacenter/dcgm/latest/reference/command-line-reference/dcgmi/dcgmi-topo.html?ref=kingservers.com">DCGM topology</a>. DCGM &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x430;&#x435;&#x442; CPU core affinity &#x438; NUMA optimal &#x434;&#x43B;&#x44F; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B;, &#x43D;&#x43E; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442;: topology &#x43D;&#x435; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x442; bind &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430;. &#x42D;&#x442;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430;. &#x417;&#x435;&#x43B;&#x451;&#x43D;&#x44B;&#x439; topology report &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x443;&#x434;&#x430;&#x447;&#x43D;&#x43E;&#x435; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x449;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;, &#x430; &#x43D;&#x435; &#x442;&#x43E;, &#x447;&#x442;&#x43E; kubelet, systemd &#x438;&#x43B;&#x438; shell &#x435;&#x433;&#x43E; &#x443;&#x436;&#x435; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438;.</p>
<p>&#x414;&#x43B;&#x44F; multi-GPU workload &#x43D;&#x435; &#x43F;&#x44B;&#x442;&#x430;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x43B;&#x44E;&#x431;&#x43E;&#x439; &#x446;&#x435;&#x43D;&#x43E;&#x439; &#x432;&#x442;&#x438;&#x441;&#x43D;&#x443;&#x442;&#x44C; &#x432;&#x441;&#x435; worker threads &#x432; &#x43E;&#x434;&#x438;&#x43D; &#x443;&#x437;&#x435;&#x43B;. &#x415;&#x441;&#x43B;&#x438; GPU &#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x44B; &#x43F;&#x43E; &#x441;&#x43E;&#x43A;&#x435;&#x442;&#x430;&#x43C;, &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x44C; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x44B; &#x43F;&#x43E; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;&#x43C; &#x438; &#x434;&#x430;&#x442;&#x44C; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C;&#x443; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; CPU/&#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C;, &#x447;&#x435;&#x43C; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x44C; &#x43E;&#x434;&#x438;&#x43D; &#x43E;&#x433;&#x440;&#x43E;&#x43C;&#x43D;&#x44B;&#x439; cpuset. &#x418;&#x43D;&#x430;&#x447;&#x435; &#x432;&#x44B; &#xAB;&#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x438;&#x442;&#x435;&#xBB; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; GPU &#x446;&#x435;&#x43D;&#x43E;&#x439; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438; &#x434;&#x43B;&#x44F; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x433;&#x43E;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43D;&#x430;&#x440;&#x438;&#x441;&#x443;&#x439;&#x442;&#x435; ownership: &#x43A;&#x430;&#x43A;&#x43E;&#x439; launcher &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x44B;, &#x43A;&#x442;&#x43E; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; GPU &#x438; &#x43A;&#x442;&#x43E; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; cgroup.</p><h2 id="bare-metal">Baseline &#x43D;&#x430; bare metal: numactl, cpuset &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430;</h2>
<p>&#x414;&#x43B;&#x44F; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; canary &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x44F;&#x432;&#x43D;&#x443;&#x44E; &#x43F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x43A;&#x443; &#x447;&#x435;&#x440;&#x435;&#x437; <code>numactl</code>, &#x430; &#x43D;&#x435; &#x441;&#x440;&#x430;&#x437;&#x443; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; kubelet &#x438;&#x43B;&#x438; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x43D;&#x44B;&#x439; unit. &#x412; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; man page <a href="https://man7.org/linux/man-pages/man8/numactl.8.html?ref=kingservers.com">numactl</a> &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x430;&#x435;&#x442; <code>--cpunodebind</code>, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; CPU &#x443;&#x437;&#x43B;&#x430;&#x43C;&#x438;, &#x438; <code>--membind</code>, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x430;&#x435;&#x442; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x438;&#x437; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445; &#x443;&#x437;&#x43B;&#x43E;&#x432;. &#x416;&#x451;&#x441;&#x442;&#x43A;&#x438;&#x439; membind &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x438;&#x442;&#x44C; allocation &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x43E;&#x439; &#x43F;&#x440;&#x438; &#x43D;&#x435;&#x445;&#x432;&#x430;&#x442;&#x43A;&#x435; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x2014; &#x44D;&#x442;&#x43E; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; fail-closed &#x440;&#x435;&#x436;&#x438;&#x43C; &#x434;&#x43B;&#x44F; &#x442;&#x435;&#x441;&#x442;&#x430;, &#x43D;&#x43E; &#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; default.</p>
<p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; worker, &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; GPU &#x438; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x43E;&#x433;&#x43E; CPU budget. &#x41D;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#xAB;&#x432;&#x441;&#x435; &#x44F;&#x434;&#x440;&#x430; &#x443;&#x437;&#x43B;&#x430;&#xBB; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443;, &#x447;&#x442;&#x43E; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x430;&#x44F;: &#x442;&#x430;&#x43C; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x436;&#x438;&#x442;&#x44C; IRQ, storage, network &#x438; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x43D;&#x44B;&#x435; &#x441;&#x43B;&#x443;&#x436;&#x431;&#x44B;. &#x412;&#x44B;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x439; &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D;, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432; &#x434;&#x43B;&#x44F; OS, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; canary. &#x412; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; &#x43E;&#x43A;&#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; <code>/proc/PID/status</code>, <code>numactl --show</code> &#x438;&#x437; launcher context &#x438; <code>/proc/PID/numa_maps</code>. &#x41A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x431;&#x435;&#x437; effective-state &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43D;&#x430;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x438;&#x435;&#x43C;.</p>
<p>Linux kernel documentation &#x43E; <a href="https://cdn.kernel.org/doc/html/latest/admin-guide/mm/numa_memory_policy.html?ref=kingservers.com">NUMA memory policy</a> &#x43F;&#x43E;&#x434;&#x447;&#x451;&#x440;&#x43A;&#x438;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; cpuset restrictions &#x438;&#x43C;&#x435;&#x44E;&#x442; &#x43F;&#x440;&#x438;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x442; &#x43D;&#x430;&#x434; policy &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; <code>numactl --membind=0</code> &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430; &#x43D;&#x435; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x438;&#x442; <code>cpuset.mems</code>, &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x44B;&#x439; &#x440;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x438;&#x43C; cgroup. &#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x430;&#x44F; &#x43B;&#x43E;&#x432;&#x443;&#x448;&#x43A;&#x430;: &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x439;, &#x43D;&#x43E; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440; &#x432;&#x438;&#x434;&#x438;&#x442; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; node &#x438;&#x43B;&#x438; &#x43E;&#x431;&#x430; &#x443;&#x437;&#x43B;&#x430;, &#x430; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x443;&#x436;&#x435; &#x431;&#x44B;&#x43B;&#x438; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x44B; &#x434;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; policy.</p>
<p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;: worker &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x430;&#x435;&#x442; weights &#x434;&#x43E; &#x442;&#x43E;&#x433;&#x43E;, &#x43A;&#x430;&#x43A; launcher &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x438;&#x43B; affinity &#x43A; &#x434;&#x43E;&#x447;&#x435;&#x440;&#x43D;&#x435;&#x43C;&#x443; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x443;. GPU &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D; &#x432;&#x435;&#x440;&#x43D;&#x43E;, CPU mask &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x435;&#x43D;, &#x43D;&#x43E; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x430;&#x44F; &#x447;&#x430;&#x441;&#x442;&#x44C; page cache &#x438; pinned buffers &#x443;&#x436;&#x435; &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x430;&#x441;&#x44C; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;. &#x41F;&#x43E;&#x43B;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x435; canary &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x43D;&#x435; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x436;&#x438;&#x432;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x441; &#x43D;&#x43E;&#x432;&#x43E;&#x439; &#x43C;&#x430;&#x441;&#x43A;&#x43E;&#x439; &#x441;&#x43E; &#x441;&#x432;&#x435;&#x436;&#x438;&#x43C; baseline &#x2014; &#x44D;&#x442;&#x43E; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x44F; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">run-local-worker.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>#!/usr/bin/env bash
set -euo pipefail
GPU=0
CPU_LIST=0-15
NUMA_NODE=0
export CUDA_VISIBLE_DEVICES=&quot;$GPU&quot;
exec numactl   --physcpubind=&quot;$CPU_LIST&quot;   --membind=&quot;$NUMA_NODE&quot;   /opt/llm/bin/start-worker --config /etc/llm/canary.yaml</code></pre>
<div class="ks-canonical-code-block__caption">Canary &#x441; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x43C; CPU &#x438; memory budget</div>
</div>
<div class="ks-widget" id="ks-tab-r8v3p1c"><h3>&#x41A;&#x430;&#x43A;&#x443;&#x44E; memory policy &#x432;&#x44B;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x434;&#x43B;&#x44F; canary</h3>
<div class="tabs"><button type="button" class="tab-btn on" data-t="bind">membind</button><button type="button" class="tab-btn" data-t="preferred">preferred</button><button type="button" class="tab-btn" data-t="interleave">interleave</button></div>
<div class="panel on" data-p="bind">&#x416;&#x451;&#x441;&#x442;&#x43A;&#x43E;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; allocation: &#x43F;&#x440;&#x438; &#x43D;&#x435;&#x445;&#x432;&#x430;&#x442;&#x43A;&#x435; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A; &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442;. &#x41F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x434;&#x43B;&#x44F; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x433;&#x43E; &#x442;&#x435;&#x441;&#x442;&#x430;.</div><div class="panel" data-p="preferred">&#x41C;&#x44F;&#x433;&#x43A;&#x43E;&#x435; &#x43F;&#x440;&#x435;&#x434;&#x43F;&#x43E;&#x447;&#x442;&#x435;&#x43D;&#x438;&#x435; &#x441; fallback. &#x423;&#x434;&#x43E;&#x431;&#x43D;&#x435;&#x435; &#x432; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x438;, &#x43D;&#x43E; remote allocation &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x442;&#x44C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;.</div><div class="panel" data-p="interleave">&#x420;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x443;&#x437;&#x43B;&#x430;&#x43C;&#x438;. &#x42D;&#x442;&#x43E; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x430;, &#x430; &#x43D;&#x435; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; locality &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; GPU.</div>
<script>(function(){var r=document.getElementById('ks-tab-r8v3p1c');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-03-535b7c65.webp" class="kg-image" alt="NUMA-locality &#x434;&#x43B;&#x44F; GPU-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430;: CPU, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x438; PCIe &#x431;&#x435;&#x437; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/numa-locality-gpu-llm-inference-inline-03-535b7c65.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/numa-locality-gpu-llm-inference-inline-03-535b7c65.webp 1000w, https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-03-535b7c65.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="kubernetes">Kubernetes: &#x43A;&#x43E;&#x433;&#x434;&#x430; Topology Manager &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x432;&#x44B;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x435;&#x442; &#x440;&#x435;&#x441;&#x443;&#x440;&#x441;&#x44B;</h2>
<p>&#x412; Kubernetes CPU Manager, Device Manager, Memory Manager &#x438; scheduler &#x440;&#x435;&#x448;&#x430;&#x44E;&#x442; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x447;&#x430;&#x441;&#x442;&#x438; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438;. &#x411;&#x435;&#x437; &#x43A;&#x43E;&#x43E;&#x440;&#x434;&#x438;&#x43D;&#x430;&#x446;&#x438;&#x438; pod &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; GPU &#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; NUMA node, &#x430; CPU &#x2014; &#x441; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x433;&#x43E;. <a href="https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/?ref=kingservers.com">Topology Manager</a> &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; topology hints &#x438; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x435; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x449;&#x435;&#x43D;&#x438;&#x435;. &#x424;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x44F; stable &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x44F; &#x441; Kubernetes 1.27, &#x43D;&#x43E; &#x43D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x435; &#x43A;&#x43E;&#x43C;&#x43F;&#x43E;&#x43D;&#x435;&#x43D;&#x442;&#x430; &#x43D;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x441;&#x442;&#x440;&#x43E;&#x433;&#x430;&#x44F; policy &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x430; &#x43D;&#x430; &#x443;&#x437;&#x43B;&#x435;.</p>
<p>&#x414;&#x43B;&#x44F; latency-sensitive GPU-pod &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x43D;&#x43E;&#x439; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x442;&#x43E;&#x447;&#x43A;&#x43E;&#x439; &#x441;&#x43B;&#x443;&#x436;&#x430;&#x442; CPU Manager <code>static</code>, Topology Manager <code>single-numa-node</code> &#x438;&#x43B;&#x438; <code>restricted</code> &#x438; scope, &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435; pod. &#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x43E;&#x442;&#x43C;&#x435;&#x447;&#x430;&#x435;&#x442; &#x43E;&#x441;&#x43E;&#x431;&#x443;&#x44E; &#x446;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x441;&#x43E;&#x447;&#x435;&#x442;&#x430;&#x43D;&#x438;&#x44F; pod scope &#x438; single-numa-node &#x434;&#x43B;&#x44F; workload &#x441; IPC &#x438; &#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F;&#x43C;&#x438; &#x43A; latency. &#x41E;&#x434;&#x43D;&#x430;&#x43A;&#x43E; admission &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; hints, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x434;&#x430;&#x44E;&#x442; resource managers &#x438; device plugin; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; extended resource &#x431;&#x435;&#x437; topology information &#x43D;&#x435; &#x441;&#x442;&#x430;&#x43D;&#x435;&#x442; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; &#x43E;&#x442; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x44F; policy.</p>
<p>CPU Manager &#x432;&#x44B;&#x434;&#x430;&#x451;&#x442; &#x44D;&#x43A;&#x441;&#x43A;&#x43B;&#x44E;&#x437;&#x438;&#x432;&#x43D;&#x44B;&#x435; CPU &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; Guaranteed pod &#x441; &#x446;&#x435;&#x43B;&#x43E;&#x447;&#x438;&#x441;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x43C; CPU request. Burstable pod &#x438;&#x43B;&#x438; fractional request &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x435;&#x442;&#x441;&#x44F; &#x432; shared pool, &#x438; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x430;&#x44F; &#x438;&#x437;&#x43E;&#x43B;&#x44F;&#x446;&#x438;&#x44F; &#x43D;&#x435; &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x442;&#x441;&#x44F;. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; QoS, kubelet config, state file CPU Manager &#x438; cpuset &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430;. &#x415;&#x441;&#x43B;&#x438; pod admitted, &#x44D;&#x442;&#x43E; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; hints &#x43D;&#x430; &#x43C;&#x43E;&#x43C;&#x435;&#x43D;&#x442; allocation; application readiness &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x43C; &#x43A; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;.</p>
<p>&#x41D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; policy &#x441;&#x440;&#x430;&#x437;&#x443; &#x43D;&#x430; &#x432;&#x441;&#x451;&#x43C; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x435;. &#x412;&#x44B;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; canary node, drain &#x435;&#x433;&#x43E;, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; kubelet config &#x438; resource inventory, &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435;, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x44B;&#x439; pod. &#x423; Kubernetes restart kubelet &#x438; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x438;&#x435; CPU Manager state &#x438;&#x43C;&#x435;&#x44E;&#x442; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x44B;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x441;&#x442;&#x432;&#x438;&#x44F;; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x439;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x434;&#x443;&#x440;&#x430;&#x43C; &#x432;&#x430;&#x448;&#x435;&#x439; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; &#x438; &#x43D;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x44F;&#x439;&#x442;&#x435; state &#x43D;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x44E;&#x449;&#x435;&#x43C; &#x443;&#x437;&#x43B;&#x435; &#x432;&#x441;&#x43B;&#x435;&#x43F;&#x443;&#x44E;. &#x411;&#x43E;&#x43B;&#x435;&#x435; &#x448;&#x438;&#x440;&#x43E;&#x43A;&#x438;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B; &#x43E;&#x43F;&#x438;&#x441;&#x430;&#x43D; &#x432; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B;&#x435; <a href="https://kingservers.com/blog/kubernetes-dlya-ai-inference-kserve-gpu-autoscaling/">Kubernetes &#x434;&#x43B;&#x44F; AI inference</a>.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">yaml</span><span class="ks-canonical-code-block__filename">kubelet-config.yaml</span></div>
<pre class="ks-canonical-code-block__pre"><code>cpuManagerPolicy: static
topologyManagerPolicy: single-numa-node
topologyManagerScope: pod
reservedSystemCPUs: &quot;0-3&quot;</code></pre>
<div class="ks-canonical-code-block__caption">Topology-aware baseline &#x434;&#x43B;&#x44F; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; canary node</div>
</div>
<div class="ks-widget" id="ks-chk-m2k9d4x"><h3>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; GPU-&#x43F;&#x43E;&#x434;&#x430; &#x43F;&#x435;&#x440;&#x435;&#x434; canary-&#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x43E;&#x43C;</h3>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> Pod &#x438;&#x43C;&#x435;&#x435;&#x442; QoS Guaranteed</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> CPU request &#x446;&#x435;&#x43B;&#x43E;&#x447;&#x438;&#x441;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x438; &#x440;&#x430;&#x432;&#x435;&#x43D; limit</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> GPU device plugin &#x43E;&#x442;&#x434;&#x430;&#x451;&#x442; topology hints</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> cpuset.cpus &#x438; cpuset.mems &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x44B; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x41C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x430; readiness probe</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> &#x415;&#x441;&#x442;&#x44C; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x44B;&#x439; kubelet rollback</label><div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-chk-m2k9d4x');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-04-83189082.webp" class="kg-image" alt="NUMA-locality &#x434;&#x43B;&#x44F; GPU-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430;: CPU, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x438; PCIe &#x431;&#x435;&#x437; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/numa-locality-gpu-llm-inference-inline-04-83189082.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/numa-locality-gpu-llm-inference-inline-04-83189082.webp 1000w, https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-04-83189082.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="proof">&#x41A;&#x430;&#x43A; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;: canary, &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x438; application gate</h2>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x43A;&#x438; &#x43D;&#x435; &#x438;&#x449;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x43D;&#x443; &#xAB;&#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x443;&#x44E;&#xBB; &#x446;&#x438;&#x444;&#x440;&#x443;. &#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; paired windows: &#x442;&#x43E;&#x442; &#x436;&#x435; &#x443;&#x437;&#x435;&#x43B;, &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;, prompt set, concurrency, batch settings &#x438; &#x434;&#x43B;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; baseline &#x431;&#x435;&#x437; &#x440;&#x443;&#x447;&#x43D;&#x43E;&#x439; policy, &#x437;&#x430;&#x442;&#x435;&#x43C; local bind, &#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x2014; &#x43F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x43A;&#x430; CPU &#x438;&#x43B;&#x438; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x43A; &#x437;&#x430;&#x432;&#x435;&#x434;&#x43E;&#x43C;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x43C;&#x443; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x43E;&#x43C;&#x443; node. &#x417;&#x430;&#x432;&#x435;&#x440;&#x448;&#x438;&#x442;&#x435; rollback &#x43A; baseline. &#x422;&#x430;&#x43A;&#x430;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; topology &#x43E;&#x442; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x43E;&#x433;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;.</p>
<p>Application gate &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x442;&#x44C; &#x43D;&#x430; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430;. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x441;&#x44F; &#x43B;&#x438; error rate? &#x41D;&#x435; &#x432;&#x44B;&#x448;&#x43B;&#x438; &#x43B;&#x438; TTFT &#x438; inter-token latency &#x437;&#x430; SLO? &#x41D;&#x435; &#x443;&#x43F;&#x430;&#x43B; &#x43B;&#x438; goodput &#x43F;&#x440;&#x438; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x438; p99? &#x418;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x44B;&#x439; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A; remote access &#x2014; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x430;, &#x43D;&#x43E; &#x43D;&#x435; &#x443;&#x441;&#x43F;&#x435;&#x445; &#x441;&#x430;&#x43C; &#x43F;&#x43E; &#x441;&#x435;&#x431;&#x435;. &#x415;&#x441;&#x43B;&#x438; remote accesses &#x441;&#x43D;&#x438;&#x437;&#x438;&#x43B;&#x438;&#x441;&#x44C;, &#x430; latency &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x430;&#x441;&#x44C;, &#x443;&#x437;&#x43A;&#x43E;&#x435; &#x43C;&#x435;&#x441;&#x442;&#x43E;, &#x432;&#x435;&#x440;&#x43E;&#x44F;&#x442;&#x43D;&#x43E;, &#x443;&#x436;&#x435; &#x43C;&#x438;&#x433;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B;&#x43E; &#x43D;&#x430; GPU kernels, &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C;, &#x441;&#x435;&#x442;&#x44C; &#x438;&#x43B;&#x438; storage.</p>
<p>&#x41F;&#x440;&#x438;&#x43C;&#x435;&#x440;: local bind &#x441;&#x43D;&#x438;&#x436;&#x430;&#x435;&#x442; &#x440;&#x430;&#x437;&#x431;&#x440;&#x43E;&#x441; queue time, &#x43D;&#x43E; tokens/s &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x43C;. &#x42D;&#x442;&#x43E; &#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x434;&#x43B;&#x44F; workload &#x441; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x43C;&#x438; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x430;&#x43C;&#x438;: locality &#x43C;&#x43E;&#x433;&#x43B;&#x430; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; jitter &#x43D;&#x430; host-side scheduler, &#x43D;&#x435; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x432; &#x43C;&#x430;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438;. &#x414;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440; &#x2014; &#x441;&#x440;&#x435;&#x434;&#x43D;&#x438;&#x439; TTFT &#x443;&#x43B;&#x443;&#x447;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x430; p99 &#x443;&#x445;&#x443;&#x434;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x438;&#x437;-&#x437;&#x430; &#x43D;&#x435;&#x445;&#x432;&#x430;&#x442;&#x43A;&#x438; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x438; reclaim. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x436;&#x451;&#x441;&#x442;&#x43A;&#x438;&#x439; membind &#x43D;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432; &#x43A; production, &#x434;&#x430;&#x436;&#x435; &#x435;&#x441;&#x43B;&#x438; &#x43E;&#x434;&#x438;&#x43D; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; benchmark &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x43B;&#x443;&#x447;&#x448;&#x435;.</p>
<p>&#x417;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x437;&#x430;&#x434;&#x430;&#x439;&#x442;&#x435; stop conditions: OOM &#x438;&#x43B;&#x438; allocation failure, &#x440;&#x43E;&#x441;&#x442; error rate, &#x43D;&#x430;&#x440;&#x443;&#x448;&#x435;&#x43D;&#x438;&#x435; SLO, &#x438;&#x441;&#x447;&#x435;&#x437;&#x43D;&#x43E;&#x432;&#x435;&#x43D;&#x438;&#x435; GPU &#x438;&#x437; inventory, Xid, &#x43D;&#x435;&#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; canary &#x43B;&#x438;&#x431;&#x43E; &#x43D;&#x435;&#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x44B;&#x439; cpuset. &#x41D;&#x435; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x430;&#x439;&#x442;&#x435; &#xAB;&#x435;&#x449;&#x451; &#x43F;&#x44F;&#x442;&#x44C; &#x43C;&#x438;&#x43D;&#x443;&#x442;&#xBB;, &#x43A;&#x43E;&#x433;&#x434;&#x430; gate &#x443;&#x436;&#x435; &#x43A;&#x440;&#x430;&#x441;&#x43D;&#x44B;&#x439;. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x44B; &#x43A;&#x430;&#x43A; evidence bundle: config digest, topology, effective masks &#x438; application summary &#x441; timestamp.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-05-e68ac64a.webp" class="kg-image" alt="NUMA-locality &#x434;&#x43B;&#x44F; GPU-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430;: CPU, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x438; PCIe &#x431;&#x435;&#x437; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/numa-locality-gpu-llm-inference-inline-05-e68ac64a.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/numa-locality-gpu-llm-inference-inline-05-e68ac64a.webp 1000w, https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-05-e68ac64a.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="failure-modes">&#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;: affinity &#x435;&#x441;&#x442;&#x44C;, &#x430; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43D;&#x435;&#x442;</h2>
<p>&#x41F;&#x435;&#x440;&#x432;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x2014; &#x43F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x430;&#x442;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; CPU. &#x41F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; &#x44F;&#x434;&#x440;&#x430;&#x445;, &#x43D;&#x43E; &#x435;&#x433;&#x43E; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x438;&#x441;&#x44C; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x43C;&#x438; &#x438;&#x43B;&#x438; policy &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442; fallback. &#x412;&#x442;&#x43E;&#x440;&#x430;&#x44F; &#x2014; &#x43F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x430;&#x442;&#x44C; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C;, &#x43D;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; network &#x438; storage IRQ &#x43D;&#x430; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C; &#x441;&#x43E;&#x43A;&#x435;&#x442;&#x435;; bottleneck &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x435;&#x437;&#x436;&#x430;&#x435;&#x442;. &#x422;&#x440;&#x435;&#x442;&#x44C;&#x44F; &#x2014; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; <code>taskset</code> &#x43A; launcher, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; runtime &#x441; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; cgroup policy. &#x41A;&#x430;&#x436;&#x434;&#x44B;&#x439; &#x441;&#x43B;&#x43E;&#x439; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x438;&#x437; effective state &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x43E;&#x433;&#x43E; PID.</p>
<p>&#x427;&#x435;&#x442;&#x432;&#x451;&#x440;&#x442;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x43D;&#x435;&#x43F;&#x440;&#x438;&#x44F;&#x442;&#x43D;&#x430;: &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; CUDA ordinal, &#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435; reboot &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43E;&#x43A; GPU &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F;. &#x41F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x43A;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43A; node 0, &#x43D;&#x43E; worker &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x435;&#x442; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; GPU. &#x425;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; PCI bus ID &#x438;&#x43B;&#x438; UUID &#x432; evidence &#x438; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x441; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x44B;&#x43C; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E;&#x43C; &#x43F;&#x440;&#x438; &#x441;&#x442;&#x430;&#x440;&#x442;&#x435;. Automation &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x442;&#x44C;&#x441;&#x44F; fail-closed, &#x435;&#x441;&#x43B;&#x438; inventory &#x43D;&#x435; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x43B; &#x441; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x43C;, &#x430; &#x43D;&#x435; &#x43C;&#x43E;&#x43B;&#x447;&#x430; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x43D;&#x430; &#xAB;GPU 0&#xBB;.</p>
<p>&#x41F;&#x44F;&#x442;&#x430;&#x44F; &#x2014; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; automatic NUMA balancing &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; &#x43B;&#x435;&#x43A;&#x430;&#x440;&#x441;&#x442;&#x432;&#x43E;&#x43C;. Kernel &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43C;&#x438;&#x433;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; CPU workload, &#x43D;&#x43E; pinned memory, device DMA &#x438; &#x436;&#x438;&#x437;&#x43D;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x446;&#x438;&#x43A;&#x43B; LLM-worker &#x441;&#x43E;&#x437;&#x434;&#x430;&#x44E;&#x442; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x44F;. &#x41A;&#x440;&#x43E;&#x43C;&#x435; &#x442;&#x43E;&#x433;&#x43E;, cpuset &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x44B;&#x435; nodes. &#x41D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x433;&#x43B;&#x43E;&#x431;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; <code>kernel.numa_balancing</code> &#x440;&#x430;&#x434;&#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; canary &#x431;&#x435;&#x437; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x43B;&#x430;&#x43D;&#x430;: &#x432;&#x44B; &#x437;&#x430;&#x442;&#x440;&#x43E;&#x43D;&#x435;&#x442;&#x435; &#x434;&#x440;&#x443;&#x433;&#x438;&#x435; workloads &#x438; &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x435; &#x447;&#x438;&#x441;&#x442;&#x43E;&#x442;&#x443; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430;.</p>
<p>&#x428;&#x435;&#x441;&#x442;&#x430;&#x44F; &#x2014; &#x43F;&#x435;&#x440;&#x435;&#x43E;&#x446;&#x435;&#x43D;&#x438;&#x442;&#x44C; synthetic copy test. &#x41E;&#x43D; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; &#x43F;&#x443;&#x442;&#x44C; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x438;&#x43B;&#x438; PCIe, &#x43D;&#x43E; &#x43D;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x442; tokenizer, batching &#x438; request scheduler. &#x414;&#x435;&#x440;&#x436;&#x438;&#x442;&#x435; &#x442;&#x440;&#x438; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x44B;&#x445; gate: topology identity, effective placement &#x438; application request. &#x418;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x44D;&#x442;&#x430; &#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x430; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x430;&#x435;&#x442; production runbook &#x43E;&#x442; &#x43D;&#x430;&#x431;&#x43E;&#x440;&#x430; &#x442;&#x44E;&#x43D;&#x438;&#x43D;&#x433;&#x43E;&#x432;&#x44B;&#x445; &#x444;&#x43B;&#x430;&#x433;&#x43E;&#x432;.</p>
<div class="ks-widget" id="ks-sel-f6t1w9b"><h3>&#x427;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x43F;&#x440;&#x438; &#x440;&#x430;&#x441;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x438; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;</h3>
<label>&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x435;</label><select data-s><option value="remote">Remote access &#x441;&#x43D;&#x438;&#x437;&#x438;&#x43B;&#x441;&#x44F;, SLO &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x439;</option><option value="p99">&#x421;&#x440;&#x435;&#x434;&#x43D;&#x435;&#x435; &#x43B;&#x443;&#x447;&#x448;&#x435;, p99 &#x445;&#x443;&#x436;&#x435;</option><option value="restart">&#x41F;&#x43E;&#x441;&#x43B;&#x435; reboot &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x438;&#x441;&#x447;&#x435;&#x437;</option><option value="oom">membind &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x43E;&#x439;</option></select><div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-sel-f6t1w9b');if(!r)return;var m={"remote":"Ищите следующий bottleneck: GPU kernels, очередь, сеть или storage.","p99":"Проверьте reclaim, локальный memory pressure и одинаковый prompt mix.","restart":"Сверьте PCI bus ID/UUID, cpuset и порядок запуска после reboot.","oom":"Локальной памяти недостаточно. Откатите жёсткий bind и пересмотрите budget."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-06-fb2ccd51.webp" class="kg-image" alt="NUMA-locality &#x434;&#x43B;&#x44F; GPU-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430;: CPU, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x438; PCIe &#x431;&#x435;&#x437; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/numa-locality-gpu-llm-inference-inline-06-fb2ccd51.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/numa-locality-gpu-llm-inference-inline-06-fb2ccd51.webp 1000w, https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-06-fb2ccd51.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="rollout">Rollout &#x438; rollback: &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x43C; canary &#x432; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x44E;</h2>
<p>Production rollout &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x435; &#x441; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x43D;&#x442;&#x430; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;, &#x430; &#x441; ownership. Platform team &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x437;&#x430; topology inventory &#x438; kubelet/cgroup policy; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x435;&#x446; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x2014; &#x437;&#x430; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; canary &#x438; application SLO; on-call &#x2014; &#x437;&#x430; stop condition &#x438; rollback. &#x415;&#x441;&#x43B;&#x438; &#x44D;&#x442;&#x438; &#x440;&#x43E;&#x43B;&#x438; &#x43D;&#x435; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x44B;, &#x43F;&#x435;&#x440;&#x432;&#x430;&#x44F; &#x43D;&#x43E;&#x447;&#x43D;&#x430;&#x44F; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x44F; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x442;&#x438;&#x442; affinity &#x432; &#x437;&#x430;&#x433;&#x430;&#x434;&#x43E;&#x447;&#x43D;&#x443;&#x44E; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x443;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x443;&#x44E; &#x43D;&#x438;&#x43A;&#x442;&#x43E; &#x43D;&#x435; &#x440;&#x435;&#x448;&#x438;&#x442;&#x441;&#x44F; &#x441;&#x43D;&#x44F;&#x442;&#x44C;.</p>
<p>&#x420;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x43E;&#x445;&#x432;&#x430;&#x442; &#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D;&#x447;&#x430;&#x442;&#x43E;: &#x43E;&#x434;&#x438;&#x43D; worker, &#x43E;&#x434;&#x438;&#x43D; GPU, &#x43E;&#x434;&#x438;&#x43D; node; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; worker &#x43D;&#x430; &#x442;&#x43E;&#x43C; &#x436;&#x435; topology class; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x2014; &#x434;&#x440;&#x443;&#x433;&#x438;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x438;&#x43B;&#x438; &#x442;&#x438;&#x43F;&#x44B; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43E;&#x432;. &#x41D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x43C;&#x430;&#x441;&#x43A;&#x438; CPU &#x43C;&#x435;&#x436;&#x434;&#x443; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x43C;&#x438; SKU. &#x414;&#x430;&#x436;&#x435; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x435; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x43E;&#x440;&#x44B; &#x43D;&#x435; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x44E;&#x442; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x435; &#x440;&#x430;&#x441;&#x43F;&#x43E;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; PCIe slots, NIC &#x438; NVMe. &#x414;&#x43B;&#x44F; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; hardware class &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x441;&#x43E;&#x431;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x439; topology manifest.</p>
<p>Rollback &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x43C;. &#x412;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x439; launcher &#x438;&#x43B;&#x438; kubelet config, &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x435; worker &#x442;&#x430;&#x43A;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x438;&#x43B;&#x430;&#x441;&#x44C; &#x437;&#x430;&#x43D;&#x43E;&#x432;&#x43E;, &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x435; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x44B;&#x435; masks &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; application probe. &#x415;&#x441;&#x43B;&#x438; baseline &#x43D;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x430;: &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;, &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438;&#x441;&#x44C; cache, &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430; &#x438;&#x43B;&#x438; thermal state. &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x44D;&#x442;&#x43E; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x43E; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x430; &#xAB;NUMA &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x43B;&#x430; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#xBB;.</p>
<p>&#x41D;&#x430; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; &#x442;&#x430;&#x43A;&#x43E;&#x439; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442; &#x43F;&#x440;&#x43E;&#x449;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;: &#x443; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x435;&#x441;&#x442;&#x44C; ownership &#x43D;&#x430;&#x434; BIOS, PCIe placement, CPU reservations &#x438; restart window. &#x42D;&#x442;&#x43E; &#x435;&#x441;&#x442;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x439; bridge &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435; KingServers, &#x43D;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43D;&#x438;&#x435; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x438;&#x440;&#x43E;&#x441;&#x442;&#x430;. &#x412;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x435; &#x436;&#x435;&#x43B;&#x435;&#x437;&#x43E; &#x434;&#x430;&#x451;&#x442; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x439; baseline; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x440;&#x43E;&#x439;&#x442;&#x438; canary &#x438; SLO gate. &#x421;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x435; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x44B; &#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x44F; workloads &#x440;&#x430;&#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44B; &#x432; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x435; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/gpu-scheduling-inference-training-batch/">GPU scheduling</a>.</p>
<div class="ks-widget" id="ks-chk-z4c8h2n"><h3>Gate &#x43F;&#x435;&#x440;&#x435;&#x434; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x435;&#x43D;&#x438;&#x435;&#x43C; rollout</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> Stable GPU identity &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> Effective CPU &#x438; memory masks &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x44E;&#x442; &#x441; &#x43F;&#x43B;&#x430;&#x43D;&#x43E;&#x43C;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> Canary &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x451;&#x43D; &#x432; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x445; &#x43E;&#x43A;&#x43D;&#x430;&#x445;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> Error rate &#x438; SLO &#x43D;&#x435; &#x443;&#x445;&#x443;&#x434;&#x448;&#x438;&#x43B;&#x438;&#x441;&#x44C;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x423;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x434;&#x430;&#x43B; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x435; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x438;&#x435;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> Rollback &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D; &#x442;&#x435;&#x43C;&#x438; &#x436;&#x435; gates</label><div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-chk-z4c8h2n');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><h2 id="checklist">&#x41A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; production-&#x447;&#x435;&#x43A;&#x43B;&#x438;&#x441;&#x442; &#x434;&#x43B;&#x44F; NUMA-locality</h2>
<p>&#x421;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x434;&#x443;&#x440;&#x443; &#x43A; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x439; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; identity: &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; GPU, UUID &#x438; PCI bus ID, CPU sockets, NUMA nodes, &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430; &#x438; container digest. &#x417;&#x430;&#x442;&#x435;&#x43C; topology: <code>nvidia-smi topo -m</code>, <code>lscpu</code>, <code>numactl --hardware</code>, &#x43F;&#x440;&#x438; &#x43D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x438; DCGM. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; effective state &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x43E;&#x433;&#x43E; worker: CPU mask, memory mask, cgroup, <code>numa_maps</code> &#x438; &#x43C;&#x43E;&#x43C;&#x435;&#x43D;&#x442; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438;.</p>
<p>&#x422;&#x440;&#x435;&#x442;&#x438;&#x439; &#x441;&#x43B;&#x43E;&#x439; &#x2014; &#x440;&#x435;&#x441;&#x443;&#x440;&#x441;&#x43D;&#x44B;&#x439; budget. &#x417;&#x430;&#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; CPU &#x434;&#x43B;&#x44F; OS &#x438; IRQ, &#x437;&#x430;&#x434;&#x430;&#x439;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x439; &#x43D;&#x430;&#x431;&#x43E;&#x440; worker cores, &#x43E;&#x446;&#x435;&#x43D;&#x438;&#x442;&#x435; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x443;&#x44E; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x438; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x437;&#x430;&#x43F;&#x430;&#x441;. &#x416;&#x451;&#x441;&#x442;&#x43A;&#x438;&#x439; membind &#x431;&#x435;&#x437; capacity check &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x442;&#x44E;&#x43D;&#x438;&#x43D;&#x433; latency &#x432; &#x43D;&#x43E;&#x432;&#x44B;&#x439; failure mode. &#x412; Kubernetes &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x435; Guaranteed QoS, integer CPU request, topology policy &#x438; hints device plugin.</p>
<p>&#x427;&#x435;&#x442;&#x432;&#x451;&#x440;&#x442;&#x44B;&#x439; &#x441;&#x43B;&#x43E;&#x439; &#x2014; application proof. &#x41E;&#x434;&#x438;&#x43D; &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; warmup &#x438; canary, &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; prompt mix, concurrency &#x438; batching. &#x421;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435; &#x441;&#x440;&#x435;&#x434;&#x43D;&#x435;&#x435; &#x438; &#x445;&#x432;&#x43E;&#x441;&#x442;&#x44B;, goodput &#x438; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;. &#x414;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x439; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; &#x438;&#x437;&#x43E;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x43C; canary; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x439; rollback. &#x41D;&#x435; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x43E;&#x432; &#x43F;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x43C;&#x443; &#x443;&#x434;&#x430;&#x447;&#x43D;&#x43E;&#x43C;&#x443; &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x443;.</p>
<p>&#x41D;&#x430;&#x43A;&#x43E;&#x43D;&#x435;&#x446;, &#x437;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; owner &#x438; stop condition. &#x41A;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; affinity? &#x41A;&#x442;&#x43E; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442; application SLO? &#x41A;&#x430;&#x43A;&#x43E;&#x439; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B; &#x43D;&#x435;&#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; baseline? &#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x430; &#x43A;&#x430;&#x436;&#x435;&#x442;&#x441;&#x44F; &#x431;&#x44E;&#x440;&#x43E;&#x43A;&#x440;&#x430;&#x442;&#x438;&#x447;&#x43D;&#x43E;&#x439; &#x440;&#x43E;&#x432;&#x43D;&#x43E; &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430;. &#x417;&#x430;&#x442;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43D;&#x435;&#x451; NUMA &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x451;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#xAB;&#x43C;&#x430;&#x433;&#x438;&#x435;&#x439; &#x436;&#x435;&#x43B;&#x435;&#x437;&#x430;&#xBB; &#x438; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x439; policy.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-07-998f5bfc.webp" class="kg-image" alt="NUMA-locality &#x434;&#x43B;&#x44F; GPU-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430;: CPU, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x438; PCIe &#x431;&#x435;&#x437; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/numa-locality-gpu-llm-inference-inline-07-998f5bfc.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/numa-locality-gpu-llm-inference-inline-07-998f5bfc.webp 1000w, https://kingservers.com/blog/content/images/2026/09/numa-locality-gpu-llm-inference-inline-07-998f5bfc.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="conclusion">&#x412;&#x44B;&#x432;&#x43E;&#x434;: &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x430; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43A;&#x430;&#x43A; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43D;&#x430;&#x44F; policy</h2>
<p>NUMA-locality &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x43C;&#x435;&#x436;&#x434;&#x443; CPU, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C;&#x44E; &#x438; PCIe GPU, &#x441;&#x43D;&#x438;&#x437;&#x438;&#x442;&#x44C; jitter &#x438; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; LLM-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441; &#x43F;&#x440;&#x435;&#x434;&#x441;&#x43A;&#x430;&#x437;&#x443;&#x435;&#x43C;&#x435;&#x435;. &#x41D;&#x43E; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x430; affinity, &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; pod admission &#x438;&#x43B;&#x438; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435; remote accesses &#x435;&#x449;&#x451; &#x43D;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x44E;&#x442;, &#x447;&#x442;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x43B; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43E;&#x442;&#x432;&#x435;&#x442;. &#x41D;&#x430;&#x434;&#x451;&#x436;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x441;&#x44F; &#x438;&#x437; &#x442;&#x440;&#x451;&#x445; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x44B;&#x445; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;: topology identity, effective placement &#x438; application SLO.</p>
<p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; canary-worker. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; baseline, &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x439; CPU/memory budget, &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44C;, &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x438; &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x443;&#x44E; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E;. &#x415;&#x441;&#x43B;&#x438; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x44D;&#x442;&#x443; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x44E;, policy &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x442;&#x44C; &#x43D;&#x430; topology class. &#x415;&#x441;&#x43B;&#x438; &#x43D;&#x435;&#x442; &#x2014; &#x432;&#x44B; &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x432;&#x44B;&#x438;&#x433;&#x440;&#x430;&#x43B;&#x438;: &#x438;&#x441;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x43B;&#x438; &#x43E;&#x434;&#x43D;&#x443; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x443; &#x431;&#x435;&#x437; &#x440;&#x438;&#x441;&#x43A;&#x430; &#x434;&#x43B;&#x44F; &#x432;&#x441;&#x435;&#x433;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x430;.</p>
<p>&#x421;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x448;&#x430;&#x433; &#x2014; &#x441;&#x43D;&#x44F;&#x442;&#x44C; &#x43A;&#x430;&#x440;&#x442;&#x443; &#x432;&#x430;&#x448;&#x435;&#x433;&#x43E; &#x434;&#x432;&#x443;&#x445;&#x441;&#x43E;&#x43A;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; GPU-&#x443;&#x437;&#x43B;&#x430; &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C;, &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x43B;&#x438; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; cpuset worker &#x441; &#x431;&#x43B;&#x438;&#x436;&#x430;&#x439;&#x448;&#x438;&#x43C; PCIe-root. &#x414;&#x43B;&#x44F; &#x43D;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x437;&#x430;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435; topology inventory &#x438; rollback &#x435;&#x449;&#x451; &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; production-&#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x440;&#x430;&#x437;&#x433;&#x43E;&#x432;&#x43E;&#x440; &#x43E; &#xAB;&#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; NUMA&#xBB; &#x437;&#x430;&#x43A;&#x430;&#x43D;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x432;&#x435;&#x440;&#x43E;&#x439; &#x432; &#x444;&#x43B;&#x430;&#x433;, &#x430; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x43C; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435;&#x43C;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x443;&#x43C;&#x435;&#x435;&#x442; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x438;&#x442;&#x44C; &#x438; &#x43E;&#x442;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C;.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[Power cap для GPU в LLM inference: production-runbook без гадания по ваттам]]></title><description><![CDATA[Практический runbook для безопасного ограничения мощности GPU: baseline, canary, DCGM и vLLM-метрики, energy-per-token, rollout и rollback.]]></description><link>https://kingservers.com/blog/gpu-power-cap-llm-inference-runbook/</link><guid isPermaLink="false">6a964edbaff2afac25354c2a</guid><category><![CDATA[AI]]></category><category><![CDATA[GPU]]></category><category><![CDATA[LLM]]></category><category><![CDATA[Inference]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Tue, 01 Sep 2026 21:28:26 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-llm-inference-hero-c9e659c3.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#power-cap-boundary">&#x427;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x440;&#x435;&#x448;&#x430;&#x435;&#x442; power cap</a></li>
<li><a href="#baseline-evidence">Baseline: &#x447;&#x442;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x44C; &#x434;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;</a></li>
<li><a href="#identity-constraints">UUID, &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D; &#x438; effective state</a></li>
<li><a href="#canary-change">Canary: &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x43C; &#x43E;&#x434;&#x438;&#x43D; GPU</a></li>
<li><a href="#three-gates">&#x422;&#x440;&#x438; gate &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x43E;&#x439; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438;</a></li>
<li><a href="#measure-energy-token">&#x41A;&#x430;&#x43A; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x44D;&#x43D;&#x435;&#x440;&#x433;&#x438;&#x44E; &#x43D;&#x430; &#x442;&#x43E;&#x43A;&#x435;&#x43D;</a></li>
<li><a href="#interpret-results">&#x41A;&#x430;&#x43A; &#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x44B; &#x431;&#x435;&#x437; &#x441;&#x430;&#x43C;&#x43E;&#x43E;&#x431;&#x43C;&#x430;&#x43D;&#x430;</a></li>
<li><a href="#failure-modes">&#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430;</a></li>
<li><a href="#persist-and-automate">&#x41F;&#x435;&#x440;&#x441;&#x438;&#x441;&#x442;&#x435;&#x43D;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x438; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F;</a></li>
<li><a href="#rollout-rollback">Rollout &#x438; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x439; rollback</a></li>
<li><a href="#conclusion">&#x418;&#x442;&#x43E;&#x433;: cap &#x2014; &#x44D;&#x442;&#x43E; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x430;, &#x430; &#x43D;&#x435; &#x43E;&#x43F;&#x442;&#x438;&#x43C;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F;</a></li>
</ul></div>

</div><img src="https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-llm-inference-hero-c9e659c3.webp" alt="Power cap &#x434;&#x43B;&#x44F; GPU &#x432; LLM inference: production-runbook &#x431;&#x435;&#x437; &#x433;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x432;&#x430;&#x442;&#x442;&#x430;&#x43C;"><p>&#x421;&#x442;&#x43E;&#x439;&#x43A;&#x430; &#x443;&#x436;&#x435; &#x431;&#x43B;&#x438;&#x437;&#x43A;&#x430; &#x43A; &#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x443; &#x43F;&#x43E; &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x44E;, GPU &#x43D;&#x430; &#x43F;&#x438;&#x43A;&#x430;&#x445; &#x437;&#x430;&#x431;&#x438;&#x440;&#x430;&#x44E;&#x442; &#x432;&#x435;&#x441;&#x44C; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x430;&#x441;, &#x430; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#xAB;&#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x43D;&#x430; 50 &#x432;&#x430;&#x442;&#x442; &#x43D;&#x438;&#x436;&#x435;&#xBB; &#x437;&#x432;&#x443;&#x447;&#x438;&#x442; &#x43F;&#x43E;&#x434;&#x43E;&#x437;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43B;&#x435;&#x433;&#x43A;&#x43E;. &#x421;&#x430;&#x43C;&#x43E; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; power limit &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x43E;&#x439;, &#x43D;&#x43E; &#x44D;&#x442;&#x430; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43D;&#x438;&#x447;&#x435;&#x433;&#x43E; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43E; &#x43A;&#x430;&#x447;&#x435;&#x441;&#x442;&#x432;&#x435; LLM-&#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430;. &#x41D;&#x443;&#x436;&#x43D;&#x44B; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x430;&#x44F; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430;, &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; identity &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;, &#x442;&#x440;&#x438; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x44B;&#x445; gate &#x438; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x43A; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x43C;&#x443; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x44E;. &#x41D;&#x438;&#x436;&#x435; &#x2014; production-runbook, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; power cap &#x431;&#x435;&#x437; &#x432;&#x44B;&#x434;&#x443;&#x43C;&#x430;&#x43D;&#x43D;&#x44B;&#x445; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x43D;&#x442;&#x43E;&#x432; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x44F; &#x438;&#x43B;&#x438; &#x44D;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x438;&#x438;.</p><div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="power-cap-boundary">&#x427;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x440;&#x435;&#x448;&#x430;&#x435;&#x442; power cap &#x2014; &#x438; &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43E;&#x43D; &#x431;&#x435;&#x441;&#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D;</h2>
<p>Power cap &#x437;&#x430;&#x434;&#x430;&#x451;&#x442; &#x432;&#x435;&#x440;&#x445;&#x43D;&#x44E;&#x44E; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443; &#x43F;&#x43E;&#x442;&#x440;&#x435;&#x431;&#x43B;&#x435;&#x43D;&#x438;&#x44F; GPU. &#x41A;&#x43E;&#x433;&#x434;&#x430; &#x43A;&#x430;&#x440;&#x442;&#x430; &#x434;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430;&#x435;&#x442; &#x435;&#x451;, &#x430;&#x43B;&#x433;&#x43E;&#x440;&#x438;&#x442;&#x43C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x435;&#x43C; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x441;&#x43D;&#x438;&#x437;&#x438;&#x442;&#x44C; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x44B;. &#x42D;&#x442;&#x43E; &#x438;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43C;&#x435;&#x43D;&#x442; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; power envelope, &#x430; &#x43D;&#x435; &#x43A;&#x43D;&#x43E;&#x43F;&#x43A;&#x430; &#xAB;&#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; inference &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x435;&#x435;&#xBB;. &#x412; &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; <a href="https://docs.nvidia.com/deploy/nvidia-smi/index.html?ref=kingservers.com">nvidia-smi</a> &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440; <code>--power-limit</code> &#x43E;&#x43F;&#x438;&#x441;&#x430;&#x43D; &#x43A;&#x430;&#x43A; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x432; &#x432;&#x430;&#x442;&#x442;&#x430;&#x445; &#x432; &#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x430;&#x445; min/max, &#x43F;&#x440;&#x438;&#x447;&#x451;&#x43C; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x430;&#x434;&#x43C;&#x438;&#x43D;&#x438;&#x441;&#x442;&#x440;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x445; &#x43F;&#x440;&#x430;&#x432;.</p>
<p>&#x425;&#x43E;&#x440;&#x43E;&#x448;&#x438;&#x439; &#x43F;&#x43E;&#x432;&#x43E;&#x434; &#x434;&#x43B;&#x44F; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430; &#x2014; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x435; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x442;&#x43E;&#x439;&#x43A;&#x438;, &#x436;&#x435;&#x43B;&#x430;&#x43D;&#x438;&#x435; &#x441;&#x433;&#x43B;&#x430;&#x434;&#x438;&#x442;&#x44C; &#x43F;&#x438;&#x43A;&#x438; &#x438;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C;, &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43B;&#x438; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x438;&#x442;&#x44C; energy-per-token &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x438; SLO. &#x41F;&#x43B;&#x43E;&#x445;&#x43E;&#x439; &#x43F;&#x43E;&#x432;&#x43E;&#x434; &#x2014; &#x43D;&#x438;&#x437;&#x43A;&#x430;&#x44F; GPU utilization, &#x434;&#x43B;&#x438;&#x43D;&#x43D;&#x430;&#x44F; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x438;&#x437;-&#x437;&#x430; CPU tokenizer, &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x430;&#x44F; &#x441;&#x435;&#x442;&#x44C; &#x438;&#x43B;&#x438; storage. &#x412; &#x442;&#x430;&#x43A;&#x438;&#x445; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x44F;&#x445; GPU &#x43D;&#x435; &#x443;&#x43F;&#x438;&#x440;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x441;&#x43E;&#x431;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x43C;&#x43E;&#x449;&#x43D;&#x43E;&#x441;&#x442;&#x44C;, &#x438; &#x43D;&#x43E;&#x432;&#x44B;&#x439; cap &#x43B;&#x438;&#x448;&#x44C; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E;.</p>
<p>&#x41F;&#x435;&#x440;&#x432;&#x44B;&#x439; disqualifier &#x43F;&#x440;&#x43E;&#x441;&#x442;: &#x435;&#x441;&#x43B;&#x438; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; &#x440;&#x435;&#x43F;&#x440;&#x435;&#x437;&#x435;&#x43D;&#x442;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x439; replay &#x43D;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x438;&#x442; GPU &#x43A; &#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x43E;&#x439; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x435; &#x438; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x43C;&#x443; power ceiling, power cap &#x43D;&#x435; &#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x43C; &#x440;&#x44B;&#x447;&#x430;&#x433;&#x43E;&#x43C;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x438;&#x449;&#x438;&#x442;&#x435; bottleneck. &#x414;&#x43B;&#x44F; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;&#x430; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44F;&#x442;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x44B;&#x439; cap &#x43E;&#x442; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x438;: &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/gpu-throttling-llm-inference-dcgm-prometheus/">GPU throttling &#x447;&#x435;&#x440;&#x435;&#x437; DCGM &#x438; Prometheus</a> &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x44F;&#x435;&#x442; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B; &#x441;&#x43D;&#x438;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;, &#x430; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43C;&#x44B; &#x43D;&#x430;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x43C; SW power cap &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C; &#x435;&#x433;&#x43E; &#x432;&#x43B;&#x438;&#x44F;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435;.</p>
<p>&#x415;&#x441;&#x442;&#x44C; &#x438; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x440;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430;. &#x415;&#x441;&#x43B;&#x438; &#x437;&#x430;&#x434;&#x430;&#x447;&#x430; &#x2014; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x442;&#x44C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43E;&#x432; &#x432; &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x435;&#x43C; power envelope, &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x430;&#x44F; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x430; &#x434;&#x430;&#x451;&#x442; &#x43F;&#x440;&#x43E;&#x437;&#x440;&#x430;&#x447;&#x43D;&#x43E;&#x435; ownership &#x43D;&#x430;&#x434; GPU, &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x435;&#x43C; &#x438; canary-&#x443;&#x437;&#x43B;&#x430;&#x43C;&#x438;. &#x415;&#x441;&#x43B;&#x438; &#x437;&#x430;&#x434;&#x430;&#x447;&#x430; &#x2014; &#xAB;&#x441;&#x44D;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x438;&#x442;&#x44C; &#x432;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#xBB;, &#x431;&#x435;&#x437; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x430; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x43E;&#x432; &#x438; SLO &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x431;&#x443;&#x434;&#x435;&#x442; &#x441;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x441;&#x43B;&#x430;&#x431;&#x44B;&#x43C; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x43E; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;.</p><style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}
.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}
.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}
.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}
.ks-widget .panel.on{display:block}
.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}
.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}
.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style><div class="ks-widget" id="ks-sel-pwr7a2c"><h3>&#x415;&#x441;&#x442;&#x44C; &#x43B;&#x438; &#x441;&#x43C;&#x44B;&#x441;&#x43B; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x442;&#x44C; canary?</h3>
<label>&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;</label><select data-s><option value="rack">&#x421;&#x442;&#x43E;&#x439;&#x43A;&#x430; &#x443;&#x43F;&#x438;&#x440;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; power envelope</option><option value="cost">&#x41D;&#x443;&#x436;&#x43D;&#x43E; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x44C; energy-per-token</option><option value="idle">GPU &#x447;&#x430;&#x441;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x430;&#x438;&#x432;&#x430;&#x435;&#x442;</option><option value="cpu">&#x41E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x440;&#x430;&#x441;&#x442;&#x451;&#x442; &#x43F;&#x440;&#x438; &#x43D;&#x438;&#x437;&#x43A;&#x43E;&#x439; GPU utilization</option></select>
<div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-sel-pwr7a2c');if(!r)return;var m={"rack":"Да: power cap можно проверять как управляемый способ снизить пиковую мощность, но только с application SLO.","cost":"Да: фиксируйте энергию и токены на одинаковом replay-наборе, не сравнивайте среднюю мощность отдельно.","idle":"Сначала исправьте scheduling и загрузку. Power cap почти не влияет на энергию простоя.","cpu":"Нет: ищите CPU, сеть, storage или batching bottleneck. Лимит GPU не лечит незагруженный ускоритель."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><h2 id="baseline-evidence">Baseline: &#x447;&#x442;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x44C; &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;</h2>
<p>Baseline &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x442;&#x44C; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C;&#x443; &#x438;&#x43D;&#x436;&#x435;&#x43D;&#x435;&#x440;&#x443; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x438;&#x442;&#x44C; &#x43D;&#x430; &#x442;&#x440;&#x438; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x430;: &#x43A;&#x430;&#x43A;&#x43E;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x43B;&#x438;, &#x43A;&#x430;&#x43A;&#x43E;&#x439; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x43E;&#x432;&#x430;&#x43B; &#x438; &#x43A;&#x430;&#x43A; &#x432; &#x442;&#x43E;&#x442; &#x43C;&#x43E;&#x43C;&#x435;&#x43D;&#x442; &#x432;&#x451;&#x43B; &#x441;&#x435;&#x431;&#x44F; LLM-&#x441;&#x435;&#x440;&#x432;&#x438;&#x441;. &#x421;&#x43D;&#x438;&#x43C;&#x43E;&#x43A; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; <code>nvidia-smi</code> &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430; &#x434;&#x43B;&#x44F; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x435;&#x43D;. &#x417;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; UUID, &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; GPU, &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;, power management mode, requested/default/min/max limit &#x438; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x43C;&#x44B;&#x439; ceiling.</p>
<p>&#x417;&#x430;&#x442;&#x435;&#x43C; &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; workload identity: &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x438; &#x434;&#x432;&#x438;&#x436;&#x43A;&#x430;, &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; tensor parallelism, &#x434;&#x43B;&#x438;&#x43D;&#x44B; prompt/output, concurrency, &#x440;&#x435;&#x436;&#x438;&#x43C; batching, &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; prefix/KV cache &#x438; &#x441;&#x430;&#x43C; replay-&#x43D;&#x430;&#x431;&#x43E;&#x440;. &#x417;&#x43D;&#x430;&#x43A;&#x43E;&#x43C;&#x430;&#x44F; &#x43B;&#x43E;&#x432;&#x443;&#x448;&#x43A;&#x430;: baseline &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x44F;&#x44E;&#x442; &#x43D;&#x430; &#x445;&#x43E;&#x43B;&#x43E;&#x434;&#x43D;&#x43E;&#x43C; cache, &#x430; canary &#x2014; &#x443;&#x436;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x435;&#x442;&#x43E;&#x43C;, &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x447;&#x435;&#x433;&#x43E; &#x440;&#x430;&#x437;&#x43D;&#x438;&#x446;&#x443; &#x43F;&#x440;&#x438;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x44E;&#x442; &#x432;&#x430;&#x442;&#x442;&#x430;&#x43C;.</p>
<p>Application evidence &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x43E;&#x439; &#x43A;&#x440;&#x438;&#x432;&#x43E;&#x439; &#x43C;&#x43E;&#x449;&#x43D;&#x43E;&#x441;&#x442;&#x438;. &#x414;&#x43B;&#x44F; vLLM &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; TTFT, &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43D;&#x430; &#x432;&#x44B;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x442;&#x43E;&#x43A;&#x435;&#x43D;, end-to-end latency, throughput, queue time, &#x447;&#x438;&#x441;&#x43B;&#x43E; running/waiting requests &#x438; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;. &#x410;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; <a href="https://docs.vllm.ai/en/latest/usage/metrics/?ref=kingservers.com">&#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; vLLM Production Metrics</a> &#x43F;&#x435;&#x440;&#x435;&#x447;&#x438;&#x441;&#x43B;&#x44F;&#x435;&#x442; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x438;&#x435; Prometheus-&#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438;, &#x43D;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x430; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C;&#x441;&#x44F; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F;&#x43C;&#x438;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x441;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; endpoint &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x430;&#x448;&#x435;&#x433;&#x43E; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x430;.</p>
<p>&#x421;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; evidence bundle &#x441; timestamp &#x438; owner. &#x41E;&#x43D; &#x43F;&#x440;&#x438;&#x433;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x434;&#x43B;&#x44F; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x435;&#x43D;&#x438;&#x44F;, &#x43D;&#x43E; &#x438; &#x434;&#x43B;&#x44F; rollback: &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x438;&#x437; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x44F; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; UUID, &#x430; &#x43D;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#xAB;&#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x439; &#x43B;&#x438;&#x43C;&#x438;&#x442;&#xBB; &#x441; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x435;&#x439; &#x43A;&#x430;&#x440;&#x442;&#x44B;. &#x41E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x435;&#x441;&#x43B;&#x438; &#x432; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; GPU &#x438;&#x43B;&#x438; platform-level &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x44F;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">capture-gpu-power-baseline.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>#!/usr/bin/env bash
set -euo pipefail
GPU_UUID=&quot;${1:?pass GPU UUID}&quot;
STAMP=&quot;$(date -u +%Y%m%dT%H%M%SZ)&quot;
OUT=&quot;power-baseline-${GPU_UUID}-${STAMP}.txt&quot;

{
  nvidia-smi --query-gpu=uuid,name,driver_version,power.management,power.limit,power.default_limit,power.min_limit,power.max_limit --format=csv
  nvidia-smi -i &quot;$GPU_UUID&quot; -q -d POWER,CLOCK,TEMPERATURE
} | tee &quot;$OUT&quot;</code></pre>
<div class="ks-canonical-code-block__caption">&#x421;&#x43D;&#x438;&#x43C;&#x43E;&#x43A; identity &#x438; &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D;&#x430; power limit &#x43F;&#x435;&#x440;&#x435;&#x434; canary</div>
</div>
<div class="ks-widget" id="ks-chk-base9f1"><h3>Baseline &#x433;&#x43E;&#x442;&#x43E;&#x432; &#x43A; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44E;?</h3>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x44B; UUID, &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; GPU &#x438; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B; default/min/max &#x438; enforced power limit</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> Replay-&#x43D;&#x430;&#x431;&#x43E;&#x440; &#x438; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; vLLM &#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> &#x421;&#x43D;&#x44F;&#x442;&#x44B; TTFT, TPOT, throughput &#x438; queue time</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x415;&#x441;&#x442;&#x44C; &#x43E;&#x43A;&#x43D;&#x43E; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x438; owner rollback</label>
<div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-chk-base9f1');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-baseline-evidence-db57db07.webp" class="kg-image" alt="Power cap &#x434;&#x43B;&#x44F; GPU &#x432; LLM inference: production-runbook &#x431;&#x435;&#x437; &#x433;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x432;&#x430;&#x442;&#x442;&#x430;&#x43C;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpu-power-cap-baseline-evidence-db57db07.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpu-power-cap-baseline-evidence-db57db07.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-baseline-evidence-db57db07.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="identity-constraints">UUID, &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x44B;&#x439; &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D; &#x438; effective state</h2>
<p>&#x41D;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441; <code>0</code> &#x43A;&#x430;&#x43A; &#x434;&#x43E;&#x43B;&#x433;&#x43E;&#x432;&#x435;&#x447;&#x43D;&#x443;&#x44E; identity. &#x41F;&#x43E;&#x441;&#x43B;&#x435; reboot, driver reload &#x438;&#x43B;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; topology &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x43D;&#x430; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E;. &#x414;&#x43B;&#x44F; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x438; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x44F;&#x439;&#x442;&#x435; GPU UUID &#x438;&#x437; inventory. Owner &#x448;&#x430;&#x433;&#x430; &#x2014; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x430;&#x44F; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x430;&#x44F; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x442; host; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x43E; &#x441;&#x430;&#x43C;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; board power limit.</p>
<p>&#x41F;&#x435;&#x440;&#x435;&#x434; write &#x43F;&#x440;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x446;&#x435;&#x43B;&#x435;&#x432;&#x43E;&#x433;&#x43E; GPU. NVML &#x43F;&#x440;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; default limit &#x438; min/max constraints, &#x430; <a href="https://docs.nvidia.com/deploy/nvml-api/group__nvmlDeviceCommands.html?ref=kingservers.com">nvmlDeviceSetPowerManagementLimit</a> &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; root/admin, &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x43E;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E; &#x438; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x432; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x43E;&#x43C; &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D;&#x435;. &#x41B;&#x438;&#x43C;&#x438;&#x442; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x435;&#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;, &#x43D;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x441;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; NVML-&#x432;&#x44B;&#x437;&#x43E;&#x432; &#x43D;&#x435; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x435;&#x442; &#x435;&#x433;&#x43E; &#x447;&#x435;&#x440;&#x435;&#x437; reboot &#x438;&#x43B;&#x438; driver unload. &#x42D;&#x442;&#x43E; &#x437;&#x43D;&#x430;&#x447;&#x438;&#x442;, &#x447;&#x442;&#x43E; &#xAB;&#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x432;&#x435;&#x440;&#x43D;&#x443;&#x43B;&#x430; exit code 0&#xBB; &#x2014; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430;&#x447;&#x430;&#x43B;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;.</p>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x441;&#x43D;&#x43E;&#x432;&#x430; &#x43F;&#x440;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; requested &#x438; enforced limit. &#x41D;&#x430; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x445; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x430;&#x44E;&#x442;&#x441;&#x44F; GPU ceiling, module power &#x438; GPU base power scopes; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; nvidia-smi &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; <code>--scope</code>. &#x41D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x443; &#x441; Hopper/Grace-&#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438; &#x43D;&#x430; &#x434;&#x440;&#x443;&#x433;&#x443;&#x44E; &#x430;&#x440;&#x445;&#x438;&#x442;&#x435;&#x43A;&#x442;&#x443;&#x440;&#x443; &#x431;&#x435;&#x437; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;. &#x414;&#x43B;&#x44F; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x433;&#x43E; GPU ceiling &#x43D;&#x435; &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x439; scope &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443;, &#x447;&#x442;&#x43E; &#x43E;&#x43D; &#x435;&#x441;&#x442;&#x44C; &#x432; &#x441;&#x432;&#x435;&#x436;&#x435;&#x439; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; CLI.</p>
<p>Negative control &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x440;&#x44F;&#x434;&#x43E;&#x43C;: &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x43A; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x435;&#x43C;&#x443; UUID &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x435;&#x433;&#x43E; effective state &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x441;&#x44F;. &#x415;&#x441;&#x43B;&#x438; automation &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x430;&#x441;&#x44C; &#x43F;&#x43E; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x435; &#x446;&#x435;&#x43B;&#x438;&#x43A;&#x43E;&#x43C;, canary &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44F;&#x43D;. &#x412; multi-GPU inference &#x44D;&#x442;&#x43E; &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x43E;: &#x43E;&#x434;&#x438;&#x43D; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x43D;&#x44B;&#x439; rank &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x441;&#x435;&#x439; tensor-parallel &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43B;&#x438;&#x431;&#x43E; &#x442;&#x435;&#x441;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x432;&#x441;&#x44E; &#x438;&#x437;&#x43E;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x443;&#x44E; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x443; &#x43A;&#x430;&#x43A; &#x435;&#x434;&#x438;&#x43D;&#x438;&#x446;&#x443;, &#x43B;&#x438;&#x431;&#x43E; &#x43D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x439;&#x442;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x43F;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x43A;&#x430;&#x440;&#x442;&#x435; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; production replica.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-gates-infographic-f3150251.webp" class="kg-image" alt="Power cap &#x434;&#x43B;&#x44F; GPU &#x432; LLM inference: production-runbook &#x431;&#x435;&#x437; &#x433;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x432;&#x430;&#x442;&#x442;&#x430;&#x43C;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpu-power-cap-gates-infographic-f3150251.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpu-power-cap-gates-infographic-f3150251.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-gates-infographic-f3150251.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="canary-change">Canary: &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x43C; &#x43E;&#x434;&#x438;&#x43D; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x443;&#x440;</h2>
<p>&#x412;&#x44B;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; canary &#x442;&#x430;&#x43A;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x435;&#x433;&#x43E; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x431;&#x44B;&#x43B;&#x43E; &#x441;&#x43D;&#x44F;&#x442;&#x44C; &#x441; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430; &#x431;&#x435;&#x437; &#x43D;&#x430;&#x440;&#x443;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x43E;&#x441;&#x442;&#x438;. &#x42D;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; vLLM replica &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; GPU &#x438;&#x43B;&#x438; &#x446;&#x435;&#x43B;&#x430;&#x44F; tensor-parallel replica, &#x435;&#x441;&#x43B;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43A;&#x430;&#x440;&#x442;. Baseline &#x438; canary &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x442;&#x44C; &#x43E;&#x434;&#x438;&#x43D; &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; replay &#x441; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x439; concurrency &#x438; &#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x434;&#x43B;&#x438;&#x43D;. &#x41D;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; cap &#x441; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;, &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;, quantization &#x438;&#x43B;&#x438; scheduler.</p>
<p>&#x428;&#x430;&#x433; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43D;&#x430;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E; &#x441;&#x43A;&#x443;&#x447;&#x43D;&#x44B;&#x439;: &#x43F;&#x43E;&#x434;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; UUID &#x438; &#x43F;&#x440;&#x435;&#x434;&#x432;&#x430;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x432; &#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x430;&#x445; min/max. &#x417;&#x434;&#x435;&#x441;&#x44C; &#x43D;&#x435;&#x442; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x447;&#x438;&#x441;&#x43B;&#x430;. &#x414;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x44B;&#x439; cap &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; GPU, &#x43E;&#x445;&#x43B;&#x430;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F;, workload shape &#x438; SLO. &#x41D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x441; &#x43C;&#x430;&#x43B;&#x43E;&#x439;, &#x43E;&#x431;&#x440;&#x430;&#x442;&#x438;&#x43C;&#x43E;&#x439; &#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D;&#x438;, &#x430; &#x43D;&#x435; &#x441; &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F;.</p>
<p>&#x421;&#x440;&#x430;&#x437;&#x443; &#x43F;&#x43E;&#x441;&#x43B;&#x435; write &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x435; effective state &#x447;&#x442;&#x435;&#x43D;&#x438;&#x435;&#x43C;. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x435;&#x432;, &#x43E;&#x442;&#x431;&#x440;&#x43E;&#x441;&#x44C;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x435;&#x432;&#x43E;&#x447;&#x43D;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E; &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x441;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E;. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x43B;&#x438; &#x43B;&#x438; &#x432;&#x44B;, &#x447;&#x442;&#x43E; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x44B; &#x438; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B; &#x43D;&#x430; baseline &#x438; canary &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x43B;&#x438;? &#x411;&#x435;&#x437; &#x44D;&#x442;&#x43E;&#x433;&#x43E; power draw &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x441; &#x440;&#x430;&#x437;&#x43D;&#x43E;&#x439; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;&#x439; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x43E;&#x439;.</p>
<p>&#x412;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; canary &#x43D;&#x435; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; &#x437;&#x430;&#x449;&#x438;&#x442;&#x43D;&#x44B;&#x435; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x44B; &#x438; &#x43D;&#x435; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; clocks &#xAB;&#x434;&#x43B;&#x44F; &#x447;&#x438;&#x441;&#x442;&#x43E;&#x442;&#x44B; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#xBB;, &#x435;&#x441;&#x43B;&#x438; &#x44D;&#x442;&#x43E; &#x43D;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x441;&#x43F;&#x43B;&#x430;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442;. Power cap &#x432; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x438; &#x432;&#x437;&#x430;&#x438;&#x43C;&#x43E;&#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x441; boost, temperature &#x438; workload. &#x417;&#x430;&#x434;&#x430;&#x447;&#x430; &#x2014; &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; production-&#x43A;&#x43E;&#x43D;&#x442;&#x443;&#x440;&#x430;, &#x430; &#x43D;&#x435; &#x43B;&#x430;&#x431;&#x43E;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x43D;&#x443;&#x44E; &#x43A;&#x430;&#x440;&#x442;&#x438;&#x43D;&#x43A;&#x443; &#x431;&#x435;&#x437; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x445; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x435;&#x439;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">apply-power-cap-canary.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>#!/usr/bin/env bash
set -euo pipefail
GPU_UUID=&quot;${1:?pass GPU UUID}&quot;
CAP_WATTS=&quot;${2:?pass approved watts}&quot;

nvidia-smi -i &quot;$GPU_UUID&quot; --power-limit=&quot;$CAP_WATTS&quot;
nvidia-smi -i &quot;$GPU_UUID&quot; -q -d POWER
nvidia-smi --query-gpu=uuid,power.limit,power.default_limit --format=csv,noheader</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; cap &#x43F;&#x43E; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C;&#x443; GPU UUID</div>
</div>
<figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-canary-rack-10b15161.webp" class="kg-image" alt="Power cap &#x434;&#x43B;&#x44F; GPU &#x432; LLM inference: production-runbook &#x431;&#x435;&#x437; &#x433;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x432;&#x430;&#x442;&#x442;&#x430;&#x43C;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpu-power-cap-canary-rack-10b15161.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpu-power-cap-canary-rack-10b15161.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-canary-rack-10b15161.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="three-gates">&#x422;&#x440;&#x438; gate &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x43E;&#x439; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438;</h2>
<p><strong>Gate 1 &#x2014; configuration state.</strong> &#x426;&#x435;&#x43B;&#x435;&#x432;&#x43E;&#x439; UUID &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x441;&#x44F;, requested limit &#x440;&#x430;&#x432;&#x435;&#x43D; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x43C;&#x443; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44E;, enforced limit &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;, &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x435; GPU &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438;&#x441;&#x44C;. &#x415;&#x441;&#x43B;&#x438; &#x44D;&#x442;&#x43E;&#x442; gate &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x439;&#x434;&#x435;&#x43D;, &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x44B; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x431;&#x435;&#x441;&#x441;&#x43C;&#x44B;&#x441;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;: &#x432;&#x44B; &#x442;&#x435;&#x441;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442;&#x435; &#x43D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x43E;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;.</p>
<p><strong>Gate 2 &#x2014; GPU data path.</strong> &#x421;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435; power, total energy counter, SM/memory clocks, utilization, temperature &#x438; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B; clock events. &#x412; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; DCGM &#x43F;&#x43E;&#x43B;&#x435; <code>DCGM_FI_DEV_CLOCKS_EVENT_REASONS</code> &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; deprecated throttle-reasons alias; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B; board power, total energy &#x438; &#x432;&#x440;&#x435;&#x43C;&#x44F; SW power cap. <a href="https://docs.nvidia.com/datacenter/dcgm/latest/dcgm-api/dcgm-api-field-ids.html?ref=kingservers.com">&#x421;&#x43F;&#x440;&#x430;&#x432;&#x43E;&#x447;&#x43D;&#x438;&#x43A; DCGM field IDs</a> &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x438;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A;&#x43E;&#x43C; &#x438;&#x441;&#x442;&#x438;&#x43D;&#x44B; &#x434;&#x43B;&#x44F; &#x435;&#x434;&#x438;&#x43D;&#x438;&#x446; &#x438; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x438;.</p>
<p>&#x41E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E; &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; SW power cap &#x43F;&#x440;&#x438; &#x43D;&#x430;&#x441;&#x44B;&#x449;&#x435;&#x43D;&#x43D;&#x43E;&#x439; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x435;. &#x41D;&#x435;&#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x43D;&#x43E; &#x2014; thermal slowdown &#x438;&#x43B;&#x438; HW power brake. &#x41E;&#x43D;&#x438; &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x44E;&#x442; &#x43D;&#x430; &#x43E;&#x445;&#x43B;&#x430;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435;, PSU/platform control &#x438;&#x43B;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;. &#x41D;&#x435; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; hardware slowdown &#x432; &#xAB;&#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x434;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x43B;&#x438; &#x43B;&#x438;&#x43C;&#x438;&#x442;&#x430;&#xBB;.</p>
<p><strong>Gate 3 &#x2014; application readiness.</strong> TTFT, TPOT, throughput, queue time &#x438; error rate &#x43E;&#x441;&#x442;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; SLO. GPU &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x445;&#x43E;&#x43B;&#x43E;&#x434;&#x43D;&#x435;&#x435; &#x438; &#x43F;&#x43E;&#x442;&#x440;&#x435;&#x431;&#x43B;&#x44F;&#x442;&#x44C; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435;, &#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44E; &#x441;&#x442;&#x430;&#x43D;&#x435;&#x442; &#x445;&#x443;&#x436;&#x435; &#x438;&#x437;-&#x437;&#x430; &#x440;&#x43E;&#x441;&#x442;&#x430; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x438;. &#x418;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; application gate &#x440;&#x435;&#x448;&#x430;&#x435;&#x442;, &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x430;&#x442;&#x44C; rollout.</p>
<p>&#x412; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; gate &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x437;&#x430;&#x434;&#x430;&#x439;&#x442;&#x435; stop condition &#x438; owner. Infra owner &#x43E;&#x442;&#x43A;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x435;&#x442; limit &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; effective state; service owner &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x434;&#x430;&#x447;&#x443; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x438; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; SLO. &#x422;&#x430;&#x43A;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x440;&#x43E;&#x43B;&#x435;&#x439; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x435;&#x435; &#x43B;&#x44E;&#x431;&#x43E;&#x433;&#x43E; &#x43E;&#x431;&#x449;&#x435;&#x433;&#x43E; &#x447;&#x430;&#x442;&#x430; &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430;.</p><div class="ks-widget" id="ks-tab-gate4d8"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x439; gate &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x439;&#x434;&#x435;&#x43D;?</h3>
<div class="tabs"><button type="button" class="tab-btn on" data-t="state">State</button><button type="button" class="tab-btn" data-t="gpu">GPU</button><button type="button" class="tab-btn" data-t="app">Application</button></div>
<div class="panel on" data-p="state">&#x417;&#x430;&#x43F;&#x440;&#x43E;&#x448;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x438; enforced limit &#x43D;&#x435; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x44E;&#x442; &#x43B;&#x438;&#x431;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x441;&#x44F; &#x43D;&#x435; &#x442;&#x43E;&#x442; UUID. &#x41E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; &#x442;&#x435;&#x441;&#x442; &#x438; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x44C;&#x442;&#x435; ownership/identity.</div><div class="panel" data-p="gpu">Power cap &#x430;&#x43A;&#x442;&#x438;&#x432;&#x435;&#x43D;, &#x43D;&#x43E; &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x438;&#x441;&#x44C; thermal &#x438;&#x43B;&#x438; hardware power-brake &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x44F;. &#x42D;&#x442;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;, &#x430; &#x43D;&#x435; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; SW power cap.</div><div class="panel" data-p="app">GPU-&#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B;&#x44B; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x44F;&#x442; &#x448;&#x442;&#x430;&#x442;&#x43D;&#x43E;, &#x43D;&#x43E; TTFT, TPOT, &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x438;&#x43B;&#x438; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x432;&#x44B;&#x448;&#x43B;&#x438; &#x437;&#x430; SLO. &#x412;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x439;&#x442;&#x435; baseline &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; workload shape.</div>
<script>(function(){var r=document.getElementById('ks-tab-gate4d8');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><h2 id="measure-energy-token">&#x41A;&#x430;&#x43A; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x44D;&#x43D;&#x435;&#x440;&#x433;&#x438;&#x44E; &#x43D;&#x430; &#x442;&#x43E;&#x43A;&#x435;&#x43D;, &#x430; &#x43D;&#x435; &#x440;&#x430;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x438;&#x437;&#x43A;&#x438;&#x43C; &#x432;&#x430;&#x442;&#x442;&#x430;&#x43C;</h2>
<p>&#x421;&#x440;&#x435;&#x434;&#x43D;&#x44F;&#x44F; &#x43C;&#x43E;&#x449;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x441;&#x430;&#x43C;&#x430; &#x43F;&#x43E; &#x441;&#x435;&#x431;&#x435; &#x43E;&#x431;&#x43C;&#x430;&#x43D;&#x447;&#x438;&#x432;&#x430;. GPU &#x43D;&#x430; 40 &#x432;&#x430;&#x442;&#x442; &#x43D;&#x438;&#x436;&#x435;, &#x43D;&#x43E; &#x433;&#x435;&#x43D;&#x435;&#x440;&#x438;&#x440;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x43D;&#x430; &#x442;&#x440;&#x435;&#x442;&#x44C; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x43E;&#x432;, &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x445;&#x443;&#x436;&#x435; &#x43F;&#x43E; &#x44D;&#x43D;&#x435;&#x440;&#x433;&#x438;&#x438; &#x43D;&#x430; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x443;&#x44E; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x443;. &#x41D;&#x443;&#x436;&#x43D;&#x44B; &#x434;&#x432;&#x430; &#x43C;&#x43E;&#x43D;&#x43E;&#x442;&#x43E;&#x43D;&#x43D;&#x44B;&#x445; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x430; &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x43E;&#x43A;&#x43D;&#x435;: delta total energy &#x438; delta generated tokens. DCGM &#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x443;&#x435;&#x442; total energy consumption &#x432; &#x43C;&#x438;&#x43B;&#x43B;&#x438;&#x434;&#x436;&#x43E;&#x443;&#x43B;&#x44F;&#x445;, &#x430; vLLM &#x2014; counter &#x441; &#x43A;&#x43E;&#x43B;&#x438;&#x447;&#x435;&#x441;&#x442;&#x432;&#x43E;&#x43C; generation tokens.</p>
<p>&#x424;&#x43E;&#x440;&#x43C;&#x443;&#x43B;&#x430; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x430;: <code>joules_per_token = delta_energy_mJ / 1000 / delta_tokens</code>. &#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x435;&#x451; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x440;&#x438; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x43C; workload identity &#x438; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E;&#x43C; &#x447;&#x438;&#x441;&#x43B;&#x435; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D;&#x43D;&#x44B;&#x445; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;. &#x420;&#x44F;&#x434;&#x43E;&#x43C; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; TTFT, TPOT &#x438; throughput: &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x430;&#x44F; &#x44D;&#x43D;&#x435;&#x440;&#x433;&#x43E;&#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43D;&#x435; &#x434;&#x430;&#x451;&#x442; &#x43F;&#x440;&#x430;&#x432;&#x430; &#x43D;&#x430;&#x440;&#x443;&#x448;&#x430;&#x442;&#x44C; latency SLO.</p>
<p>&#x414;&#x43B;&#x44F; prefill-heavy &#x438; decode-heavy &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x435;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x430;&#x442;&#x44C;&#x441;&#x44F;. Prefill &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43D;&#x430;&#x441;&#x44B;&#x449;&#x430;&#x435;&#x442; &#x43C;&#x430;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x431;&#x43B;&#x43E;&#x43A;&#x438;, decode &#x447;&#x430;&#x449;&#x435; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C;&#x44E; &#x438; batching. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43E;&#x434;&#x438;&#x43D; &#x441;&#x43C;&#x435;&#x448;&#x430;&#x43D;&#x43D;&#x44B;&#x439; replay &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44C;, &#x43A;&#x430;&#x43A;&#x43E;&#x439; &#x43A;&#x43B;&#x430;&#x441;&#x441; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432; &#x43F;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x434;&#x430;&#x43B;. &#x420;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x43E;&#x442;&#x447;&#x451;&#x442; &#x445;&#x43E;&#x442;&#x44F; &#x431;&#x44B; &#x43D;&#x430; &#x434;&#x432;&#x430; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44F; &#x438; &#x43D;&#x435; &#x443;&#x441;&#x440;&#x435;&#x434;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x438;&#x445; &#x432; &#x435;&#x434;&#x438;&#x43D;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#xAB;&#x44D;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x438;&#x44E;&#xBB;.</p>
<p>&#x421;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x434;&#x435;&#x43D;&#x44C;&#x433;&#x438; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x442;&#x435;&#x445;&#x43D;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x433;&#x43E; gate. &#x412; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x435; <a href="https://kingservers.com/blog/build-vs-buy-infrastruktura/">&#x43E; &#x441;&#x442;&#x43E;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; LLM-&#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x430; &#x43D;&#x430; &#x441;&#x432;&#x43E;&#x451;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;</a> &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43E;, &#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443; utilisation &#x438; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x438; &#x432;&#x43B;&#x438;&#x44F;&#x44E;&#x442; &#x43D;&#x430; &#x44D;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x438;&#x43A;&#x443; &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435; &#x436;&#x435;&#x43B;&#x435;&#x437;&#x430;. Power cap &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x435;&#x449;&#x451; &#x43E;&#x434;&#x43D;&#x443; &#x43E;&#x441;&#x44C;, &#x43D;&#x43E; &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x440;&#x430;&#x441;&#x447;&#x451;&#x442; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x439; &#x441;&#x442;&#x43E;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438; &#x438; capacity.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">sample-vllm-dcgm-evidence.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>#!/usr/bin/env bash
set -euo pipefail
VLLM_METRICS=&quot;${VLLM_METRICS:-http://127.0.0.1:8000/metrics}&quot;
GPU_UUID=&quot;${1:?pass GPU UUID}&quot;

date -u +%FT%TZ
nvidia-smi -i &quot;$GPU_UUID&quot; --query-gpu=uuid,power.draw,power.limit,clocks.current.sm,temperature.gpu --format=csv
curl --fail --silent --show-error &quot;$VLLM_METRICS&quot; |
  grep -E &apos;vllm:(generation_tokens|time_to_first_token_seconds|request_queue_time_seconds|request_time_per_output_token_seconds)&apos;</code></pre>
<div class="ks-canonical-code-block__caption">&#x41C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x441;&#x431;&#x43E;&#x440; application &#x438; GPU evidence &#x432; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; &#x43E;&#x43A;&#x43D;&#x435;</div>
</div>
<figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-observability-9aa1ae6b.webp" class="kg-image" alt="Power cap &#x434;&#x43B;&#x44F; GPU &#x432; LLM inference: production-runbook &#x431;&#x435;&#x437; &#x433;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x432;&#x430;&#x442;&#x442;&#x430;&#x43C;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpu-power-cap-observability-9aa1ae6b.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpu-power-cap-observability-9aa1ae6b.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-observability-9aa1ae6b.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="interpret-results">&#x41A;&#x430;&#x43A; &#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x44B; &#x431;&#x435;&#x437; &#x441;&#x430;&#x43C;&#x43E;&#x43E;&#x431;&#x43C;&#x430;&#x43D;&#x430;</h2>
<p><strong>SLO &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;, joules/token &#x441;&#x43D;&#x438;&#x437;&#x438;&#x43B;&#x438;&#x441;&#x44C;.</strong> &#x42D;&#x442;&#x43E; &#x43A;&#x430;&#x43D;&#x434;&#x438;&#x434;&#x430;&#x442; &#x43D;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x443;&#x44E; &#x43C;&#x430;&#x43B;&#x443;&#x44E; &#x432;&#x43E;&#x43B;&#x43D;&#x443;, &#x43D;&#x43E; &#x435;&#x449;&#x451; &#x43D;&#x435; fleet policy. &#x412;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;: &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x44B;&#x439; cap &#x43D;&#x430; &#x442;&#x43E;&#x43C; &#x436;&#x435; canary &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; replay. &#x415;&#x441;&#x43B;&#x438; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x43A; baseline, &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x430;&#x44F; &#x441;&#x432;&#x44F;&#x437;&#x44C; &#x441;&#x442;&#x430;&#x43B;&#x430; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435;.</p>
<p><strong>&#x41C;&#x43E;&#x449;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x441;&#x43D;&#x438;&#x437;&#x438;&#x43B;&#x430;&#x441;&#x44C;, latency &#x432;&#x44B;&#x440;&#x43E;&#x441;&#x43B;&#x430;.</strong> &#x418;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43C;&#x435;&#x43D;&#x442; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442;, &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x2014; &#x43D;&#x435;&#x442;. &#x412;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;, cap &#x43F;&#x435;&#x440;&#x435;&#x441;&#x451;&#x43A; &#x442;&#x43E;&#x447;&#x43A;&#x443;, &#x433;&#x434;&#x435; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x430; &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x435;&#x435;, &#x447;&#x435;&#x43C; &#x44D;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x438;&#x442;&#x441;&#x44F; &#x44D;&#x43D;&#x435;&#x440;&#x433;&#x438;&#x44F;, &#x438;&#x43B;&#x438; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x443;&#x441;&#x438;&#x43B;&#x438;&#x43B;&#x430; tail latency. &#x412;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; baseline &#x438;, &#x435;&#x441;&#x43B;&#x438; &#x446;&#x435;&#x43B;&#x44C; &#x432;&#x441;&#x451; &#x435;&#x449;&#x451; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x430;, &#x442;&#x435;&#x441;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43C;&#x435;&#x43D;&#x435;&#x435; &#x441;&#x442;&#x440;&#x43E;&#x433;&#x443;&#x44E; &#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D;&#x44C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x43E;&#x43C;.</p>
<p><strong>&#x41D;&#x438;&#x447;&#x435;&#x433;&#x43E; &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x43E;&#x441;&#x44C;.</strong> &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x431;&#x435;&#x441;&#x43F;&#x43B;&#x430;&#x442;&#x43D;&#x430;&#x44F; &#x43F;&#x43E;&#x431;&#x435;&#x434;&#x430;. GPU &#x43C;&#x43E;&#x433; &#x43D;&#x435; &#x434;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430;&#x442;&#x44C; cap, &#x43E;&#x43A;&#x43D;&#x43E; &#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43B;&#x43E;&#x441;&#x44C; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x43C;, workload &#x431;&#x44B;&#x43B; CPU-bound &#x438;&#x43B;&#x438; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x43E;&#x432; &#x43D;&#x435; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x43B;. &#x418;&#x449;&#x438;&#x442;&#x435; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x430; &#x43F;&#x440;&#x435;&#x436;&#x434;&#x435;, &#x447;&#x435;&#x43C; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x442;&#x44C; rollout.</p>
<p><strong>&#x41F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x438;&#x441;&#x44C; thermal/HW &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x44F;.</strong> &#x41E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435;&#x441;&#x44C;. Power cap &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43C;&#x430;&#x441;&#x43A;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443; &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x44F; &#x438;&#x43B;&#x438; &#x43E;&#x445;&#x43B;&#x430;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F;. &#x421;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x441; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B;&#x43E;&#x43C; &#x43E; <a href="https://kingservers.com/blog/power-density-ai-serverov-i-stoek-data-tsentra/">power density AI-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43E;&#x432; &#x438; &#x441;&#x442;&#x43E;&#x435;&#x43A;</a>: board-level &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; &#x43D;&#x435; &#x43E;&#x442;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x439; &#x441;&#x442;&#x43E;&#x439;&#x43A;&#x438;, PSU, airflow &#x438; facility capacity.</p>
<p>&#x420;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x43E; &#x431;&#x44B;&#x442;&#x44C; &#x43C;&#x43D;&#x43E;&#x433;&#x43E;&#x43C;&#x435;&#x440;&#x43D;&#x44B;&#x43C;: application SLO, energy-per-token, &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C;, &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x430; &#x438; capacity. &#x41E;&#x434;&#x438;&#x43D; &#x433;&#x440;&#x430;&#x444;&#x438;&#x43A; &#xAB;&#x432;&#x430;&#x442;&#x442;&#x44B; &#x432;&#x43D;&#x438;&#x437;&#xBB; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x435;&#x43D; &#x434;&#x43B;&#x44F; production change request.</p><div class="ks-widget" id="ks-sel-out6b3e"><h3>&#x427;&#x442;&#x43E; &#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x441; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x43E;&#x43C; canary?</h3>
<label>&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x435;</label><select data-s><option value="win">SLO &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;, &#x44D;&#x43D;&#x435;&#x440;&#x433;&#x438;&#x44F; &#x43D;&#x430; &#x442;&#x43E;&#x43A;&#x435;&#x43D; &#x441;&#x43D;&#x438;&#x437;&#x438;&#x43B;&#x430;&#x441;&#x44C;</option><option value="flat">SLO &#x438; &#x44D;&#x43D;&#x435;&#x440;&#x433;&#x438;&#x44F; &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438;&#x441;&#x44C;</option><option value="slow">Latency &#x443;&#x445;&#x443;&#x434;&#x448;&#x438;&#x43B;&#x430;&#x441;&#x44C;, &#x43C;&#x43E;&#x449;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x441;&#x43D;&#x438;&#x437;&#x438;&#x43B;&#x430;&#x441;&#x44C;</option><option value="hot">&#x422;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x430; &#x438;&#x43B;&#x438; HW slowdown &#x443;&#x445;&#x443;&#x434;&#x448;&#x438;&#x43B;&#x438;&#x441;&#x44C;</option></select>
<div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-sel-out6b3e');if(!r)return;var m={"win":"Кандидат на следующую малую волну rollout. Сохраните контрфакт с возвратом baseline.","flat":"Не объявляйте победу: эффект не доказан. Проверьте длительность окна, загрузку и точность счётчиков.","slow":"Лимит слишком низок для этого workload shape. Верните baseline или протестируйте менее строгий cap.","hot":"Немедленный rollback и отдельная диагностика охлаждения, PSU или hardware power brake."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-decision-matrix-e508b026.webp" class="kg-image" alt="Power cap &#x434;&#x43B;&#x44F; GPU &#x432; LLM inference: production-runbook &#x431;&#x435;&#x437; &#x433;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x432;&#x430;&#x442;&#x442;&#x430;&#x43C;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpu-power-cap-decision-matrix-e508b026.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpu-power-cap-decision-matrix-e508b026.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-decision-matrix-e508b026.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="failure-modes">&#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430;: &#x433;&#x434;&#x435; &#x442;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C;</h2>
<p><strong>&#x41C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x43E;&#x432; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;.</strong> &#x415;&#x441;&#x43B;&#x438; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; power cap &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;, vLLM, quantization &#x438;&#x43B;&#x438; batch scheduler, &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x43D;&#x435; &#x43F;&#x440;&#x438;&#x43D;&#x430;&#x434;&#x43B;&#x435;&#x436;&#x438;&#x442; &#x43D;&#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;&#x439;. &#x414;&#x430;&#x436;&#x435; &#x435;&#x441;&#x43B;&#x438; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x43B;&#x441;&#x44F;, &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x443;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x430; &#x432; &#x43D;&#x43E;&#x432;&#x43E;&#x43C; &#x43B;&#x438;&#x43C;&#x438;&#x442;&#x435;. &#x420;&#x430;&#x437;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; canary &#x438; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; evidence bundle.</p>
<p><strong>&#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x444;&#x43E;&#x440;&#x43C;&#x44B; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;.</strong> &#x421;&#x440;&#x435;&#x434;&#x43D;&#x44F;&#x44F; concurrency &#x43D;&#x435; &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x435; prompt &#x438; output lengths. &#x41E;&#x434;&#x438;&#x43D; &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; prefill-heavy, &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x2014; decode-heavy; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x43E; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432; &#x43F;&#x440;&#x438; &#x44D;&#x442;&#x43E;&#x43C; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; &#x440;&#x430;&#x437;&#x43D;&#x443;&#x44E; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x443; &#x434;&#x43B;&#x44F; GPU. &#x425;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; replay manifest, &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x438; prompt/generation tokens &#x438; &#x434;&#x43E;&#x43B;&#x44E; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44F;. &#x415;&#x441;&#x43B;&#x438; production traffic &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x44C;, &#x445;&#x43E;&#x442;&#x44F; &#x431;&#x44B; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x435; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x43E;&#x43A;&#x43D;&#x430; &#x438; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x438;&#x442;&#x435; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435;.</p>
<p><strong>&#x418;&#x433;&#x43D;&#x43E;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C;.</strong> Throughput &#x43D;&#x430; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D;&#x43D;&#x44B;&#x445; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x430;&#x445; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x435;&#x442;&#x44C; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;, &#x43F;&#x43E;&#x43A;&#x430; waiting requests &#x43A;&#x43E;&#x43F;&#x44F;&#x442;&#x441;&#x44F;. &#x427;&#x435;&#x440;&#x435;&#x437; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43C;&#x438;&#x43D;&#x443;&#x442; tail latency &#x432;&#x43D;&#x435;&#x437;&#x430;&#x43F;&#x43D;&#x43E; &#x432;&#x44B;&#x439;&#x434;&#x435;&#x442; &#x437;&#x430; SLO. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; queue time &#x438; waiting count &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x432;&#x441;&#x451;&#x43C; &#x43E;&#x43A;&#x43D;&#x435; &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x440;&#x435;&#x43A;&#x440;&#x430;&#x449;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E;&#x434;&#x430;&#x447;&#x438;: &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x432;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x433;&#x430;&#x441;&#x438;&#x442;&#x44C; &#x445;&#x432;&#x43E;&#x441;&#x442;, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x438;&#x439; &#x441;&#x440;&#x435;&#x434;&#x43D;&#x438;&#x439; rate.</p>
<p><strong>&#x41F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x442;&#x44C; requested limit &#x437;&#x430; enforced.</strong> Platform policy, module scope &#x438;&#x43B;&#x438; out-of-band control &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43D;&#x44B; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; ceiling &#x43D;&#x438;&#x436;&#x435; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x448;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E;. &#x427;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; effective/enforced state &#x438; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x441; desired value. &#x415;&#x441;&#x43B;&#x438; &#x43E;&#x43D;&#x438; &#x440;&#x430;&#x441;&#x445;&#x43E;&#x434;&#x44F;&#x442;&#x441;&#x44F;, owner &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x440;&#x430;&#x437;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x441; control plane, &#x430; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x43D;&#x44F;&#x435;&#x442; application benchmark &#x43F;&#x43E;&#x434; &#x43D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x43E;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;.</p>
<p><strong>&#x421;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; idle-&#x43F;&#x435;&#x440;&#x438;&#x43E;&#x434;&#x44B; &#x44D;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x438;&#x435;&#x439;.</strong> &#x41D;&#x438;&#x437;&#x43A;&#x430;&#x44F; &#x441;&#x440;&#x435;&#x434;&#x43D;&#x44F;&#x44F; &#x43C;&#x43E;&#x449;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43F;&#x430;&#x443;&#x437; &#x43D;&#x435; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43D;&#x430;&#x441;&#x44B;&#x449;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; inference. &#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44F;&#x439;&#x442;&#x435; idle, warmup &#x438; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E;. &#x42D;&#x43D;&#x435;&#x440;&#x433;&#x438;&#x44F; &#x43D;&#x430; &#x442;&#x43E;&#x43A;&#x435;&#x43D; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; delta counters &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x434;&#x43B;&#x44F; &#x43E;&#x43A;&#x43D;&#x430;, &#x433;&#x434;&#x435; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x43B;&#x438;&#x441;&#x44C;; &#x438;&#x43D;&#x430;&#x447;&#x435; &#x43F;&#x430;&#x443;&#x437;&#x44B; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; &#x434;&#x43B;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x435;&#x439; &#x438;&#x441;&#x43A;&#x430;&#x437;&#x44F;&#x442; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;.</p>
<p><strong>&#x420;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x442;&#x44C; cap &#x43D;&#x430; &#x43D;&#x435;&#x43E;&#x434;&#x43D;&#x43E;&#x440;&#x43E;&#x434;&#x43D;&#x44B;&#x439; fleet.</strong> &#x41E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x43E; &#x432;&#x430;&#x442;&#x442; &#x43D;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; operating point &#x434;&#x43B;&#x44F; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; GPU, BIOS, &#x43E;&#x445;&#x43B;&#x430;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x444;&#x43E;&#x440;&#x43C;-&#x444;&#x430;&#x43A;&#x442;&#x43E;&#x440;&#x43E;&#x432;. &#x413;&#x440;&#x443;&#x43F;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; rollout &#x43F;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x440;&#x43E;&#x434;&#x43D;&#x43E;&#x439; hardware identity &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; min/default/max &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x435;. Policy &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x432;&#x44B;&#x440;&#x430;&#x436;&#x430;&#x442;&#x44C; &#x43E;&#x434;&#x43E;&#x431;&#x440;&#x435;&#x43D;&#x43D;&#x43E;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x43B;&#x44F; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x441;&#x430;, &#x430; &#x43D;&#x435; &#x433;&#x43B;&#x43E;&#x431;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x43A;&#x43E;&#x43D;&#x441;&#x442;&#x430;&#x43D;&#x442;&#x443;.</p>
<p><strong>&#x417;&#x430;&#x431;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x43E; multi-GPU &#x441;&#x438;&#x43D;&#x445;&#x440;&#x43E;&#x43D;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438;.</strong> &#x412; tensor parallel replica &#x441;&#x430;&#x43C;&#x44B;&#x439; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; rank &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x443;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435;. Cap &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x43A;&#x430;&#x440;&#x442;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x44F;&#x432;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43A;&#x430;&#x43A; &#x440;&#x43E;&#x441;&#x442; collective wait &#x438; TPOT &#x432;&#x441;&#x435;&#x439; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B;. &#x421;&#x447;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; &#x442;&#x430;&#x43A;&#x443;&#x44E; replica &#x43D;&#x435;&#x434;&#x435;&#x43B;&#x438;&#x43C;&#x44B;&#x43C; canary-&#x43A;&#x43E;&#x43D;&#x442;&#x443;&#x440;&#x43E;&#x43C;, &#x441;&#x43D;&#x438;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438; &#x43F;&#x43E; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C;&#x443; UUID &#x438; &#x43E;&#x442;&#x43A;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x443; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;.</p>
<p><strong>&#x41E;&#x431;&#x44A;&#x44F;&#x432;&#x43B;&#x44F;&#x442;&#x44C; &#x443;&#x441;&#x43F;&#x435;&#x445; &#x431;&#x435;&#x437; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;&#x430;.</strong> &#x422;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x430; &#x432; &#x437;&#x430;&#x43B;&#x435;, &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x44F;&#x44F; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430; &#x438; cache state &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x441;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x435;&#x43C;. &#x412;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x43A; baseline &#x43D;&#x430; &#x442;&#x43E;&#x43C; &#x436;&#x435; canary &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440; replay &#x43D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442; &#x43B;&#x430;&#x431;&#x43E;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x43D;&#x43E; &#x438;&#x434;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;, &#x43D;&#x43E; &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x43E; &#x43E;&#x442;&#x441;&#x435;&#x438;&#x432;&#x430;&#x435;&#x442; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x43E;&#x435; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x435;. &#x415;&#x441;&#x43B;&#x438; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43D;&#x435; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x432; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x43C; &#x43D;&#x430;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x438;, &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#xAB;&#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#xBB; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x443;&#x434;&#x43E;&#x431;&#x43D;&#x43E;&#x439; &#x438;&#x441;&#x442;&#x43E;&#x440;&#x438;&#x438;.</p>
<p>&#x41D;&#x430;&#x43A;&#x43E;&#x43D;&#x435;&#x446;, &#x43D;&#x435; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x439;&#x442;&#x435; runbook &#x432; &#x433;&#x43E;&#x43D;&#x43A;&#x443; &#x437;&#x430; &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; cap. &#x426;&#x435;&#x43B;&#x44C; &#x437;&#x430;&#x434;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x441;&#x442;&#x43E;&#x439;&#x43A;&#x438; &#x438;&#x43B;&#x438; &#x44D;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x439; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x43E;&#x439;, &#x430; guardrail &#x2014; SLO. &#x41A;&#x430;&#x43A; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x448;&#x430;&#x433; &#x43D;&#x435; &#x434;&#x430;&#x451;&#x442; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;&#x433;&#x43E; &#x432;&#x44B;&#x438;&#x433;&#x440;&#x44B;&#x448;&#x430; &#x438;&#x43B;&#x438; &#x443;&#x445;&#x443;&#x434;&#x448;&#x430;&#x435;&#x442; application metric, &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D;. Production-&#x438;&#x43D;&#x436;&#x435;&#x43D;&#x435;&#x440;&#x438;&#x44F; &#x432;&#x44B;&#x438;&#x433;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43E;&#x442; &#x44F;&#x441;&#x43D;&#x43E;&#x439; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438;, &#x430; &#x43D;&#x435; &#x43E;&#x442; &#x441;&#x430;&#x43C;&#x43E;&#x439; &#x43D;&#x438;&#x437;&#x43A;&#x43E;&#x439; &#x446;&#x438;&#x444;&#x440;&#x44B; &#x432; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x435;.</p><h2 id="persist-and-automate">&#x41F;&#x435;&#x440;&#x441;&#x438;&#x441;&#x442;&#x435;&#x43D;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x438; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x431;&#x435;&#x437; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x43E;&#x433;&#x43E; drift</h2>
<p>&#x41A;&#x43B;&#x430;&#x441;&#x441;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; NVML power limit &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; reboot &#x438;&#x43B;&#x438; driver unload. Persistence mode &#x441;&#x43D;&#x438;&#x436;&#x430;&#x435;&#x442; &#x432;&#x435;&#x440;&#x43E;&#x44F;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x44C; unload &#x43C;&#x435;&#x436;&#x434;&#x443; &#x437;&#x430;&#x434;&#x430;&#x447;&#x430;&#x43C;&#x438;, &#x43D;&#x43E; &#x43D;&#x435; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; write &#x432; &#x432;&#x435;&#x447;&#x43D;&#x443;&#x44E; platform policy. &#x41F;&#x43E;&#x434;&#x440;&#x43E;&#x431;&#x43D;&#x44B;&#x439; runbook &#x43F;&#x43E; &#x436;&#x438;&#x437;&#x43D;&#x435;&#x43D;&#x43D;&#x43E;&#x43C;&#x443; &#x446;&#x438;&#x43A;&#x43B;&#x443; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430; &#x435;&#x441;&#x442;&#x44C; &#x432; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x435; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/nvidia-persistenced-llm-production-runbook/">nvidia-persistenced &#x434;&#x43B;&#x44F; LLM</a>.</p>
<p>&#x415;&#x441;&#x43B;&#x438; cap &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43F;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x43D;&#x43E;, &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x431;&#x44B;&#x442;&#x44C; fail-closed. &#x41F;&#x435;&#x440;&#x435;&#x434; write &#x43E;&#x43D;&#x430; &#x441;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; UUID, &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; GPU, &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x44B;&#x439; &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D; &#x438; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x443;&#x44E; policy. &#x415;&#x441;&#x43B;&#x438; inventory &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x441;&#x44F;, &#x43D;&#x43E;&#x432;&#x44B;&#x439; GPU &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x441;&#x44F; &#x438;&#x43B;&#x438; UUID &#x43F;&#x440;&#x43E;&#x43F;&#x430;&#x43B;, unit &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x443; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x43E;&#x439; &#x438; &#x43D;&#x435; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x43A; &#xAB;&#x43F;&#x435;&#x440;&#x432;&#x43E;&#x439; &#x43A;&#x430;&#x440;&#x442;&#x435;&#xBB;.</p>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; write automation &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; effective state &#x438; &#x44D;&#x43A;&#x441;&#x43F;&#x43E;&#x440;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x432; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;. &#x41F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x430;&#x43B;&#x435;&#x440;&#x442;&#x44B;: desired != enforced, cap &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x43F;&#x43E;&#x441;&#x43B;&#x435; restart, power brake/thermal event &#x430;&#x43A;&#x442;&#x438;&#x432;&#x435;&#x43D;, application SLO &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x438;&#x440;&#x443;&#x435;&#x442; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x43C;&#x435;&#x43D;&#x44B; policy. &#x41F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x439; &#x430;&#x43B;&#x435;&#x440;&#x442; &#x441;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x443;&#x44E; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x443; &#x441; &#x442;&#x435;&#x43C;, &#x437;&#x430; &#x447;&#x442;&#x43E; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;.</p>
<p>DCGM &#x443;&#x43C;&#x435;&#x435;&#x442; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E; &#x433;&#x440;&#x443;&#x43F;&#x43F; &#x447;&#x435;&#x440;&#x435;&#x437; lifecycle, &#x43D;&#x43E; &#x44D;&#x442;&#x43E; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; policy surface. &#x41D;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; DCGM enforcement &#x438; systemd-&#x441;&#x43A;&#x440;&#x438;&#x43F;&#x442; &#x431;&#x435;&#x437; &#x435;&#x434;&#x438;&#x43D;&#x43E;&#x433;&#x43E; owner: &#x434;&#x432;&#x430; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x43B;&#x435;&#x440;&#x430; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x441;&#x43F;&#x43E;&#x440;&#x438;&#x442;&#x44C; &#x437;&#x430; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435;. &#x412;&#x44B;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; &#x438;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A; desired state, &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x438; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; audit trail.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">verify-power-policy.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>#!/usr/bin/env bash
set -euo pipefail
EXPECTED_UUID=&quot;${EXPECTED_UUID:?}&quot;
EXPECTED_NAME=&quot;${EXPECTED_NAME:?}&quot;
DESIRED_WATTS=&quot;${DESIRED_WATTS:?}&quot;

read -r UUID NAME MIN MAX &lt; <( nvidia-smi -i "$expected_uuid" --query-gpu="uuid,name,power.min_limit,power.max_limit" --format="csv,noheader,nounits" | tr -d ',' awk '{$1="$1;print}&apos;" ) [[ "$uuid"="=" ]] "$name"="=" "$expected_name" -v x="$DESIRED_WATTS" lo="$MIN" hi="$MAX" 'begin{exit !(x>=lo &amp;&amp; x<=hi)}' nvidia-smi -i "$expected_uuid" --power-limit="$DESIRED_WATTS" -q -d power< code></=hi)}'></(></code></pre>
<div class="ks-canonical-code-block__caption">Fail-closed &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; identity &#x43F;&#x435;&#x440;&#x435;&#x434; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435;&#x43C; desired limit</div>
</div>
<figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-rollout-dd9c1aa8.webp" class="kg-image" alt="Power cap &#x434;&#x43B;&#x44F; GPU &#x432; LLM inference: production-runbook &#x431;&#x435;&#x437; &#x433;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x432;&#x430;&#x442;&#x442;&#x430;&#x43C;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpu-power-cap-rollout-dd9c1aa8.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpu-power-cap-rollout-dd9c1aa8.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-rollout-dd9c1aa8.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="rollout-rollback">Rollout &#x432;&#x43E;&#x43B;&#x43D;&#x430;&#x43C;&#x438; &#x438; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x439; rollback</h2>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;&#x433;&#x43E; canary &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43C;&#x430;&#x43B;&#x44B;&#x43C;&#x438; &#x432;&#x43E;&#x43B;&#x43D;&#x430;&#x43C;&#x438;: &#x43E;&#x434;&#x43D;&#x430; replica, &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x430;&#x44F; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x430;, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x430;&#x44F; &#x434;&#x43E;&#x43B;&#x44F; fleet. &#x41C;&#x435;&#x436;&#x434;&#x443; &#x432;&#x43E;&#x43B;&#x43D;&#x430;&#x43C;&#x438; &#x432;&#x44B;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E; &#x434;&#x43B;&#x44F; &#x43E;&#x431;&#x43E;&#x438;&#x445; workload profiles. &#x41D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x435; &#x434;&#x430;&#x43B;&#x44C;&#x448;&#x435;, &#x435;&#x441;&#x43B;&#x438; canary &#x43F;&#x43E;&#x43F;&#x430;&#x43B; &#x432; &#x43F;&#x435;&#x440;&#x438;&#x43E;&#x434; &#x43D;&#x438;&#x437;&#x43A;&#x43E;&#x439; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x438;&#x43B;&#x438; &#x43D;&#x435; &#x43D;&#x430;&#x431;&#x440;&#x430;&#x43B; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E;&#x433;&#x43E; &#x447;&#x438;&#x441;&#x43B;&#x430; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432; &#x434;&#x43B;&#x44F; &#x432;&#x430;&#x448;&#x438;&#x445; SLO.</p>
<p>&#x414;&#x43B;&#x44F; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x439; &#x432;&#x43E;&#x43B;&#x43D;&#x44B; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; UUID, &#x441;&#x442;&#x430;&#x440;&#x43E;&#x435; &#x438; &#x43D;&#x43E;&#x432;&#x43E;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435;, owner, start/end timestamp, application dashboard &#x438; stop conditions. &#x41D;&#x430; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x445; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;&#x445; &#x442;&#x430;&#x43A;&#x43E;&#x435; ownership &#x43F;&#x440;&#x43E;&#x449;&#x435; &#x43E;&#x431;&#x435;&#x441;&#x43F;&#x435;&#x447;&#x438;&#x442;&#x44C;: topology &#x438; power policy &#x43D;&#x435; &#x434;&#x435;&#x43B;&#x44F;&#x442;&#x441;&#x44F; &#x441; &#x43D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x43C; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43E;&#x43C;. &#x41F;&#x440;&#x438; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B; &#x441;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; VRAM, &#x43D;&#x43E; &#x438; power/cooling envelope; &#x43E;&#x431;&#x437;&#x43E;&#x440; <a href="https://kingservers.com/blog/gpu-servera-dlya-mashinnogo-obucheniya/">&#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x439; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43E;&#x432; &#x434;&#x43B;&#x44F; ML</a> &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x44D;&#x442;&#x443; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x443; &#x432; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x448;&#x438;&#x440;&#x43E;&#x43A;&#x438;&#x439; capacity plan.</p>
<p>Rollback &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x435;&#x43D; rollout. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x435;&#x43D;&#x438;&#x435; &#x438; &#x441;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435;/&#x437;&#x430;&#x43C;&#x43E;&#x440;&#x43E;&#x437;&#x44C;&#x442;&#x435; &#x43D;&#x43E;&#x432;&#x443;&#x44E; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x443;, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x44B;&#x439; baseline limit &#x43F;&#x43E; &#x442;&#x435;&#x43C; &#x436;&#x435; UUID. &#x41F;&#x440;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; enforced state, &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; GPU gate &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; application replay. &#x412;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x447;&#x438;&#x441;&#x43B;&#x430; &#x432; nvidia-smi &#x431;&#x435;&#x437; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430; SLO &#x2014; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D;&#x43D;&#x44B;&#x439; rollback.</p>
<p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; automation: &#x43E;&#x43D;&#x430; &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x447;&#x435;&#x440;&#x435;&#x437; &#x43C;&#x438;&#x43D;&#x443;&#x442;&#x443; &#x441;&#x43D;&#x43E;&#x432;&#x430; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x43D;&#x435;&#x443;&#x434;&#x430;&#x447;&#x43D;&#x44B;&#x439; desired state. &#x415;&#x441;&#x43B;&#x438; policy &#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x441;&#x44F; &#x432; systemd, operator &#x438;&#x43B;&#x438; CM-&#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x435;, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x442;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x435; &#x438;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A; desired state, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E;. &#x418;&#x43D;&#x430;&#x447;&#x435; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x435; &#xAB;&#x434;&#x440;&#x435;&#x431;&#x435;&#x437;&#x433;&#xBB; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438; &#x438; &#x441;&#x43F;&#x43E;&#x440; &#x434;&#x432;&#x443;&#x445; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x435;&#x432;.</p>
<p>&#x41D;&#x430;&#x43A;&#x43E;&#x43D;&#x435;&#x446;, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; incident evidence. &#x414;&#x430;&#x436;&#x435; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x446;&#x435;&#x43D;&#x435;&#x43D;: &#x43E;&#x43D; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x434;&#x43B;&#x44F; &#x43A;&#x430;&#x43A;&#x43E;&#x433;&#x43E; workload shape &#x438; SLO &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x44B;&#x439; cap &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x438;&#x442;. &#x42D;&#x442;&#x43E; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x447;&#x438;&#x441;&#x43B;&#x430;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x435; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x436;&#x438;&#x43B;&#x43E; &#x43E;&#x434;&#x438;&#x43D; &#x441;&#x43F;&#x43E;&#x43A;&#x43E;&#x439;&#x43D;&#x44B;&#x439; &#x432;&#x435;&#x447;&#x435;&#x440;.</p><div class="ks-widget" id="ks-chk-roll2a7"><h3>Rollback &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D;?</h3>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x422;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x441;&#x43D;&#x44F;&#x442; &#x441; canary &#x438;&#x43B;&#x438; &#x437;&#x430;&#x43C;&#x43E;&#x440;&#x43E;&#x436;&#x435;&#x43D;&#x430; &#x43D;&#x43E;&#x432;&#x430;&#x44F; &#x43F;&#x43E;&#x434;&#x430;&#x447;&#x430;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> &#x412;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x44B;&#x439; default/baseline limit &#x43F;&#x43E; UUID</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> Enforced limit &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x44B;&#x43C; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x435;&#x43C;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> &#x41F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x451;&#x43D; &#x442;&#x43E;&#x442; &#x436;&#x435; replay-&#x43D;&#x430;&#x431;&#x43E;&#x440;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> Application SLO &#x432;&#x435;&#x440;&#x43D;&#x443;&#x43B;&#x441;&#x44F; &#x43A; baseline</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> &#x410;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x43D;&#x435; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x438;&#x442; cap &#x441;&#x43D;&#x43E;&#x432;&#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435; restart</label>
<div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-chk-roll2a7');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-rollback-flow-37e6dc47.webp" class="kg-image" alt="Power cap &#x434;&#x43B;&#x44F; GPU &#x432; LLM inference: production-runbook &#x431;&#x435;&#x437; &#x433;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x432;&#x430;&#x442;&#x442;&#x430;&#x43C;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/09/gpu-power-cap-rollback-flow-37e6dc47.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/09/gpu-power-cap-rollback-flow-37e6dc47.webp 1000w, https://kingservers.com/blog/content/images/2026/09/gpu-power-cap-rollback-flow-37e6dc47.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="conclusion">&#x418;&#x442;&#x43E;&#x433;: power cap &#x2014; &#x44D;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x430;&#x44F; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x430;, &#x430; &#x43D;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x430;&#x44F; &#x43E;&#x43F;&#x442;&#x438;&#x43C;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F;</h2>
<p>&#x411;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; power cap &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x441; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; <code>nvidia-smi -pl</code>, &#x430; &#x441; evidence: &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; GPU identity, &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D;&#x430; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x439;, &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x433;&#x43E; replay &#x438; application SLO. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x438;&#x434;&#x443;&#x442; &#x43E;&#x434;&#x438;&#x43D; canary, &#x442;&#x440;&#x438; gate, &#x440;&#x430;&#x441;&#x447;&#x451;&#x442; &#x44D;&#x43D;&#x435;&#x440;&#x433;&#x438;&#x438; &#x43D;&#x430; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x442;&#x43E;&#x43A;&#x435;&#x43D; &#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442; &#x441; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x43E;&#x43C; baseline. &#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x433;&#x43E;&#x432;&#x43E;&#x440;&#x438;&#x442;&#x44C; &#x43E; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x435;&#x439; &#x432;&#x43E;&#x43B;&#x43D;&#x435;.</p>
<p>&#x413;&#x43B;&#x430;&#x432;&#x43D;&#x430;&#x44F; &#x43C;&#x44B;&#x441;&#x43B;&#x44C; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x43D;&#x430;&#x44F;: &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435; &#x432;&#x430;&#x442;&#x442; &#x43D;&#x435; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435; &#x437;&#x430;&#x442;&#x440;&#x430;&#x442; &#x438;&#x43B;&#x438; &#x43B;&#x443;&#x447;&#x448;&#x438;&#x439; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;. &#x420;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x447;&#x438;&#x442;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x443;&#x434;&#x430;&#x447;&#x43D;&#x44B;&#x43C; &#x43B;&#x438;&#x448;&#x44C; &#x442;&#x43E;&#x433;&#x434;&#x430;, &#x43A;&#x43E;&#x433;&#x434;&#x430; power envelope &#x441;&#x442;&#x430;&#x43B; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x435;&#x435;, joules/token &#x443;&#x43B;&#x443;&#x447;&#x448;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x438;&#x43B;&#x438; &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x438;&#x441;&#x44C; &#x43F;&#x440;&#x438;&#x435;&#x43C;&#x43B;&#x435;&#x43C;&#x44B;&#x43C;&#x438;, &#x430; TTFT, TPOT, &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x438; error rate &#x43D;&#x435; &#x432;&#x44B;&#x448;&#x43B;&#x438; &#x437;&#x430; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B;. &#x415;&#x441;&#x43B;&#x438; &#x43D;&#x435; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x43B;&#x43E; &#x445;&#x43E;&#x442;&#x44F; &#x431;&#x44B; &#x43E;&#x434;&#x43D;&#x43E; &#x438;&#x437; &#x44D;&#x442;&#x438;&#x445; &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x438;&#x439;, &#x447;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; rollback &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x435;&#x435; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x43E;&#x433;&#x43E; &#x433;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;.</p>
<p>&#x412;&#x43E;&#x437;&#x44C;&#x43C;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; &#x438;&#x437;&#x43E;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; GPU-&#x43A;&#x43E;&#x43D;&#x442;&#x443;&#x440;, &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x44C;&#x442;&#x435; evidence bundle &#x438; &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x438;&#x442;&#x435; &#x44D;&#x442;&#x43E;&#x442; runbook &#x43D;&#x430; &#x440;&#x435;&#x43F;&#x440;&#x435;&#x437;&#x435;&#x43D;&#x442;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x439; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x435;. &#x414;&#x43B;&#x44F; &#x43D;&#x43E;&#x432;&#x43E;&#x439; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x44B; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x443;&#x439;&#x442;&#x435; power/cooling envelope &#x438; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x441; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x435;&#x43C; &#x43F;&#x43B;&#x43E;&#x449;&#x430;&#x434;&#x43A;&#x438;: &#x442;&#x430;&#x43A; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x435;&#x442;&#x441;&#x44F; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x43C; &#x438;&#x43D;&#x436;&#x435;&#x43D;&#x435;&#x440;&#x43D;&#x44B;&#x43C; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435;&#x43C;, &#x430; &#x43D;&#x435; &#x440;&#x443;&#x447;&#x43D;&#x43E;&#x439; &#x43C;&#x430;&#x433;&#x438;&#x435;&#x439; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x438;&#x43A;&#x430;.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[nvidia-persistenced для LLM: production-runbook без скрытых GPU init]]></title><description><![CDATA[Production-runbook по nvidia-persistenced для LLM: baseline, точечное включение по GPU UUID, infrastructure и application gates, canary rollout и rollback.]]></description><link>https://kingservers.com/blog/nvidia-persistenced-llm-production-runbook/</link><guid isPermaLink="false">6a95f84daff2afac25354c16</guid><category><![CDATA[GPU]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Mon, 31 Aug 2026 22:09:40 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-hero-e804c40c.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#zachem-persistence">&#x417;&#x430;&#x447;&#x435;&#x43C; LLM-&#x443;&#x437;&#x43B;&#x443; persistence daemon</a></li>
<li><a href="#baseline">Baseline &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; restart</a></li>
<li><a href="#daemon-i-mode">Daemon &#x438; legacy mode: &#x43D;&#x435; &#x43F;&#x443;&#x442;&#x430;&#x439;&#x442;&#x435; &#x434;&#x432;&#x430; &#x441;&#x43B;&#x43E;&#x44F;</a></li>
<li><a href="#infrastructure-gate">Infrastructure gate: &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;, &#x430; &#x43D;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x443;</a></li>
<li><a href="#application-gate">Application gate: &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; LLM, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; GPU</a></li>
<li><a href="#systemd-hardening">Systemd hardening &#x431;&#x435;&#x437; &#x43F;&#x43E;&#x43B;&#x43E;&#x43C;&#x43A;&#x438; vendor unit</a></li>
<li><a href="#canary-rollout">Canary rollout &#x438; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x430;&#x44F; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x446;&#x438;&#x44F; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#x430;</a></li>
<li><a href="#failure-modes">&#x422;&#x438;&#x43F;&#x43E;&#x432;&#x44B;&#x435; &#x441;&#x431;&#x43E;&#x438; &#x438; stop conditions</a></li>
<li><a href="#rollback">Rollback &#x442;&#x435;&#x43C;&#x438; &#x436;&#x435; gates &#x432; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x43C; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43A;&#x435;</a></li>
<li><a href="#conclusion">&#x427;&#x442;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x432; production runbook</a></li>
</ul></div>

</div>&#x41F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x44F; &#x432;&#x43D;&#x435;&#x437;&#x430;&#x43F;&#x43D;&#x43E; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x435;&#x435;, &#x445;&#x43E;&#x442;&#x44F; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x438; &#x436;&#x435;&#x43B;&#x435;&#x437;&#x43E; &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x43B;&#x438;&#x441;&#x44C;. &#x41D;&#x430; headless Linux-&#x443;&#x437;&#x43B;&#x435; GPU &#x43C;&#x43E;&#x433; &#x43E;&#x441;&#x442;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x431;&#x435;&#x437; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x43E;&#x432;, &#x441;&#x431;&#x440;&#x43E;&#x441;&#x438;&#x442;&#x44C; &#x447;&#x430;&#x441;&#x442;&#x44C; driver state &#x438; &#x437;&#x430;&#x43D;&#x43E;&#x432;&#x43E; &#x43F;&#x440;&#x43E;&#x439;&#x442;&#x438; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E; &#x43F;&#x435;&#x440;&#x435;&#x434; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x43C; CUDA-&#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x435;&#x43C;. &#x420;&#x430;&#x437;&#x431;&#x435;&#x440;&#x451;&#x43C;, &#x43A;&#x43E;&#x433;&#x434;&#x430; nvidia-persistenced &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x443;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; &#x44D;&#x442;&#x443; &#x432;&#x430;&#x440;&#x438;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C;, &#x43A;&#x430;&#x43A; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x43D;&#x430; canary &#x438; &#x447;&#x435;&#x43C; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x431;&#x435;&#x437; &#x432;&#x44B;&#x434;&#x443;&#x43C;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x44F;.<div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <img src="https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-hero-e804c40c.webp" alt="nvidia-persistenced &#x434;&#x43B;&#x44F; LLM: production-runbook &#x431;&#x435;&#x437; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x445; GPU init"><p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="zachem-persistence">&#x417;&#x430;&#x447;&#x435;&#x43C; LLM-&#x443;&#x437;&#x43B;&#x443; persistence daemon</h2>

<p>&#x41D;&#x430; headless GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x434;&#x432;&#x443;&#x43C;&#x44F; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F;&#x43C;&#x438; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43D;&#x435; &#x43E;&#x441;&#x442;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x430;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E; &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x43C;. &#x412; Linux &#x44D;&#x442;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430;: &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x439; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; device file, &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x434;&#x435;&#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; GPU, &#x430; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x441;&#x43D;&#x43E;&#x432;&#x430; &#x43E;&#x43F;&#x43B;&#x430;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E; &#x438; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x435;&#x442; &#x447;&#x430;&#x441;&#x442;&#x44C; &#x43D;&#x435;&#x43F;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x44F;. &#x414;&#x43B;&#x44F; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x433;&#x43E; LLM-&#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430; &#x442;&#x430;&#x43A;&#x430;&#x44F; &#x43F;&#x430;&#x443;&#x437;&#x430; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x43D;&#x43E;: &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x435;&#x449;&#x451; &#x43D;&#x435; &#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x44C;&#x441;&#x44F;, &#x430; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x43A;&#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x44F; &#x443;&#x436;&#x435; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x435;&#x435; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x433;&#x43E;.</p>
<p><code>nvidia-persistenced</code> &#x440;&#x435;&#x448;&#x430;&#x435;&#x442; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x44D;&#x442;&#x443; &#x443;&#x437;&#x43A;&#x443;&#x44E; &#x437;&#x430;&#x434;&#x430;&#x447;&#x443;. &#x414;&#x435;&#x43C;&#x43E;&#x43D; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43F;&#x430;&#x441;&#x441;&#x438;&#x432;&#x43D;&#x44B;&#x43C; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x43E;&#x43C; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;, &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x435; &#x444;&#x430;&#x439;&#x43B;&#x44B; &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x43C;&#x438; &#x438; &#x43D;&#x435; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x442; &#x432;&#x44B;&#x447;&#x438;&#x441;&#x43B;&#x435;&#x43D;&#x438;&#x44F;. NVIDIA &#x43D;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x44D;&#x442;&#x43E;&#x442; &#x43F;&#x43E;&#x434;&#x445;&#x43E;&#x434; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x43D;&#x430;&#x434;&#x451;&#x436;&#x43D;&#x43E;&#x439; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x43E;&#x439; legacy persistence mode &#x438; &#x43D;&#x430;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x431;&#x443;&#x434;&#x443;&#x449;&#x443;&#x44E; &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x443; &#x432; &#x441;&#x442;&#x43E;&#x440;&#x43E;&#x43D;&#x443; daemon; &#x43F;&#x43E;&#x434;&#x440;&#x43E;&#x431;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x435;&#x441;&#x442;&#x44C; &#x432; &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; <a href="https://docs.nvidia.com/deploy/driver-persistence/persistence-daemon.html?ref=kingservers.com">&#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x435; &#x43F;&#x43E; Persistence Daemon</a>.</p>
<p>&#x412;&#x430;&#x436;&#x43D;&#x43E; &#x43D;&#x435; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x442;&#x44C; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43D;&#x438;&#x435;. &#x414;&#x435;&#x43C;&#x43E;&#x43D; &#x43D;&#x435; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x44F;&#x435;&#x442; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x44B; &#x441;&#x430;&#x43C; &#x43F;&#x43E; &#x441;&#x435;&#x431;&#x435;, &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x43D;&#x435;&#x445;&#x432;&#x430;&#x442;&#x43A;&#x443; VRAM, &#x43D;&#x435; &#x43B;&#x435;&#x447;&#x438;&#x442; Xid &#x438; &#x43D;&#x435; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; reset &#x438;&#x43B;&#x438; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;. &#x41E;&#x43D; &#x443;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; &#x43E;&#x434;&#x438;&#x43D; &#x438;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A; &#x432;&#x430;&#x440;&#x438;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43C;&#x435;&#x436;&#x434;&#x443; CUDA-&#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F;&#x43C;&#x438;. &#x415;&#x441;&#x43B;&#x438; &#x443; &#x432;&#x430;&#x441; &#x443;&#x436;&#x435; &#x43A;&#x440;&#x443;&#x433;&#x43B;&#x43E;&#x441;&#x443;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442; vLLM, Triton &#x438;&#x43B;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;, &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x43D;&#x435;&#x437;&#x430;&#x43C;&#x435;&#x442;&#x435;&#x43D;: &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x438; &#x442;&#x430;&#x43A; &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; GPU &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x43C;.</p>
<p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;: &#x435;&#x441;&#x442;&#x44C; &#x43B;&#x438; &#x443; &#x432;&#x430;&#x441; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x432;&#x430;&#x43B;&#x44B; &#x431;&#x435;&#x437; GPU-&#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x43E;&#x432;? &#x415;&#x441;&#x43B;&#x438; &#x43D;&#x435;&#x442;, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x438;&#x449;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443; latency &#x432; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x438;, thermal throttling &#x438;&#x43B;&#x438; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x435; &#x432;&#x435;&#x441;&#x43E;&#x432;. &#x414;&#x43B;&#x44F; &#x441;&#x43C;&#x435;&#x436;&#x43D;&#x43E;&#x439; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43F;&#x440;&#x438;&#x433;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/gpu-throttling-llm-inference-dcgm-prometheus/">GPU throttling &#x447;&#x435;&#x440;&#x435;&#x437; DCGM &#x438; Prometheus</a>.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-inline-01-7a199502.webp" class="kg-image" alt="nvidia-persistenced &#x434;&#x43B;&#x44F; LLM: production-runbook &#x431;&#x435;&#x437; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x445; GPU init" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-persistenced-llm-runbook-inline-01-7a199502.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-persistenced-llm-runbook-inline-01-7a199502.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-inline-01-7a199502.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="baseline">Baseline &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; restart</h2>

<p>&#x41B;&#x44E;&#x431;&#x43E;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; hardware control plane &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x441; evidence bundle. &#x417;&#x434;&#x435;&#x441;&#x44C; owner &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x2014; &#x434;&#x435;&#x436;&#x443;&#x440;&#x43D;&#x44B;&#x439; SRE &#x438;&#x43B;&#x438; &#x430;&#x434;&#x43C;&#x438;&#x43D;&#x438;&#x441;&#x442;&#x440;&#x430;&#x442;&#x43E;&#x440; GPU-&#x443;&#x437;&#x43B;&#x430;, &#x430; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E; &#x2014; &#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x439; inventory &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432; &#x438; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x439; &#x440;&#x435;&#x436;&#x438;&#x43C; persistence &#x434;&#x43B;&#x44F; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; GPU. &#x41D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; <code>systemctl restart</code>, &#x43F;&#x43E;&#x43A;&#x430; &#x43D;&#x435; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43B;&#x438; driver version, UUID, PCI bus ID, &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; unit &#x438; &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x43E;&#x432;.</p>
<p>UUID &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443;, &#x447;&#x442;&#x43E; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441; <code>GPU 0</code> &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x438;&#x43B;&#x438; &#x438;&#x43D;&#x43E;&#x439; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438; probe. &#x41F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x435; &#x43A; UUID &#x438;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E;&#x43C;&#x443; PCI bus ID, &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x43D;&#x430; multi-GPU &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x441; change ticket; &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442;&#x43E;&#x432; &#x432; &#x43D;&#x451;&#x43C; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x43D;&#x435;&#x442;, &#x43D;&#x43E; hostname &#x438; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x435;&#x43D;&#x43D;&#x438;&#x435; &#x43F;&#x443;&#x442;&#x438; &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x43E; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x430;&#x43C; &#x432;&#x430;&#x448;&#x435;&#x439; &#x43E;&#x440;&#x433;&#x430;&#x43D;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">gpu-persistence-baseline.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>date -Is
cat /proc/driver/nvidia/version
systemctl is-enabled nvidia-persistenced.service || true
systemctl status nvidia-persistenced.service --no-pager
nvidia-smi --query-gpu=index,uuid,pci.bus_id,persistence_mode --format=csv
nvidia-smi --query-compute-apps=gpu_uuid,pid,process_name --format=csv,noheader
journalctl -u nvidia-persistenced.service -b --no-pager | tail -n 100</code></pre>
<div class="ks-canonical-code-block__caption">Read-only evidence bundle &#x43F;&#x435;&#x440;&#x435;&#x434; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435;&#x43C;</div>
</div>
<p>Stop condition &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x430;: &#x435;&#x441;&#x43B;&#x438; inventory &#x43D;&#x435; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x441; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x43C;, &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#x43D;&#x435; &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D; &#x438;&#x43B;&#x438; &#x43D;&#x430; &#x446;&#x435;&#x43B;&#x435;&#x432;&#x43E;&#x43C; GPU &#x435;&#x441;&#x442;&#x44C; &#x43D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;, rollout &#x43E;&#x442;&#x43A;&#x43B;&#x430;&#x434;&#x44B;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F;. &#x41D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#xAB;&#x434;&#x43B;&#x44F; &#x447;&#x438;&#x441;&#x442;&#x43E;&#x442;&#x44B;&#xBB; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x442;&#x44C; &#x447;&#x443;&#x436;&#x43E;&#x439; workload. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x432;&#x44B;&#x44F;&#x441;&#x43D;&#x438;&#x442;&#x435; owner &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430; &#x438; &#x43E;&#x43A;&#x43D;&#x43E; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x44F;.</p>
<style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}
.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}
.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}
.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}
.ks-widget .panel.on{display:block}
.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}
.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}
.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style>
<div class="ks-widget" id="ks-chk-b7m2q9x"><h3>&#x413;&#x43E;&#x442;&#x43E;&#x432; &#x43B;&#x438; baseline &#x43A; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44E;?</h3>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x44B; driver version &#x438; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B; UUID &#x438; PCI bus ID &#x432;&#x441;&#x435;&#x445; GPU</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> &#x418;&#x437;&#x432;&#x435;&#x441;&#x442;&#x435;&#x43D; owner &#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x445; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x43E;&#x432;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x44B; unit &#x438; journal &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x439; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x41E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x44B; stop condition &#x438; rollback</label>
<div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-chk-b7m2q9x');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-inline-02-cd8f0f6e.webp" class="kg-image" alt="nvidia-persistenced &#x434;&#x43B;&#x44F; LLM: production-runbook &#x431;&#x435;&#x437; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x445; GPU init" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-persistenced-llm-runbook-inline-02-cd8f0f6e.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-persistenced-llm-runbook-inline-02-cd8f0f6e.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-inline-02-cd8f0f6e.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="daemon-i-mode">Daemon &#x438; legacy mode: &#x43D;&#x435; &#x43F;&#x443;&#x442;&#x430;&#x439;&#x442;&#x435; &#x434;&#x432;&#x430; &#x441;&#x43B;&#x43E;&#x44F;</h2>

<p>&#x412; &#x442;&#x435;&#x440;&#x43C;&#x438;&#x43D;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x438; NVIDIA &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x436;&#x438;&#x432;&#x443;&#x442; &#x434;&#x432;&#x430; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x430;. Legacy persistence mode &#x2014; &#x441;&#x432;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E; kernel driver, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x435; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; &#x447;&#x435;&#x440;&#x435;&#x437; NVML &#x438;&#x43B;&#x438; <code>nvidia-smi</code>. Persistence Daemon &#x2014; user-space &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x438;&#x43C;&#x438;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; &#x434;&#x43E;&#x43B;&#x433;&#x43E;&#x436;&#x438;&#x432;&#x443;&#x449;&#x435;&#x433;&#x43E; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x430; GPU. &#x415;&#x441;&#x43B;&#x438; daemon &#x437;&#x430;&#x43F;&#x443;&#x449;&#x435;&#x43D;, &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; <code>nvidia-smi</code> &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x435;&#x433;&#x43E; RPC-&#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;; &#x435;&#x441;&#x43B;&#x438; &#x43D;&#x435;&#x442;, &#x443;&#x442;&#x438;&#x43B;&#x438;&#x442;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x442;&#x43A;&#x430;&#x442;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43A; legacy &#x440;&#x435;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438;. &#x414;&#x43B;&#x44F; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x430; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;, &#x43D;&#x43E; failure mode &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x439;.</p>
<p>&#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; <code>nvidia-smi -pm 1</code> &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x441;&#x440;&#x430;&#x437;&#x443;, &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; root &#x438;, &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43D;&#x43E; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; <a href="https://docs.nvidia.com/deploy/nvidia-smi/index.html?ref=kingservers.com">&#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; nvidia-smi</a>, &#x43D;&#x435; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; reboot. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#xAB;&#x43E;&#x434;&#x438;&#x43D; &#x440;&#x430;&#x437; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x43B;&#x438; &#x432; &#x43A;&#x43E;&#x43D;&#x441;&#x43E;&#x43B;&#x438;&#xBB; &#x2014; &#x43D;&#x435; configuration management. &#x41D;&#x430; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x43D;&#x44B;&#x445; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x430;&#x445; NVIDIA systemd preset &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x442;&#x44C; daemon, &#x43D;&#x43E; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x43D;&#x430; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x43C; &#x434;&#x438;&#x441;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438;&#x432;&#x435;.</p>
<p>&#x41D;&#x435; &#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; vendor unit &#x432;&#x441;&#x43B;&#x435;&#x43F;&#x443;&#x44E; &#x438; &#x43D;&#x435; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x44D;&#x43A;&#x437;&#x435;&#x43C;&#x43F;&#x43B;&#x44F;&#x440; &#x432;&#x440;&#x443;&#x447;&#x43D;&#x443;&#x44E; &#x43F;&#x43E;&#x432;&#x435;&#x440;&#x445; systemd. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435;, &#x43A;&#x442;&#x43E; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x435;&#x442; lifecycle: &#x43F;&#x430;&#x43A;&#x435;&#x442;, &#x43E;&#x431;&#x440;&#x430;&#x437; &#x443;&#x437;&#x43B;&#x430;, cloud-init &#x438;&#x43B;&#x438; &#x432;&#x430;&#x448; automation. &#x418;&#x43D;&#x430;&#x447;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x44B;&#x439; override &#x438; &#x43D;&#x43E;&#x432;&#x44B;&#x439; unit.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">enable-persistence.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>GPU_UUID=&quot;GPU-REPLACE-WITH-VERIFIED-UUID&quot;

sudo systemctl restart nvidia-persistenced.service
sudo nvidia-smi -i &quot;$GPU_UUID&quot; -pm 1

systemctl is-active nvidia-persistenced.service
nvidia-smi -i &quot;$GPU_UUID&quot;   --query-gpu=uuid,pci.bus_id,persistence_mode   --format=csv,noheader</code></pre>
<div class="ks-canonical-code-block__caption">&#x422;&#x43E;&#x447;&#x435;&#x447;&#x43D;&#x43E;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; GPU UUID</div>
</div>
<p>&#x41D;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; UUID &#x438;&#x437; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;&#x430;: &#x43F;&#x43E;&#x434;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x438;&#x437; baseline &#x438; &#x435;&#x449;&#x451; &#x440;&#x430;&#x437; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; PCI bus ID. &#x41D;&#x430; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; &#x441; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x438;&#x43C;&#x438; &#x430;&#x440;&#x435;&#x43D;&#x434;&#x430;&#x442;&#x43E;&#x440;&#x430;&#x43C;&#x438; &#x43F;&#x440;&#x430;&#x432;&#x43E; &#x43D;&#x430; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x43E; &#x431;&#x44B;&#x442;&#x44C; &#x43F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x430;&#x43D;&#x43E; &#x43A; change scope, &#x430; &#x43D;&#x435; &#x43A;&#x43E; &#x432;&#x441;&#x435;&#x43C;&#x443; inventory.</p><h2 id="infrastructure-gate">Infrastructure gate: &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;, &#x430; &#x43D;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x443;</h2>

<p>&#x423;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; exit code &#x43E;&#x442; <code>nvidia-smi</code> &#x2014; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430;&#x447;&#x430;&#x43B;&#x43E;. Infrastructure gate &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x435;&#x43D; systemd unit, &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; daemon &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x432; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x43C; security context, UUID &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438;&#x441;&#x44C;, &#x430; persistence mode &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x451;&#x43D; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; &#x446;&#x435;&#x43B;&#x435;&#x432;&#x44B;&#x445; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;&#x445;. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; effective state &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B;, &#x430; &#x43D;&#x435; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x443; &#x438;&#x437; runbook.</p>
<p>&#x414;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B;. &#x415;&#x441;&#x43B;&#x438; rollout &#x440;&#x430;&#x441;&#x441;&#x447;&#x438;&#x442;&#x430;&#x43D; &#x43D;&#x430; &#x43E;&#x434;&#x438;&#x43D; canary GPU, &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x439; GPU &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x44C; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x439; &#x440;&#x435;&#x436;&#x438;&#x43C;. &#x422;&#x430;&#x43A;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x442; &#x43E;&#x442; &#x43E;&#x43F;&#x435;&#x447;&#x430;&#x442;&#x43A;&#x438; &#x431;&#x435;&#x437; <code>-i</code>, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x430;&#x44F; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x432;&#x441;&#x435; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x438;. &#x41D;&#x430; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; single-tenant &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; &#x44D;&#x442;&#x43E; &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;: &#x432;&#x44B; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;&#x435; &#x442;&#x43E;&#x447;&#x43D;&#x43E;&#x441;&#x442;&#x44C; automation.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">infrastructure-gate.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>TARGET_UUID=&quot;GPU-REPLACE-TARGET&quot;
CONTROL_UUID=&quot;GPU-REPLACE-CONTROL&quot;

systemctl is-active --quiet nvidia-persistenced.service
nvidia-smi -i &quot;$TARGET_UUID&quot;   --query-gpu=uuid,persistence_mode --format=csv,noheader
nvidia-smi -i &quot;$CONTROL_UUID&quot;   --query-gpu=uuid,persistence_mode --format=csv,noheader

ps -eo user,pid,cmd | grep &apos;[n]vidia-persistenced&apos;
journalctl -u nvidia-persistenced.service -b --since &apos;-10 min&apos; --no-pager</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430;</div>
</div>
<p>&#x41E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x43B;&#x44F; control &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; &#x43F;&#x43B;&#x430;&#x43D;&#x430;: &#x43E;&#x43D;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D;&#x43E; &#x431;&#x44B;&#x442;&#x44C; Disabled, &#x43D;&#x43E; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D;&#x43E; &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43E;&#x442;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; baseline. &#x415;&#x441;&#x43B;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x43E;&#x441;&#x44C;, &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; rollout &#x438; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;. &#x41F;&#x43E; &#x442;&#x43E;&#x439; &#x436;&#x435; &#x43B;&#x43E;&#x433;&#x438;&#x43A;&#x435; &#x432; <a href="https://kingservers.com/blog/nvidia-fabric-manager-nvswitch-llm-runbook/">runbook &#x43F;&#x43E; NVIDIA Fabric Manager &#x438; NVSwitch</a> hardware inventory &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x442; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;.</p>
<div class="ks-widget" id="ks-tab-k4p8r2v"><h3>&#x427;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; &#x441;&#x43B;&#x43E;&#x439;?</h3>
<div class="tabs"><button type="button" class="tab-btn on" data-t="unit">systemd</button><button type="button" class="tab-btn" data-t="gpu">GPU</button><button type="button" class="tab-btn" data-t="control">&#x41A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;</button></div>
<div class="panel on" data-p="unit">Unit active, &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x437;&#x430;&#x43F;&#x443;&#x449;&#x435;&#x43D; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x43C; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x435;&#x43C;, &#x432; journal &#x43D;&#x435;&#x442; &#x446;&#x438;&#x43A;&#x43B;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x445; restart.</div>
<div class="panel" data-p="gpu">UUID &#x438; PCI identity &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x44E;&#x442; &#x441; baseline, &#x446;&#x435;&#x43B;&#x435;&#x432;&#x43E;&#x439; persistence mode &#x447;&#x438;&#x442;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x438;&#x437; effective state.</div>
<div class="panel" data-p="control">&#x421;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x439; GPU &#x438;&#x43B;&#x438; &#x443;&#x437;&#x435;&#x43B; &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x441;&#x44F;. &#x42D;&#x442;&#x43E; &#x43B;&#x43E;&#x432;&#x438;&#x442; &#x441;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x448;&#x438;&#x440;&#x43E;&#x43A;&#x438;&#x439; scope &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B;.</div>
<script>(function(){var r=document.getElementById('ks-tab-k4p8r2v');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-inline-04-bccf57b9.webp" class="kg-image" alt="nvidia-persistenced &#x434;&#x43B;&#x44F; LLM: production-runbook &#x431;&#x435;&#x437; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x445; GPU init" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-persistenced-llm-runbook-inline-04-bccf57b9.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-persistenced-llm-runbook-inline-04-bccf57b9.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-inline-04-bccf57b9.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="application-gate">Application gate: &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; LLM, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; GPU</h2>

<p>Infrastructure gate &#x43D;&#x435; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x43D;&#x430; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x439; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F;: &#x433;&#x43E;&#x442;&#x43E;&#x432; &#x43B;&#x438; endpoint &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x442;&#x44C; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43F;&#x43E;&#x441;&#x43B;&#x435; daemon &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; application probe, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x43C; rollout &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;. &#x42D;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; readiness endpoint vLLM, &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; &#x434;&#x435;&#x442;&#x435;&#x440;&#x43C;&#x438;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x43A; &#x432;&#x430;&#x448;&#x435;&#x43C;&#x443; gateway &#x438;&#x43B;&#x438; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430; &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; CUDA-&#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;&#x430;. &#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x442;&#x44C; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x438;&#x43C;&#x44B;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x438; fail closed.</p>
<p>&#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x435; &#x435;&#x434;&#x438;&#x43D;&#x438;&#x447;&#x43D;&#x443;&#x44E; &#x446;&#x438;&#x444;&#x440;&#x443;, &#x430; &#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x430;&#x448;&#x435;&#x439; &#x448;&#x442;&#x430;&#x442;&#x43D;&#x43E;&#x439; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438; &#x43D;&#x430; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x43C; workload: &#x432;&#x440;&#x435;&#x43C;&#x44F; readiness &#x43F;&#x43E;&#x441;&#x43B;&#x435; controlled restart, &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;, first-request latency &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; idle interval. &#x41D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x439;&#x442;&#x435; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x435; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435;. NVIDIA &#x43F;&#x438;&#x448;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x430;&#x44F; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; &#x437;&#x430;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443;, &#x432; &#x442;&#x43E;&#x43C; &#x447;&#x438;&#x441;&#x43B;&#x435; &#x438;&#x437;-&#x437;&#x430; ECC scrubbing, &#x43D;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; GPU, &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430; &#x438; &#x442;&#x43E;&#x433;&#x43E;, &#x43E;&#x441;&#x442;&#x430;&#x432;&#x430;&#x43B;&#x441;&#x44F; &#x43B;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">application-gate.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>SERVICE_URL=&quot;http://127.0.0.1:8000&quot;

curl --fail --silent --show-error   --max-time 10   &quot;$SERVICE_URL/health&quot; &gt;/dev/null

curl --fail --silent --show-error   --max-time 10   &quot;$SERVICE_URL/v1/models&quot; | head -c 500

nvidia-smi --query-compute-apps=gpu_uuid,pid,process_name   --format=csv,noheader</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x440;&#x438;&#x43C;&#x435;&#x440; probe; URL &#x430;&#x434;&#x430;&#x43F;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43A; &#x441;&#x432;&#x43E;&#x435;&#x43C;&#x443; inference-&#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x443;</div>
</div>
<p>&#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x2014; &#x437;&#x430;&#x432;&#x435;&#x434;&#x43E;&#x43C;&#x43E; &#x43D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; endpoint &#x438;&#x43B;&#x438; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; canary backend, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x434;&#x430;&#x442;&#x44C; non-zero exit &#x438; &#x43D;&#x435; &#x43F;&#x43E;&#x43F;&#x430;&#x441;&#x442;&#x44C; &#x432; &#x431;&#x430;&#x43B;&#x430;&#x43D;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x449;&#x438;&#x43A;. &#x415;&#x441;&#x43B;&#x438; &#x432;&#x430;&#x448; &#x441;&#x43A;&#x440;&#x438;&#x43F;&#x442; &#x441;&#x447;&#x438;&#x442;&#x430;&#x435;&#x442; &#x442;&#x430;&#x43A;&#x43E;&#x439; &#x43E;&#x442;&#x432;&#x435;&#x442; &#x443;&#x441;&#x43F;&#x435;&#x445;&#x43E;&#x43C;, &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x435;&#x435; persistence: readiness &#x43C;&#x430;&#x441;&#x43A;&#x438;&#x440;&#x443;&#x435;&#x442; &#x43E;&#x442;&#x43A;&#x430;&#x437;.</p>
<p>&#x414;&#x43B;&#x44F; model-weight integrity &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x443; immutable revision; &#x44D;&#x442;&#x43E; &#x43F;&#x43E;&#x434;&#x440;&#x43E;&#x431;&#x43D;&#x43E; &#x440;&#x430;&#x437;&#x43E;&#x431;&#x440;&#x430;&#x43D;&#x43E; &#x432; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x435; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/fs-verity-llm-model-weights-integrity/">fs-verity &#x434;&#x43B;&#x44F; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM</a>. Persistence &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; pinned model identity.</p>
<div class="ks-widget" id="ks-sel-f6n3c8a"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x439; probe &#x432;&#x44B;&#x431;&#x440;&#x430;&#x442;&#x44C;?</h3>
<label>&#x421;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x439;</label><select data-s><option value="api">&#x41F;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x43D;&#x44B;&#x439; API-&#x441;&#x435;&#x440;&#x432;&#x438;&#x441;</option><option value="batch">&#x41F;&#x430;&#x43A;&#x435;&#x442;&#x43D;&#x44B;&#x435; CUDA-&#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F;</option><option value="multi">Multi-GPU &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;</option></select>
<div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-sel-f6n3c8a');if(!r)return;var m={"api":"Readiness endpoint плюс короткий запрос через тот же gateway, что использует трафик.","batch":"Минимальный CUDA context и одно штатное маленькое задание после подтверждённого idle interval.","multi":"Проверка всех ожидаемых UUID, затем collective/application probe на той же topology."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><h2 id="systemd-hardening">Systemd hardening &#x431;&#x435;&#x437; &#x43F;&#x43E;&#x43B;&#x43E;&#x43C;&#x43A;&#x438; vendor unit</h2>

<p>NVIDIA &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x435;&#x442; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; daemon &#x431;&#x435;&#x437; &#x43F;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x43D;&#x44B;&#x445; root-&#x43F;&#x440;&#x438;&#x432;&#x438;&#x43B;&#x435;&#x433;&#x438;&#x439;. Root &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x434;&#x43B;&#x44F; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43A;&#x438; runtime data, &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x447;&#x435;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x44C; &#x434;&#x43E; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F; &#x447;&#x435;&#x440;&#x435;&#x437; <code>--user</code>. &#x414;&#x438;&#x441;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x435; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x44B; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x443;&#x436;&#x435; &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x44E;&#x442; &#x44D;&#x442;&#x43E; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x437;&#x430; &#x432;&#x430;&#x441;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x438;&#x437;&#x443;&#x447;&#x438;&#x442;&#x435; <code>systemctl cat nvidia-persistenced</code> &#x438; effective user. &#x41D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; unit &#x446;&#x435;&#x43B;&#x438;&#x43A;&#x43E;&#x43C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x440;&#x430;&#x434;&#x438; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x43E;&#x433;&#x43E; &#x448;&#x430;&#x431;&#x43B;&#x43E;&#x43D;&#x430;.</p>
<p>&#x414;&#x43B;&#x44F; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x438; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; drop-in &#x438; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x43B;&#x438;&#x448;&#x44C; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x44B;&#x435; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; lifecycle. &#x41D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, <code>Restart=on-failure</code> &#x443;&#x43C;&#x435;&#x441;&#x442;&#x435;&#x43D;, &#x435;&#x441;&#x43B;&#x438; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x438; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43D;&#x430; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43F;&#x43E;&#x434;&#x43D;&#x438;&#x43C;&#x430;&#x442;&#x44C; daemon &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x430;&#x432;&#x430;&#x440;&#x438;&#x439;&#x43D;&#x43E;&#x433;&#x43E; &#x432;&#x44B;&#x445;&#x43E;&#x434;&#x430;. &#x41D;&#x43E; &#x431;&#x435;&#x441;&#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x439; restart &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x441;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x43D;&#x435;&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x44B;&#x439; driver package &#x438;&#x43B;&#x438; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x439; runtime directory: alert &#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x441;&#x44F; &#x43F;&#x43E; restart counter &#x438; journal.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">ini</span><span class="ks-canonical-code-block__filename">nvidia-persistenced.service.d/override.conf</span></div>
<pre class="ks-canonical-code-block__pre"><code>[Service]
Restart=on-failure
RestartSec=5s</code></pre>
<div class="ks-canonical-code-block__caption">&#x41C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; drop-in &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; vendor unit</div>
</div>
<style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">apply-systemd-dropin.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>sudo systemctl edit nvidia-persistenced.service
sudo systemctl daemon-reload
sudo systemctl restart nvidia-persistenced.service

systemctl show nvidia-persistenced.service   -p User -p Group -p Restart -p NRestarts
systemctl status nvidia-persistenced.service --no-pager</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x438; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; drop-in</div>
</div>
<p>&#x41D;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; sandboxing-&#x434;&#x438;&#x440;&#x435;&#x43A;&#x442;&#x438;&#x432;&#x44B; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x43E;&#x43C;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x442;&#x435;&#x441;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43A;&#x430;&#x436;&#x434;&#x443;&#x44E; &#x432; canary: daemon &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x43A; NVIDIA device files, &#x431;&#x438;&#x431;&#x43B;&#x438;&#x43E;&#x442;&#x435;&#x43A;&#x435; <code>libnvidia-cfg</code> &#x438; runtime directory. &#x421;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x436;&#x451;&#x441;&#x442;&#x43A;&#x438;&#x439; <code>PrivateDevices</code> &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;, &#x43D;&#x43E; &#x43E;&#x442;&#x440;&#x435;&#x436;&#x435;&#x442; &#x441;&#x430;&#x43C;&#x443; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430;.</p>
<div class="ks-widget" id="ks-chk-h8t2m5d"><h3>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; systemd hardening</h3>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> Vendor unit &#x43F;&#x440;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x43D; &#x447;&#x435;&#x440;&#x435;&#x437; systemctl cat</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> Effective User &#x438; Group &#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> Runtime directory &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x443;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> Restart counter &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x442;&#x441;&#x44F;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> GPU device files &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B; &#x43F;&#x43E;&#x441;&#x43B;&#x435; hardening</label>
<div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-chk-h8t2m5d');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-inline-05-451d123c.webp" class="kg-image" alt="nvidia-persistenced &#x434;&#x43B;&#x44F; LLM: production-runbook &#x431;&#x435;&#x437; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x445; GPU init" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-persistenced-llm-runbook-inline-05-451d123c.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-persistenced-llm-runbook-inline-05-451d123c.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-inline-05-451d123c.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="canary-rollout">Canary rollout &#x438; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x430;&#x44F; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x446;&#x438;&#x44F; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#x430;</h2>

<p>&#x412;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x443;&#x437;&#x43B;&#x435;, &#x430; &#x43D;&#x435; &#x43D;&#x430; &#x432;&#x441;&#x451;&#x43C; inference pool. Canary &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x43A;&#x43B;&#x430;&#x441;&#x441; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;, &#x438;&#x43C;&#x435;&#x442;&#x44C; &#x442;&#x443; &#x436;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x438; driver branch, &#x43D;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x43C; &#x438;&#x437; &#x431;&#x430;&#x43B;&#x430;&#x43D;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x449;&#x438;&#x43A;&#x430;. &#x414;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x437;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; baseline &#x43F;&#x43E; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x438;&#x43C; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x43C; &#x446;&#x438;&#x43A;&#x43B;&#x430;&#x43C;: controlled stop workload, &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x44B;&#x439; idle interval, start, readiness, &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;.</p>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F; daemon &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x439;. &#x41D;&#x435; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x43E;&#x447;&#x43D;&#x43E;&#x439; canary &#x441; &#x434;&#x43D;&#x435;&#x432;&#x43D;&#x44B;&#x43C; production: &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C;, page cache &#x438; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430; storage &#x438;&#x441;&#x43A;&#x430;&#x437;&#x44F;&#x442; &#x432;&#x44B;&#x432;&#x43E;&#x434;. &#x426;&#x435;&#x43B;&#x44C; &#x2014; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C;, &#x430; &#x43D;&#x435; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x443;&#x44E; &#x446;&#x438;&#x444;&#x440;&#x443;. &#x415;&#x441;&#x43B;&#x438; readiness &#x441;&#x442;&#x430;&#x43B;&#x430; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435;, &#x43D;&#x43E; first-token latency &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x430;&#x441;&#x44C;, &#x442;&#x430;&#x43A; &#x438; &#x437;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435;: &#x432;&#x44B; &#x443;&#x431;&#x440;&#x430;&#x43B;&#x438; variation &#x43D;&#x430; driver-init &#x441;&#x43B;&#x43E;&#x435;, &#x43D;&#x43E; bottleneck &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x441;&#x44F; &#x432; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x435; weights &#x438;&#x43B;&#x438; scheduler.</p>
<p>&#x417;&#x430;&#x442;&#x435;&#x43C; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;: &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; persistence &#x446;&#x435;&#x43B;&#x435;&#x432;&#x43E;&#x433;&#x43E; canary &#x43A; baseline &#x432; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E; &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; probe. &#x415;&#x441;&#x43B;&#x438; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x430; &#x43D;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;, &#x432;&#x435;&#x440;&#x43E;&#x44F;&#x442;&#x43D;&#x43E;, &#x43F;&#x440;&#x438;&#x43D;&#x430;&#x434;&#x43B;&#x435;&#x436;&#x438;&#x442; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C;&#x443; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44E;. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x438; &#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x44E; bottleneck: daemon &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; init delay, &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x447;&#x435;&#x433;&#x43E; &#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x435;&#x435; &#x441;&#x442;&#x430;&#x43D;&#x435;&#x442; NVMe, CPU preprocessing &#x438;&#x43B;&#x438; &#x441;&#x435;&#x442;&#x44C;.</p>
<p>&#x414;&#x43B;&#x44F; multi-GPU &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C; &#x43D;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x44D;&#x442;&#x43E;&#x442; rollout &#x441; ACS, IOMMU &#x438;&#x43B;&#x438; BAR-&#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430;&#x43C;&#x438;. &#x418;&#x445; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; gates &#x43E;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x44B; &#x432; <a href="https://kingservers.com/blog/pcie-acs-p2p-dma-multi-gpu-llm/">runbook &#x43F;&#x43E; PCIe ACS &#x438; P2P DMA</a>.</p>
<div class="ks-widget" id="ks-tab-r3v7n9c"><h3>&#x427;&#x442;&#x43E; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x43D;&#x430; canary?</h3>
<div class="tabs"><button type="button" class="tab-btn on" data-t="driver">Driver layer</button><button type="button" class="tab-btn" data-t="app">Application</button><button type="button" class="tab-btn" data-t="risk">&#x420;&#x438;&#x441;&#x43A;</button></div>
<div class="panel on" data-p="driver">Persistence effective state, daemon restart count, inventory &#x438; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x44F; journal.</div>
<div class="panel" data-p="app">Readiness, &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x438; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x448;&#x442;&#x430;&#x442;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x433;&#x43E; idle interval.</div>
<div class="panel" data-p="risk">Xid, &#x43D;&#x435;&#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x439; reset, &#x440;&#x43E;&#x441;&#x442; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A; endpoint &#x438;&#x43B;&#x438; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441; bottleneck &#x43D;&#x430; storage/CPU/network.</div>
<script>(function(){var r=document.getElementById('ks-tab-r3v7n9c');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-inline-06-5d2f6f9d.webp" class="kg-image" alt="nvidia-persistenced &#x434;&#x43B;&#x44F; LLM: production-runbook &#x431;&#x435;&#x437; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x445; GPU init" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-persistenced-llm-runbook-inline-06-5d2f6f9d.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-persistenced-llm-runbook-inline-06-5d2f6f9d.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-inline-06-5d2f6f9d.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="failure-modes">&#x422;&#x438;&#x43F;&#x43E;&#x432;&#x44B;&#x435; &#x441;&#x431;&#x43E;&#x438; &#x438; stop conditions</h2>

<p><strong>Unit active, mode Disabled.</strong> &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x442;&#x438;&#x432;&#x43E;&#x440;&#x435;&#x447;&#x438;&#x435;: daemon &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C;, &#x434;&#x430;&#x436;&#x435; &#x43A;&#x43E;&#x433;&#x434;&#x430; persistence &#x432;&#x44B;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D; &#x43D;&#x430; &#x432;&#x441;&#x435;&#x445; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;&#x445;. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x442;&#x43E;&#x447;&#x435;&#x447;&#x43D;&#x443;&#x44E; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x443;, &#x43F;&#x440;&#x430;&#x432;&#x430; &#x438; target UUID. &#x41D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#x440;&#x430;&#x434;&#x438; &#x43A;&#x43E;&#x441;&#x43C;&#x435;&#x442;&#x438;&#x43A;&#x438;.</p>
<p><strong>Mode Enabled, daemon inactive.</strong> &#x412;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;, <code>nvidia-smi</code> &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x43B; legacy kernel mode. &#x421;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C;, &#x43D;&#x43E; lifecycle &#x440;&#x430;&#x441;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x441; &#x43F;&#x43B;&#x430;&#x43D;&#x43E;&#x43C; &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; reboot &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x43F;&#x440;&#x43E;&#x43F;&#x430;&#x434;&#x451;&#x442;. &#x418;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x44C;&#x442;&#x435; owner &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438; &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; infrastructure gate.</p>
<p><strong>Daemon &#x43D;&#x435; &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;.</strong> &#x421;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; loaded driver version &#x441; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x430;&#x43C;&#x438;, &#x43F;&#x440;&#x430;&#x432;&#x430; runtime directory &#x438; journal. Stop condition &#x2014; restart loop &#x438;&#x43B;&#x438; mismatch &#x431;&#x438;&#x431;&#x43B;&#x438;&#x43E;&#x442;&#x435;&#x43A;. &#x41D;&#x435; &#x43E;&#x441;&#x43B;&#x430;&#x431;&#x43B;&#x44F;&#x439;&#x442;&#x435; unit &#x434;&#x43E; root &#x43D;&#x430;&#x432;&#x441;&#x435;&#x433;&#x434;&#x430; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443;, &#x447;&#x442;&#x43E; &#x44D;&#x442;&#x43E; &#x443;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;.</p>
<p><strong>LLM probe &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x438; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x43E;&#x43C; daemon.</strong> &#x420;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x435; gates &#x43A;&#x430;&#x43A; &#x440;&#x430;&#x437; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x432;&#x44B;&#x448;&#x435;: &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, storage, CUDA compatibility, topology &#x438;&#x43B;&#x438; &#x441;&#x430;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;. &#x41F;&#x440;&#x438; Xid &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x439;&#x442;&#x435; evidence &#x434;&#x43E; reset &#x438; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; <a href="https://kingservers.com/blog/nvidia-xid-gpu-incident-response/">runbook &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x438; NVIDIA Xid</a>.</p>
<p><strong>&#x418;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x430;&#x441;&#x44C; &#x432;&#x441;&#x44F; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x430; GPU.</strong> &#x421;&#x43A;&#x43E;&#x440;&#x435;&#x435; &#x432;&#x441;&#x435;&#x433;&#x43E;, &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x431;&#x44B;&#x43B;&#x430; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x430; &#x431;&#x435;&#x437; &#x442;&#x43E;&#x447;&#x43D;&#x43E;&#x433;&#x43E; <code>-i</code>. &#x41E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; rollout, &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; UUID &#x441; baseline &#x438; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; &#x440;&#x435;&#x436;&#x438;&#x43C; &#x43F;&#x43E;&#x448;&#x442;&#x443;&#x447;&#x43D;&#x43E;. Automation &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x442;&#x430;&#x43A;&#x43E;&#x433;&#x43E; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; fail closed &#x43F;&#x440;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x438; inventory.</p>
<div class="ks-widget" id="ks-sel-p2d6w8k"><h3>&#x413;&#x434;&#x435; &#x438;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443;?</h3>
<label>&#x421;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;</label><select data-s><option value="inactive">Daemon inactive</option><option value="disabled">Mode disabled</option><option value="app">LLM probe failed</option><option value="xid">Xid &#x438;&#x43B;&#x438; reset</option></select>
<div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-sel-p2d6w8k');if(!r)return;var m={"inactive":"Проверьте unit, journal, runtime directory и совместимость пакетов с loaded driver.","disabled":"Сопоставьте target UUID, права команды и effective state; daemon сам по себе не означает Enabled.","app":"Считайте infrastructure gate отдельным PASS и диагностируйте model/runtime/storage слой.","xid":"Сначала сохраните evidence, затем следуйте incident runbook; persistence не является лечением reset."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><h2 id="rollback">Rollback &#x442;&#x435;&#x43C;&#x438; &#x436;&#x435; gates &#x432; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x43C; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43A;&#x435;</h2>

<p>Rollback &#x2014; &#x43D;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; <code>-pm 0</code>, &#x430; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x443;&#x437;&#x43B;&#x430; &#x43A; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x43E;&#x43C;&#x443; baseline. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x432;&#x44B;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; canary &#x438;&#x437; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430; &#x438; &#x434;&#x43E;&#x436;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x445; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x439;. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435; persistence &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; target UUID, &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; systemd drop-in &#x43F;&#x440;&#x438; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438; &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; identity, effective state &#x438; application readiness.</p>
<p>&#x41D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x439;&#x442;&#x435; GPU reset &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;: &#x434;&#x43B;&#x44F; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430; persistence mode &#x43E;&#x43D; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x43D;&#x435; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442;&#x441;&#x44F;, &#x430; reset &#x437;&#x430;&#x442;&#x440;&#x430;&#x433;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x43E;&#x432; &#x438; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x443;&#x44E; &#x43A;&#x430;&#x440;&#x442;&#x438;&#x43D;&#x443;. &#x415;&#x441;&#x43B;&#x438; reset &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x438;&#x437;-&#x437;&#x430; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430;, &#x44D;&#x442;&#x43E; &#x443;&#x436;&#x435; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; change &#x441; &#x441;&#x43E;&#x431;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x43C; evidence &#x438; approval.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">rollback-persistence.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>GPU_UUID=&quot;GPU-REPLACE-WITH-VERIFIED-UUID&quot;

sudo nvidia-smi -i &quot;$GPU_UUID&quot; -pm 0

nvidia-smi -i &quot;$GPU_UUID&quot;   --query-gpu=uuid,pci.bus_id,persistence_mode   --format=csv,noheader
systemctl status nvidia-persistenced.service --no-pager

# &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430; service configuration:
sudo systemctl daemon-reload
sudo systemctl restart nvidia-persistenced.service</code></pre>
<div class="ks-canonical-code-block__caption">&#x421;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x439; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; canary &#x43A; baseline</div>
</div>
<p>Application probe &#x43F;&#x43E;&#x441;&#x43B;&#x435; rollback &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x442;&#x435;&#x43C; &#x436;&#x435;, &#x447;&#x442;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; rollout. &#x415;&#x441;&#x43B;&#x438; endpoint &#x43D;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432;, &#x443;&#x437;&#x435;&#x43B; &#x43D;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x431;&#x430;&#x43B;&#x430;&#x43D;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x449;&#x438;&#x43A;, &#x434;&#x430;&#x436;&#x435; &#x43A;&#x43E;&#x433;&#x434;&#x430; persistence mode &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x43B; &#x441; baseline. &#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B;.</p>
<div class="ks-widget" id="ks-chk-z5c9t2b"><h3>&#x423;&#x437;&#x435;&#x43B; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; &#x432; &#x43F;&#x443;&#x43B;?</h3>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x422;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D; &#x438; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x44B;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> Target UUID &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x441; baseline</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> Effective persistence state &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> Unit &#x438; journal &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x44B;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> LLM readiness &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x43F;&#x440;&#x43E;&#x439;&#x434;&#x435;&#x43D;&#x44B;</label>
<div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-chk-z5c9t2b');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-inline-07-766f5e72.webp" class="kg-image" alt="nvidia-persistenced &#x434;&#x43B;&#x44F; LLM: production-runbook &#x431;&#x435;&#x437; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x445; GPU init" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-persistenced-llm-runbook-inline-07-766f5e72.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-persistenced-llm-runbook-inline-07-766f5e72.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-persistenced-llm-runbook-inline-07-766f5e72.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="conclusion">&#x427;&#x442;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x432; production runbook</h2>

<p><code>nvidia-persistenced</code> &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x442;&#x430;&#x43C;, &#x433;&#x434;&#x435; headless GPU &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x431;&#x435;&#x437; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x43E;&#x432; &#x43C;&#x435;&#x436;&#x434;&#x443; LLM-&#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F;&#x43C;&#x438;. &#x41E;&#x43D; &#x443;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; driver state &#x447;&#x435;&#x440;&#x435;&#x437; &#x434;&#x43E;&#x43B;&#x433;&#x43E;&#x436;&#x438;&#x432;&#x443;&#x449;&#x438;&#x439; user-space &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x438; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x43C;&#x435;&#x436;&#x434;&#x443; jobs &#x43F;&#x440;&#x435;&#x434;&#x441;&#x43A;&#x430;&#x437;&#x443;&#x435;&#x43C;&#x435;&#x435;, &#x43D;&#x43E; &#x43D;&#x435; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x443;&#x44E; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x443; &#x432; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x44E; &#x43D;&#x438;&#x437;&#x43A;&#x43E;&#x439; latency.</p>
<p>&#x425;&#x43E;&#x440;&#x43E;&#x448;&#x438;&#x439; production runbook &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x430;: pinned GPU identity, effective state daemon/mode, application readiness &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B;. Rollout &#x438; rollback &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x44E;&#x442; &#x442;&#x435; &#x436;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x432; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43A;&#x435;. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43F;&#x43E;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x447;&#x442;&#x43E; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x43B;&#x430;&#x441;&#x44C; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430;, &#x43D;&#x43E; &#x438; &#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443; &#x443;&#x437;&#x435;&#x43B; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x442;&#x44C; &#x432; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;.</p>
<p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; canary &#x43D;&#x430; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;, &#x441;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; baseline &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; controlled idle test. &#x415;&#x441;&#x43B;&#x438; persistence &#x443;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x430;&#x448;&#x443; &#x432;&#x430;&#x440;&#x438;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C;, &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x435; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x443; &#x432; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x435; &#x438;&#x43B;&#x438; configuration management. &#x415;&#x441;&#x43B;&#x438; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; baseline &#x438; &#x438;&#x449;&#x438;&#x442;&#x435; bottleneck &#x43D;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x435;&#x43C; &#x441;&#x43B;&#x43E;&#x435; &#x2014; &#x44D;&#x442;&#x43E; &#x442;&#x43E;&#x436;&#x435; &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x438;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430;.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[PCIe ACS и P2P DMA для multi-GPU LLM: production-runbook]]></title><description><![CDATA[Практический runbook по PCIe ACS и P2P DMA: topology, IOMMU, NCCL, LLM application gate, точечное изменение bridge и безопасный rollback.]]></description><link>https://kingservers.com/blog/pcie-acs-p2p-dma-multi-gpu-llm/</link><guid isPermaLink="false">6a95dcb9aff2afac25354c0a</guid><category><![CDATA[GPU]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Mon, 31 Aug 2026 20:51:30 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-hero-211f6022.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#symptom">&#x41F;&#x43E;&#x447;&#x435;&#x43C;&#x443; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43D;&#x44B;&#x435; GPU &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43E;&#x431;&#x43C;&#x435;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x447;&#x435;&#x440;&#x435;&#x437; &#x434;&#x43B;&#x438;&#x43D;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C;</a></li>
<li><a href="#p2p-path">P2P DMA: &#x442;&#x440;&#x438; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x430; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x43E;&#x433;&#x43E; OK</a></li>
<li><a href="#acs-routing">&#x427;&#x442;&#x43E; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; ACSCtl &#x438; &#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443; SrcValid+ &#x2014; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x443;&#x43B;&#x438;&#x43A;&#x430;</a></li>
<li><a href="#baseline-evidence">Evidence bundle &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; setpci &#x438; reboot</a></li>
<li><a href="#iommu-boundary">Bare metal &#x438; VM: &#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443; &#x43E;&#x434;&#x438;&#x43D; &#x440;&#x435;&#x446;&#x435;&#x43F;&#x442; &#x43E;&#x43F;&#x430;&#x441;&#x435;&#x43D;</a></li>
<li><a href="#rollout-gates">&#x41C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435;: &#x43E;&#x434;&#x438;&#x43D; canary &#x438; &#x43E;&#x434;&#x438;&#x43D; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x44B;&#x439; bridge</a></li>
<li><a href="#active-validation">Infrastructure gate: topology, active P2P &#x438; NCCL</a></li>
<li><a href="#application-proof">Application gate: &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43D;&#x430; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; LLM</a></li>
<li><a href="#failure-modes">&#x427;&#x442;&#x43E; &#x447;&#x430;&#x449;&#x435; &#x432;&#x441;&#x435;&#x433;&#x43E; &#x43B;&#x43E;&#x43C;&#x430;&#x435;&#x442; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; &#x432;&#x44B;&#x432;&#x43E;&#x434;</a></li>
<li><a href="#rollback">&#x421;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x439; rollback &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x430;&#x44F; &#x441;&#x435;&#x440;&#x442;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x439;</a></li>
<li><a href="#conclusion">&#x412;&#x44B;&#x432;&#x43E;&#x434;: &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; P2P-&#x43F;&#x443;&#x442;&#x44C; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x446;&#x435;&#x43F;&#x43E;&#x447;&#x43A;&#x43E;&#x439; gates</a></li>
</ul></div>

</div>&#x427;&#x435;&#x442;&#x44B;&#x440;&#x435; GPU &#x432;&#x438;&#x434;&#x43D;&#x44B; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x435;, CUDA &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442;, &#x430; tensor-parallel LLM &#x432;&#x43D;&#x435;&#x437;&#x430;&#x43F;&#x43D;&#x43E; &#x437;&#x430;&#x432;&#x438;&#x441;&#x430;&#x435;&#x442; &#x43D;&#x430; collective &#x438;&#x43B;&#x438; &#x43F;&#x43B;&#x430;&#x432;&#x430;&#x435;&#x442; &#x43F;&#x43E; latency. &#x427;&#x430;&#x441;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x432; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x438; &#x43D;&#x435; &#x432; NCCL-&#x442;&#x44E;&#x43D;&#x438;&#x43D;&#x433;&#x435;, &#x430; &#x432; &#x442;&#x43E;&#x43C;, &#x43A;&#x443;&#x434;&#x430; PCIe ACS &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; peer-to-peer &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;. &#x41D;&#x438;&#x436;&#x435; &#x2014; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; production-runbook: &#x43E;&#x442; evidence bundle &#x438; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; bare metal/VM &#x434;&#x43E; active P2P-&#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;, application gate &#x438; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x43E;&#x433;&#x43E; rollback.<div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <img src="https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-hero-211f6022.webp" alt="PCIe ACS &#x438; P2P DMA &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook"><p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="symptom">&#x41F;&#x43E;&#x447;&#x435;&#x43C;&#x443; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43D;&#x44B;&#x435; GPU &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43E;&#x431;&#x43C;&#x435;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x447;&#x435;&#x440;&#x435;&#x437; &#x434;&#x43B;&#x438;&#x43D;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C;</h2>
<p>&#x421;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C; &#x43D;&#x435;&#x43F;&#x440;&#x438;&#x44F;&#x442;&#x43D;&#x43E; &#x43F;&#x43E;&#x445;&#x43E;&#x436; &#x43D;&#x430; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x443; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;: &#x432;&#x441;&#x435; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x438; &#x432;&#x438;&#x434;&#x43D;&#x44B;, CUDA &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x443;&#x435;&#x442;&#x441;&#x44F;, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F;, &#x430; tensor-parallel LLM &#x43F;&#x43B;&#x430;&#x432;&#x430;&#x435;&#x442; &#x43F;&#x43E; latency &#x438;&#x43B;&#x438; &#x437;&#x430;&#x432;&#x438;&#x441;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x438; communicator. &#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; NCCL-&#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x438; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;. &#x41C;&#x435;&#x436;&#x434;&#x443; &#x442;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x438;&#x436;&#x435; &#x2014; &#x432; &#x442;&#x43E;&#x43C;, &#x43A;&#x443;&#x434;&#x430; PCIe fabric &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; peer-to-peer &#x442;&#x440;&#x430;&#x43D;&#x437;&#x430;&#x43A;&#x446;&#x438;&#x438;.</p>
<p>&#x414;&#x43B;&#x44F; &#x43F;&#x440;&#x44F;&#x43C;&#x43E;&#x433;&#x43E; &#x43E;&#x431;&#x43C;&#x435;&#x43D;&#x430; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; GPU &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x434;&#x43E;&#x439;&#x442;&#x438; &#x434;&#x43E; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x433;&#x43E; &#x431;&#x435;&#x437; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430; &#x43A; CPU root complex. PCI Access Control Services, &#x438;&#x43B;&#x438; ACS, &#x443;&#x43C;&#x435;&#x435;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x430;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x432;&#x432;&#x435;&#x440;&#x445; &#x43F;&#x43E; &#x438;&#x435;&#x440;&#x430;&#x440;&#x445;&#x438;&#x438;. &#x412; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x441;&#x440;&#x435;&#x434;&#x435; &#x44D;&#x442;&#x43E; &#x447;&#x430;&#x441;&#x442;&#x44C; &#x438;&#x437;&#x43E;&#x43B;&#x44F;&#x446;&#x438;&#x438;; &#x43D;&#x430; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; bare-metal &#x443;&#x437;&#x43B;&#x435; &#x442;&#x430;&#x43A;&#x43E;&#x439; redirect &#x438;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43E;&#x434;&#x43D;&#x438;&#x43C; switch &#x432; &#x434;&#x43B;&#x438;&#x43D;&#x43D;&#x44B;&#x439; &#x43C;&#x430;&#x440;&#x448;&#x440;&#x443;&#x442; &#x447;&#x435;&#x440;&#x435;&#x437; root.</p>
<p>&#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x439; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; BIOS update: hardware inventory &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x442;&#x43E;&#x442; &#x436;&#x435;, &#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; multi-GPU workload &#x434;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E;. Health-check &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x44B;&#x439;, &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x43E;&#x43D; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x43D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;, &#x430; &#x43D;&#x435; &#x43C;&#x435;&#x436;GPU &#x43F;&#x443;&#x442;&#x44C;. Stop condition &#x43D;&#x430; &#x44D;&#x442;&#x43E;&#x43C; &#x44D;&#x442;&#x430;&#x43F;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x439;: &#x43D;&#x435; &#x43A;&#x43E;&#x43C;&#x43F;&#x435;&#x43D;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C; tuning-&#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x43C;&#x438;, &#x43F;&#x43E;&#x43A;&#x430; &#x43D;&#x435; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B; topology, ACSCtl, IOMMU state &#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; P2P-&#x442;&#x435;&#x441;&#x442;.</p>
<p>&#x42D;&#x442;&#x430; &#x442;&#x435;&#x43C;&#x430; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x430; &#x43E;&#x442; &#x430;&#x434;&#x440;&#x435;&#x441;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x430; &#x438; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x449;&#x435;&#x43D;&#x438;&#x44F; BAR. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x430; &#x435;&#x449;&#x451; &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x430; &#x431;&#x430;&#x437;&#x43E;&#x432;&#x443;&#x44E; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43A;&#x443;, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; runbook &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/resizable-bar-above-4g-multi-gpu-llm/">Resizable BAR &#x438; Above 4G</a>. &#x417;&#x434;&#x435;&#x441;&#x44C; &#x436;&#x435; &#x43F;&#x440;&#x435;&#x434;&#x43F;&#x43E;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x447;&#x442;&#x43E; GPU &#x43F;&#x435;&#x440;&#x435;&#x447;&#x438;&#x441;&#x43B;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E;; &#x43C;&#x44B; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x43C; &#x43C;&#x430;&#x440;&#x448;&#x440;&#x443;&#x442;, &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x447;&#x438; &#x438; &#x432;&#x43B;&#x438;&#x44F;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; LLM-&#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x443;.</p>
<p>&#x413;&#x43B;&#x430;&#x432;&#x43D;&#x430;&#x44F; &#x438;&#x434;&#x435;&#x44F; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438;: ACS &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x43B;&#x435;&#x447;&#x438;&#x442;&#x44C; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x43E;&#x439;. &#x41D;&#x443;&#x436;&#x43D;&#x430; &#x446;&#x435;&#x43F;&#x43E;&#x447;&#x43A;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432; &#x2014; pinned hardware identity, effective state, active transfer, application readiness &#x438; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x43A; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x43C;&#x443; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x44E; &#x442;&#x435;&#x43C;&#x438; &#x436;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430;&#x43C;&#x438;.</p><h2 id="p2p-path">P2P DMA: &#x442;&#x440;&#x438; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x430; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x43E;&#x433;&#x43E; OK</h2>
<p>Peer-to-peer DMA &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x443; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43E;&#x431;&#x43C;&#x435;&#x43D; &#x441; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C;&#x44E; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x433;&#x43E; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430; &#x431;&#x435;&#x437; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; staging-&#x43A;&#x43E;&#x43F;&#x438;&#x438; &#x447;&#x435;&#x440;&#x435;&#x437; host buffer. &#x414;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; Linux &#x43E;&#x442;&#x43C;&#x435;&#x447;&#x430;&#x435;&#x442; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443;: &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x439; PCIe hierarchy &#x43C;&#x430;&#x440;&#x448;&#x440;&#x443;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x430; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x43E;, &#x430; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x435;&#x447;&#x435;&#x43D;&#x438;&#x435; root ports &#x438; host bridges &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x435; GPU &#x432; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x445; &#x441;&#x43B;&#x43E;&#x442;&#x430;&#x445; &#x43D;&#x435; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x44E;&#x442; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C;.</p>
<p>&#x41F;&#x435;&#x440;&#x432;&#x43E;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E; &#x2014; topology identity. &#x41D;&#x443;&#x436;&#x43D;&#x43E; &#x437;&#x43D;&#x430;&#x442;&#x44C; GPU UUID, BDF, &#x440;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x438;&#x435; bridges &#x438; switches. &#x412;&#x442;&#x43E;&#x440;&#x43E;&#x435; &#x2014; mechanism availability: &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x430;&#x435;&#x442; &#x43B;&#x438; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;, &#x447;&#x442;&#x43E; read/write P2P &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x435;&#x43D;&#x44B; &#x434;&#x43B;&#x44F; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x439; &#x43D;&#x430;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x440;&#x44B;. &#x422;&#x440;&#x435;&#x442;&#x44C;&#x435; &#x2014; traffic proof: &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x43B;&#x438; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445; &#x438; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x43B;&#x438; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x44D;&#x442;&#x43E;&#x442; &#x43C;&#x430;&#x440;&#x448;&#x440;&#x443;&#x442;. &#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; <code>nvidia-smi topo -m</code> &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x432; &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x43D;&#x43E;&#x43C; &#x43D;&#x430; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;, <code>nvidia-smi topo -p2p p</code> &#x2014; &#x43D;&#x430; &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439;.</p>
<p>&#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; NCCL &#x43F;&#x43E;&#x434;&#x447;&#x451;&#x440;&#x43A;&#x438;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; P2P-&#x43C;&#x430;&#x442;&#x440;&#x438;&#x446;&#x430; &#x43D;&#x435; &#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x439; sanity-&#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x43E;&#x439; &#x43F;&#x440;&#x438; bare-metal IOMMU &#x438; ACS. &#x42D;&#x442;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x430;&#x44F; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x43E;&#x433;&#x43E;&#x432;&#x43E;&#x440;&#x43A;&#x430;: &#xAB;OK&#xBB; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; &#x440;&#x430;&#x441;&#x43F;&#x43E;&#x437;&#x43D;&#x430;&#x43D;&#x43D;&#x443;&#x44E; capability, &#x43D;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x432;&#x441;&#x435; platform settings &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x44B; &#x441; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x43C; &#x438; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; direct path.</p>
<p>Owner &#x441;&#x43B;&#x43E;&#x44F; topology &#x2014; platform/SRE, &#x430; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E; &#x2014; &#x430;&#x440;&#x442;&#x435;&#x444;&#x430;&#x43A;&#x442; &#x441; hostname, &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x435;&#x43C;, &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F;&#x43C;&#x438; &#x438; &#x441;&#x432;&#x44F;&#x437;&#x43A;&#x43E;&#x439; UUID&#x2194;BDF. &#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x2014; &#x43F;&#x430;&#x440;&#x430; GPU, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x430;&#x44F; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x435;&#x43A;&#x430;&#x435;&#x442; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x434;&#x430;&#x43B;&#x44C;&#x43D;&#x438;&#x439; bridge &#x438;&#x43B;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; root port. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x43F;&#x430;&#x440;&#x44B; &#x43D;&#x435;&#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x438;&#x43C;&#x44B; &#x432;&#x43E; &#x432;&#x441;&#x435;&#x445; &#x442;&#x435;&#x441;&#x442;&#x430;&#x445;, &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x447;&#x443;&#x432;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x435;&#x43D;.</p>
<p>&#x41D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x439;&#x442;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x43F;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x441;&#x440;&#x435;&#x434;&#x43D;&#x435;&#x439; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x438;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445; &#x438; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; hang, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x43C; binary. &#x41B;&#x44E;&#x431;&#x44B;&#x435; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x446;&#x438;&#x444;&#x440;&#x44B; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x431;&#x44B;&#x43B;&#x438; &#x431;&#x44B; &#x432;&#x44B;&#x434;&#x443;&#x43C;&#x43A;&#x43E;&#x439;: &#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B; &#x437;&#x430;&#x434;&#x430;&#x44E;&#x442; &#x43F;&#x43E;&#x43A;&#x43E;&#x43B;&#x435;&#x43D;&#x438;&#x435; PCIe, &#x448;&#x438;&#x440;&#x438;&#x43D;&#x430; link, switch, GPU, firmware &#x438; layout &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;.</p><style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}
.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}
.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}
.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}
.ks-widget .panel.on{display:block}
.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}
.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}
.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style><div class="ks-widget" id="ks-tab-p2p7ac1"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x439; &#x441;&#x43B;&#x43E;&#x439; &#x432;&#x44B; &#x441;&#x435;&#x439;&#x447;&#x430;&#x441; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;&#x435;?</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="topo">&#x422;&#x43E;&#x43F;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44F;</button><button type="button" class="tab-btn" data-t="access">P2P-&#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;</button><button type="button" class="tab-btn" data-t="traffic">&#x420;&#x430;&#x431;&#x43E;&#x447;&#x438;&#x439; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;</button></div><div class="panel on" data-p="topo">&#x41A;&#x430;&#x440;&#x442;&#x430; GPU, bridges &#x438; switches. &#x41E;&#x43D;&#x430; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x44B;&#x439; &#x43C;&#x430;&#x440;&#x448;&#x440;&#x443;&#x442;, &#x43D;&#x43E; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x447;&#x443; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</div><div class="panel" data-p="access">&#x41C;&#x430;&#x442;&#x440;&#x438;&#x446;&#x430; read/write capability &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442;, &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x430;&#x435;&#x442; &#x43B;&#x438; &#x441;&#x442;&#x435;&#x43A; &#x43F;&#x440;&#x44F;&#x43C;&#x43E;&#x439; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x440;&#x435;.</div><div class="panel" data-p="traffic">NCCL-&#x442;&#x435;&#x441;&#x442; &#x438; LLM workload &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x44E;&#x442;, &#x447;&#x442;&#x43E; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442;&#x441;&#x44F;.</div><script>(function(){var r=document.getElementById('ks-tab-p2p7ac1');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-01-16003c7d.webp" class="kg-image" alt="PCIe ACS &#x438; P2P DMA &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-01-16003c7d.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-01-16003c7d.webp 1000w, https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-01-16003c7d.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="acs-routing">&#x427;&#x442;&#x43E; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; ACSCtl &#x438; &#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443; SrcValid+ &#x2014; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x443;&#x43B;&#x438;&#x43A;&#x430;</h2>
<p>ACS &#x2014; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x435;&#x439; downstream port &#x438;&#x43B;&#x438; PCIe switch. &#x412; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x43C; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x435; <code>lspci -vvv</code> &#x435;&#x441;&#x442;&#x44C; capability &#x438; control state. &#x421;&#x442;&#x440;&#x43E;&#x43A;&#x430; <code>ACSCtl</code> &#x441; <code>SrcValid+</code> &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x451;&#x43D;&#x43D;&#x443;&#x44E; source validation, &#x430; redirect-&#x444;&#x43B;&#x430;&#x433;&#x438; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x437;&#x430;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; peer traffic &#x43F;&#x43E;&#x434;&#x43D;&#x438;&#x43C;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43A; root complex. &#x41D;&#x43E; &#x43E;&#x434;&#x43D;&#x430; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x430; &#x431;&#x435;&#x437; &#x434;&#x435;&#x440;&#x435;&#x432;&#x430; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x44D;&#x442;&#x43E;&#x442; bridge &#x43B;&#x435;&#x436;&#x438;&#x442; &#x43D;&#x430; &#x43F;&#x443;&#x442;&#x438; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x440;&#x44B;.</p>
<p>&#x41F;&#x440;&#x435;&#x434;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x440;&#x430;&#x437;&#x432;&#x44F;&#x437;&#x43A;&#x443;: &#x434;&#x432;&#x430; GPU &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x44F;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x434; &#x43E;&#x434;&#x43D;&#x438;&#x43C; switch &#x438; &#x43C;&#x43E;&#x433;&#x43B;&#x438; &#x431;&#x44B; &#x43E;&#x431;&#x43C;&#x435;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; &#x43D;&#x438;&#x436;&#x43D;&#x435;&#x43C; &#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435;. Redirect &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; &#x441;&#x44A;&#x435;&#x437;&#x434; &#x438; &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x43E;&#x431;&#x435; &#x442;&#x440;&#x430;&#x43D;&#x437;&#x430;&#x43A;&#x446;&#x438;&#x438; &#x447;&#x435;&#x440;&#x435;&#x437; &#x446;&#x435;&#x43D;&#x442;&#x440;. &#x418;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x44D;&#x442;&#x43E; &#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; trust boundary. &#x418;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x2014; BIOS default, &#x43D;&#x435; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x440;&#x43E;&#x43B;&#x438; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; inference-&#x443;&#x437;&#x43B;&#x430;. &#x414;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x438;&#x442;&#x44C; &#x44D;&#x442;&#x438; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x438; &#x434;&#x43E; write-&#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B;.</p>
<p>NCCL &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x442; &#x438;&#x441;&#x43A;&#x430;&#x442;&#x44C; ACS &#x447;&#x435;&#x440;&#x435;&#x437; <code>lspci -vvv | grep ACSCtl</code> &#x438; &#x434;&#x43B;&#x44F; &#x43D;&#x435;&#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x445; PLX/Broadcom bridges &#x43D;&#x430; bare metal &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; control word &#x447;&#x435;&#x440;&#x435;&#x437; <code>setpci</code>. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x43C;&#x44B;&#x439; desired state. &#x410;&#x434;&#x440;&#x435;&#x441; extended capability, &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x430; firmware &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x441;&#x442;&#x432;&#x438;&#x44F; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x43F;&#x43E; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44F; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;.</p>
<p>Stop condition: BDF &#x43D;&#x435; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x435;&#x43D; &#x441; &#x43D;&#x443;&#x436;&#x43D;&#x43E;&#x439; GPU-&#x43F;&#x430;&#x440;&#x43E;&#x439;; &#x43D;&#x430; &#x445;&#x43E;&#x441;&#x442;&#x435; &#x435;&#x441;&#x442;&#x44C; VM passthrough, SR-IOV &#x438;&#x43B;&#x438; &#x43D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x435; DMA isolation requirements; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; out-of-band &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;; &#x43F;&#x43E;&#x441;&#x43B;&#x435; read-only &#x441;&#x431;&#x43E;&#x440;&#x430; &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x438;&#x441;&#x44C; AER/Xid. &#x41B;&#x44E;&#x431;&#x43E;&#x439; &#x438;&#x437; &#x44D;&#x442;&#x438;&#x445; &#x43F;&#x443;&#x43D;&#x43A;&#x442;&#x43E;&#x432; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; change window &#x434;&#x43E; &#x443;&#x442;&#x43E;&#x447;&#x43D;&#x435;&#x43D;&#x438;&#x44F;.</p>
<p>&#x41D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x43E;&#x446;&#x435;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C; ACS &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x442; IOMMU groups. &#x413;&#x43B;&#x43E;&#x431;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; override &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; isolation semantics &#x434;&#x43B;&#x44F; &#x434;&#x440;&#x443;&#x433;&#x438;&#x445; devices. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43C;&#x44B; &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x43C; &#xAB;&#x441;&#x43A;&#x440;&#x438;&#x43F;&#x442; &#x43F;&#x43E; &#x432;&#x441;&#x435;&#x43C; BDF&#xBB; &#x43A;&#x430;&#x43A; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x448;&#x430;&#x433; &#x438; &#x43D;&#x435; &#x441;&#x43E;&#x432;&#x435;&#x442;&#x443;&#x435;&#x43C; kernel override &#x440;&#x430;&#x434;&#x438; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">collect-pcie-evidence.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>set -euo pipefail
stamp=$(date -u +%Y%m%dT%H%M%SZ)
out=&quot;pcie-evidence-$stamp&quot;
mkdir -p &quot;$out&quot;
nvidia-smi --query-gpu=index,uuid,pci.bus_id --format=csv &gt; &quot;$out/gpu-map.csv&quot;
nvidia-smi topo -m &gt; &quot;$out/topology.txt&quot;
nvidia-smi topo -p2p p &gt; &quot;$out/p2p-pcie.txt&quot;
lspci -tv &gt; &quot;$out/lspci-tree.txt&quot;
sudo lspci -vvv &gt; &quot;$out/lspci-vvv.txt&quot;
grep -n &quot;ACSCtl&quot; &quot;$out/lspci-vvv.txt&quot; &gt; &quot;$out/acsctl.txt&quot; || true
cat /proc/cmdline &gt; &quot;$out/proc-cmdline.txt&quot;
dmesg | grep -i -E &quot;iommu|dmar|default domain&quot; &gt; &quot;$out/iommu.txt&quot; || true</code></pre>
<div class="ks-canonical-code-block__caption">Read-only &#x441;&#x431;&#x43E;&#x440; topology &#x438; ACS evidence</div>
</div>
<figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-02-eacf1407.webp" class="kg-image" alt="PCIe ACS &#x438; P2P DMA &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-02-eacf1407.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-02-eacf1407.webp 1000w, https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-02-eacf1407.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="baseline-evidence">Evidence bundle &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; setpci &#x438; reboot</h2>
<p>&#x425;&#x43E;&#x440;&#x43E;&#x448;&#x438;&#x439; runbook &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x441; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;, &#x430; &#x441; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x43E;&#x441;&#x44C;. &#x421;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x439;&#x442;&#x435; evidence &#x442;&#x435;&#x43C; &#x436;&#x435; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x435;&#x43C; &#x438; &#x432; &#x442;&#x43E;&#x43C; &#x436;&#x435; container namespace, &#x433;&#x434;&#x435; &#x431;&#x443;&#x434;&#x435;&#x442; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;. NCCL &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; <code>/sys</code> &#x434;&#x43B;&#x44F; topology discovery; &#x443;&#x440;&#x435;&#x437;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x438;&#x43B;&#x438; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; sysfs &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x434;&#x430;&#x442;&#x44C; suboptimal &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x435;&#x449;&#x451; &#x434;&#x43E; collective.</p>
<p>&#x412; bundle &#x432;&#x445;&#x43E;&#x434;&#x44F;&#x442; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; BIOS, kernel, driver, CUDA &#x438; NCCL; GPU UUID/BDF; &#x434;&#x435;&#x440;&#x435;&#x432;&#x43E; PCIe; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; ACS capability/control state; IOMMU effective mode; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; links; &#x442;&#x43E;&#x447;&#x43D;&#x430;&#x44F; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x442;&#x435;&#x441;&#x442;&#x430;. &#x41F;&#x440;&#x438;&#x432;&#x44F;&#x436;&#x438;&#x442;&#x435; &#x430;&#x440;&#x445;&#x438;&#x432; &#x43A; maintenance ticket. &#x41F;&#x43E;&#x441;&#x43B;&#x435; reboot BDF &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C;&#x441;&#x44F;, &#x438; &#x431;&#x435;&#x437; UUID &#x432;&#x44B; &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430; &#x43A;&#x430;&#x43A; &#x43E;&#x434;&#x43D;&#x43E;.</p>
<p>Static baseline &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x435;&#x442; &#x441;&#x43E;&#x441;&#x442;&#x430;&#x432; &#x438; route. Active baseline &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x438; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;. Application baseline &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x432;&#x430;&#x448; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x439; model artifact, engine image, tensor-parallel size, &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B; &#x438; warmup. &#x41D;&#x435; &#x43D;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D; benchmark: &#x437;&#x430;&#x434;&#x430;&#x447;&#x430; &#x2014; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x439; &#x434;&#x43E;/&#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B; &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; canary.</p>
<p>&#x41F;&#x440;&#x438;&#x43C;&#x435;&#x440;: GPU0 &#x438; GPU1 &#x43F;&#x43E;&#x434; &#x43E;&#x434;&#x43D;&#x438;&#x43C; switch &#x2014; &#x43F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x430;&#x43D;&#x434;&#x438;&#x434;&#x430;&#x442;. GPU0 &#x438; GPU2 &#x43F;&#x435;&#x440;&#x435;&#x441;&#x435;&#x43A;&#x430;&#x44E;&#x442; host bridge &#x2014; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430;. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43E;&#x431;&#x435; &#x43F;&#x430;&#x440;&#x44B; &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;, &#x432;&#x435;&#x440;&#x43E;&#x44F;&#x442;&#x43D;&#x435;&#x435; &#x432;&#x441;&#x435;&#x433;&#x43E;, &#x432;&#x44B; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x438;&#x43B;&#x438; CPU scheduling, warm cache &#x438;&#x43B;&#x438; &#x438;&#x43D;&#x43E;&#x439; &#x441;&#x43B;&#x43E;&#x439;. &#x41F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x440;&#x435;&#x434;&#x43F;&#x43E;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C;&#x443;&#x44E; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443;.</p>
<p>&#x414;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; owner &#x438; &#x43A;&#x440;&#x438;&#x442;&#x435;&#x440;&#x438;&#x438;. Platform owner &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x437;&#x430; PCIe state, ML platform &#x2014; &#x437;&#x430; NCCL binary, service owner &#x2014; &#x437;&#x430; LLM probe. &#x421;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43F;&#x440;&#x438;&#x432;&#x43E;&#x434;&#x438;&#x442; &#x43A; &#x441;&#x438;&#x442;&#x443;&#x430;&#x446;&#x438;&#x438;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x430;&#x44F; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x432;&#x438;&#x434;&#x438;&#x442; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x44B;&#x439; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442;, &#x43D;&#x43E; &#x43D;&#x438;&#x43A;&#x442;&#x43E; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; end-to-end readiness.</p><div class="ks-widget" id="ks-sel-acs8fd2"><h3>&#x427;&#x442;&#x43E; &#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x441; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;&#x43D;&#x44B;&#x43C; ACS?</h3><label>&#x420;&#x43E;&#x43B;&#x44C; &#x443;&#x437;&#x43B;&#x430;</label><select data-s><option value="bare">&#x412;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; bare metal</option><option value="vm">GPU passthrough &#x432; VM</option><option value="unknown">&#x420;&#x43E;&#x43B;&#x44C; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x435;&#x43D;&#x430;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-acs8fd2');if(!r)return;var m={"bare":"Сопоставьте ACS bridge с нужной GPU-парой и меняйте только его в maintenance window.","vm":"Не отключайте ACS как тюнинг: он участвует в изоляции. Проверяйте поддерживаемый ATS/passthrough path.","unknown":"Стоп. Назначьте owner и зафиксируйте требования изоляции до изменения PCIe control plane."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-03-ae204726.webp" class="kg-image" alt="PCIe ACS &#x438; P2P DMA &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-03-ae204726.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-03-ae204726.webp 1000w, https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-03-ae204726.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="iommu-boundary">Bare metal &#x438; VM: &#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443; &#x43E;&#x434;&#x438;&#x43D; &#x440;&#x435;&#x446;&#x435;&#x43F;&#x442; &#x43E;&#x43F;&#x430;&#x441;&#x435;&#x43D;</h2>
<p>&#x421;&#x430;&#x43C;&#x430;&#x44F; &#x434;&#x43E;&#x440;&#x43E;&#x433;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x2014; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x435;&#x441;&#x442;&#x438; bare-metal &#x441;&#x43E;&#x432;&#x435;&#x442; &#x43D;&#x430; hypervisor. &#x412; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; CUDA/NCCL translated IOMMU &#x43D;&#x430; Linux bare metal &#x443;&#x43A;&#x430;&#x437;&#x430;&#x43D; &#x43A;&#x430;&#x43A; &#x43D;&#x435;&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x44B;&#x439; &#x441; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x43C; PCIe peer path NVIDIA; &#x434;&#x43B;&#x44F; VM, &#x43D;&#x430;&#x43F;&#x440;&#x43E;&#x442;&#x438;&#x432;, IOMMU &#x438; ACS &#x43E;&#x431;&#x435;&#x441;&#x43F;&#x435;&#x447;&#x438;&#x432;&#x430;&#x44E;&#x442; isolation, &#x430; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E;&#x439; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x438; ATS &#x438; passthrough.</p>
<p>&#x41F;&#x435;&#x440;&#x432;&#x43E;&#x435; &#x43F;&#x43E;&#x43B;&#x435; change request &#x2014; &#x440;&#x43E;&#x43B;&#x44C; &#x445;&#x43E;&#x441;&#x442;&#x430;: dedicated bare metal, hypervisor, guest &#x438;&#x43B;&#x438; container &#x43D;&#x430; bare metal. &#x41A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440; &#x43D;&#x435; &#x440;&#x430;&#x432;&#x435;&#x43D; VM, &#x43D;&#x43E; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44C; sysfs &#x438; devices. &#x413;&#x438;&#x43F;&#x435;&#x440;&#x432;&#x438;&#x437;&#x43E;&#x440; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; trust boundary; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; ACS &#x442;&#x430;&#x43C; &#x43D;&#x435; &#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x44B;&#x43C; performance experiment.</p>
<p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; <code>/proc/cmdline</code> &#x438; kernel messages &#x43E; IOMMU/default domain. &#x424;&#x43E;&#x440;&#x43C;&#x443;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x43A;&#x438; &#x437;&#x430;&#x432;&#x438;&#x441;&#x44F;&#x442; &#x43E;&#x442; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B; &#x438; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; &#x44F;&#x434;&#x440;&#x430;. &#x412;&#x44B; &#x438;&#x449;&#x435;&#x442;&#x435; effective state &#x434;&#x43B;&#x44F; GPU path, &#x430; &#x43D;&#x435; &#x43E;&#x434;&#x43D;&#x443; &#x43C;&#x430;&#x433;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x443;&#x44E; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x443;. Intel DMAR/VT-d &#x438; AMD-Vi &#x442;&#x440;&#x435;&#x431;&#x443;&#x44E;&#x442; platform-specific &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x438; vendor guidance.</p>
<p>Owner bare-metal change &#x2014; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x435;&#x446; GPU pool &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; firmware/platform owner. Owner VM path &#x2014; virtualization &#x438; security teams. Stop condition &#x2014; &#x43D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x430;&#x44F; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x442; passthrough &#x438;&#x43B;&#x438; DMA isolation. &#x41C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/vfio-iommu-gpu-passthrough-llm-vm/">VFIO &#x438; IOMMU &#x434;&#x43B;&#x44F; GPU passthrough</a> &#x43F;&#x43E;&#x434;&#x440;&#x43E;&#x431;&#x43D;&#x435;&#x435; &#x440;&#x430;&#x437;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; &#x441;&#x440;&#x435;&#x434;&#x443;, &#x433;&#x434;&#x435; isolation &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435; bare-metal &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x43E;&#x433;&#x43E; &#x43F;&#x443;&#x442;&#x438;.</p>
<p>&#x415;&#x441;&#x43B;&#x438; &#x443;&#x437;&#x435;&#x43B; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x439; LLM workload &#x438; &#x43D;&#x435;&#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x435; devices, &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x435; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x440;&#x43E;&#x43B;&#x435;&#x439;. &#x41D;&#x438;&#x437;&#x43A;&#x43E;&#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435;&#x432;&#x430;&#x44F; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x442;&#x44C; mixed-tenant &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x443; &#x432; &#x43D;&#x435;&#x44F;&#x432;&#x43D;&#x44B;&#x439; dedicated host.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-04-1726ab3a.webp" class="kg-image" alt="PCIe ACS &#x438; P2P DMA &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-04-1726ab3a.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-04-1726ab3a.webp 1000w, https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-04-1726ab3a.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="rollout-gates">&#x41C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435;: &#x43E;&#x434;&#x438;&#x43D; canary &#x438; &#x43E;&#x434;&#x438;&#x43D; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x44B;&#x439; bridge</h2>
<p>&#x41A;&#x43E;&#x433;&#x434;&#x430; evidence &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; bare-metal &#x440;&#x43E;&#x43B;&#x44C;, &#x43D;&#x443;&#x436;&#x43D;&#x443;&#x44E; GPU-&#x43F;&#x430;&#x440;&#x443; &#x43F;&#x43E;&#x434; ACS-enabled switch &#x438; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;, &#x432;&#x44B;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; canary. &#x412;&#x44B;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x438;&#x437; scheduler, &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; GPU workloads &#x438; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x44B;&#x439; ACS word &#x434;&#x43B;&#x44F; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; &#x437;&#x430;&#x442;&#x440;&#x430;&#x433;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x43E;&#x433;&#x43E; BDF. &#x41D;&#x435; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x446;&#x438;&#x43A;&#x43B; &#x43A;&#x43E; &#x432;&#x441;&#x435;&#x43C; PCI devices: &#x443;&#x434;&#x43E;&#x431;&#x441;&#x442;&#x432;&#x43E; &#x43D;&#x435; &#x43E;&#x43F;&#x440;&#x430;&#x432;&#x434;&#x44B;&#x432;&#x430;&#x435;&#x442; blast radius.</p>
<p>&#x414;&#x43B;&#x44F; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x43E;&#x433;&#x43E; PLX bridge NCCL &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x44C; &#x43D;&#x443;&#x43B;&#x435;&#x432;&#x43E;&#x433;&#x43E; control word &#x447;&#x435;&#x440;&#x435;&#x437; <code>setpci</code>. &#x421;&#x447;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; &#x44D;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;&#x43E;&#x43C; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x430;. &#x41D;&#x430; &#x447;&#x430;&#x441;&#x442;&#x438; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C; &#x443;&#x441;&#x442;&#x43E;&#x439;&#x447;&#x438;&#x432;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x2014; BIOS option; runtime write &#x438;&#x441;&#x447;&#x435;&#x437;&#x43D;&#x435;&#x442; &#x43F;&#x43E;&#x441;&#x43B;&#x435; reboot. Firmware update &#x442;&#x430;&#x43A;&#x436;&#x435; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x44C; topology.</p>
<p>&#x423; change gate &#x442;&#x440;&#x438; &#x44D;&#x43B;&#x435;&#x43C;&#x435;&#x43D;&#x442;&#x430;. Owner &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x442; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x44C;. Evidence &#x2014; read-back &#x43F;&#x43B;&#x44E;&#x441; &#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x439; inventory GPU/NIC/NVMe. Stop condition &#x2014; &#x438;&#x441;&#x447;&#x435;&#x437; device, &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438;&#x441;&#x44C; IOMMU groups, &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x438;&#x441;&#x44C; AER/Xid, read-back &#x43D;&#x435; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x43B; &#x438;&#x43B;&#x438; management access &#x43D;&#x435;&#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x435;&#x43D;. &#x41F;&#x440;&#x438; stop &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; rollback &#x434;&#x43E; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430; NCCL.</p>
<p>&#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430;: bridge &#x432;&#x43D;&#x435; &#x43F;&#x443;&#x442;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x439; &#x43F;&#x430;&#x440;&#x44B; &#x43D;&#x435; &#x442;&#x440;&#x43E;&#x433;&#x430;&#x44E;&#x442;. &#x415;&#x441;&#x43B;&#x438; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x433;&#x43B;&#x43E;&#x431;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F; ACS, &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435;&#x441;&#x44C; &#x438; &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435;&#x441;&#x44C; &#x43A; &#x430;&#x440;&#x445;&#x438;&#x442;&#x435;&#x43A;&#x442;&#x443;&#x440;&#x435; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;. &#x412;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;, &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x442;&#x44C; GPU &#x43F;&#x43E;&#x434; &#x43E;&#x434;&#x43D;&#x438;&#x43C; switch &#x438;&#x43B;&#x438; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; dedicated chassis.</p>
<p>&#x414;&#x43B;&#x44F; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; fail-closed discovery: &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; GPU UUID, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x439; BDF &#x438; &#x440;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x438;&#x439; bridge, &#x437;&#x430;&#x442;&#x435;&#x43C; vendor/device ID &#x438; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x430;&#x44F; topology signature. &#x41B;&#x44E;&#x431;&#x43E;&#x435; &#x43D;&#x435;&#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442; unit &#x431;&#x435;&#x437; write. &#x416;&#x451;&#x441;&#x442;&#x43A;&#x43E; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x439; BDF &#x43F;&#x43E;&#x441;&#x43B;&#x435; firmware update &#x43E;&#x43F;&#x430;&#x441;&#x435;&#x43D;.</p><div class="ks-widget" id="ks-chk-roll5be"><h3>&#x413;&#x43E;&#x442;&#x43E;&#x432; &#x43B;&#x438; canary &#x43A; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44E;?</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B; GPU UUID &#x438; BDF</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B; lspci tree &#x438; ACSCtl</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x41F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D; bare-metal &#x440;&#x435;&#x436;&#x438;&#x43C;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x415;&#x441;&#x442;&#x44C; out-of-band &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x41D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x44B; owner &#x438; stop condition</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x41F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43B;&#x435;&#x43D; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x439; rollback</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-roll5be');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">change-one-bridge.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>set -euo pipefail
bridge=&quot;03:00.0&quot;   # &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x441; lspci -tv
before=$(sudo setpci -s &quot;$bridge&quot; ECAP_ACS+0x6.w)
printf &apos;%s %s
&apos; &quot;$bridge&quot; &quot;$before&quot; | sudo tee /var/tmp/acs-before.txt
sudo setpci -s &quot;$bridge&quot; ECAP_ACS+0x6.w=0000
after=$(sudo setpci -s &quot;$bridge&quot; ECAP_ACS+0x6.w)
printf &apos;ACSCtl word: before=%s after=%s
&apos; &quot;$before&quot; &quot;$after&quot;
test &quot;$after&quot; = &quot;0000&quot;</code></pre>
<div class="ks-canonical-code-block__caption">&#x422;&#x43E;&#x447;&#x435;&#x447;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440; &#x43F;&#x43E;&#x441;&#x43B;&#x435; vendor approval</div>
</div>
<figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-05-4b68394b.webp" class="kg-image" alt="PCIe ACS &#x438; P2P DMA &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-05-4b68394b.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-05-4b68394b.webp 1000w, https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-05-4b68394b.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="active-validation">Infrastructure gate: topology, active P2P &#x438; NCCL</h2>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x435; &#x436;&#x435; read-only &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; UUID&#x2194;BDF &#x438; PCIe tree: &#x43D;&#x438;&#x43A;&#x430;&#x43A;&#x43E;&#x439; device &#x43D;&#x435; &#x438;&#x441;&#x447;&#x435;&#x437;. &#x417;&#x430;&#x442;&#x435;&#x43C; ACSCtl/read-back &#x438; IOMMU state. &#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x432;&#x448;&#x435;&#x43C; inventory &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; P2P matrix; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43A;&#x430; &#x443;&#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x44F;&#x435;&#x442; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E; &#x441;&#x431;&#x43E;&#x44F;.</p>
<p>&#x421;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x443;&#x440;&#x43E;&#x432;&#x435;&#x43D;&#x44C; &#x2014; active transfer. &#x412; NCCL 2.31 &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x438;&#x441;&#x44C; opt-in active diagnostics, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x44E;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; directed P2P edges &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x447;&#x435;&#x439; &#x438; &#x432;&#x430;&#x43B;&#x438;&#x434;&#x430;&#x446;&#x438;&#x435;&#x439; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;. &#x42D;&#x442;&#x43E; &#x441;&#x432;&#x435;&#x436;&#x430;&#x44F; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C;, &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x451;&#x43D;&#x43D;&#x430;&#x44F; &#x43F;&#x43E; &#x443;&#x43C;&#x43E;&#x43B;&#x447;&#x430;&#x43D;&#x438;&#x44E;: &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x442;&#x43E;&#x447;&#x43D;&#x443;&#x44E; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E;. &#x414;&#x43B;&#x44F; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x445; &#x441;&#x442;&#x430;&#x440;&#x44B;&#x445; &#x441;&#x442;&#x435;&#x43A;&#x43E;&#x432; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; CUDA sample &#x438;&#x43B;&#x438; nccl-tests &#x438;&#x437; &#x441;&#x43E;&#x431;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; artifact registry.</p>
<p>&#x41F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; gate: &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; P2P edges &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x44F;&#x442; data check, collective &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x431;&#x435;&#x437; hang &#x438; &#x43D;&#x435;&#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; fallback. &#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;: &#x442;&#x43E;&#x442; &#x436;&#x435; binary &#x441; <code>NCCL_P2P_DISABLE=1</code>. &#x42D;&#x442;&#x43E; &#x43D;&#x435; production tuning, &#x430; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;. &#x415;&#x441;&#x43B;&#x438; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;, workload &#x43C;&#x43E;&#x433; &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; P2P &#x438;&#x43B;&#x438; bottleneck &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x432; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C; &#x43C;&#x435;&#x441;&#x442;&#x435;.</p>
<p><code>nvidia-smi topo</code> &#x438; <code>dcgmi topo</code> &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x44E;&#x442; &#x43E;&#x442;&#x43D;&#x43E;&#x448;&#x435;&#x43D;&#x438;&#x44F;, &#x43D;&#x43E; &#x43D;&#x435; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x438;&#x440;&#x443;&#x44E;&#x442; hardware &#x438; &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x44E;&#x442; bandwidth. &#x414;&#x43B;&#x44F; NVSwitch &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; control plane &#x432;&#x435;&#x434;&#x451;&#x442; Fabric Manager; &#x441;&#x43C;&#x435;&#x436;&#x43D;&#x44B;&#x439; runbook &#x2014; <a href="https://kingservers.com/blog/nvidia-fabric-manager-nvswitch-llm-runbook/">NVIDIA Fabric Manager &#x438; NVSwitch</a>. &#x41D;&#x435; &#x43F;&#x44B;&#x442;&#x430;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; PCIe ACS.</p>
<p>&#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x439;&#x442;&#x435; stdout, NCCL logs &#x438; exit codes &#x43A;&#x430;&#x43A; &#x435;&#x434;&#x438;&#x43D;&#x44B;&#x439; evidence set. &#x421;&#x440;&#x435;&#x434;&#x43D;&#x44F;&#x44F; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x44C; &#x431;&#x435;&#x437; correctness &#x438; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x430;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; data corruption &#x438; hang, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x439; performance comparison.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">validate-p2p-and-nccl.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>set -euo pipefail
nvidia-smi topo -m
nvidia-smi topo -p2p p

# &#x414;&#x43B;&#x44F; NCCL 2.31+: active diagnostics &#x44F;&#x432;&#x43B;&#x44F;&#x44E;&#x442;&#x441;&#x44F; opt-in
NCCL_RUN_DIAGNOSTICS=1 NCCL_DEBUG=INFO   ./all_reduce_perf -b 8M -e 256M -f 2 -g 4 | tee nccl-p2p-enabled.log

# &#x41A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;: &#x442;&#x435; &#x436;&#x435; binary &#x438; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B;, P2P &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x451;&#x43D;
NCCL_P2P_DISABLE=1 NCCL_DEBUG=INFO   ./all_reduce_perf -b 8M -e 256M -f 2 -g 4 | tee nccl-p2p-disabled.log</code></pre>
<div class="ks-canonical-code-block__caption">Active gate &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; P2P-&#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;</div>
</div>
<h2 id="application-proof">Application gate: &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43D;&#x430; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; LLM</h2>
<p>&#x418;&#x434;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; all-reduce &#x43D;&#x435; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x44F; LLM. Model-parallel layout &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x441;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x434;&#x440;&#x443;&#x433;&#x438;&#x435; GPU-&#x43F;&#x430;&#x440;&#x44B;, CPU affinity &#x2014; &#x437;&#x430;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; input pipeline &#x43F;&#x435;&#x440;&#x435;&#x441;&#x435;&#x43A;&#x430;&#x442;&#x44C; NUMA, batching &#x2014; &#x441;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x43C;&#x435;&#x436;GPU &#x437;&#x430;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443;. Application gate &#x438;&#x434;&#x451;&#x442; &#x43F;&#x43E;&#x441;&#x43B;&#x435; infrastructure gate, &#x43D;&#x43E; &#x43E;&#x446;&#x435;&#x43D;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;.</p>
<p>&#x417;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x435; model revision, tokenizer, engine image, tensor-parallel size, &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;, concurrency &#x438; warmup. &#x421;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435; readiness, &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; communicator, latency distribution &#x438; useful throughput. &#x41D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; batch size &#x43C;&#x435;&#x436;&#x434;&#x443; &#xAB;&#x434;&#x43E;&#xBB; &#x438; &#xAB;&#x43F;&#x43E;&#x441;&#x43B;&#x435;&#xBB;. &#x415;&#x441;&#x43B;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x43D;&#x435; &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x44D;&#x442;&#x43E; FAIL &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x43E; &#x43E;&#x442; nccl-tests.</p>
<p>&#x411;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442; &#x2014; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; P2P &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x434;&#x43B;&#x44F; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430;, &#x430; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x439; launcher. &#x415;&#x441;&#x43B;&#x438; application metric &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x443;&#x44E; &#x441;&#x442;&#x43E;&#x440;&#x43E;&#x43D;&#x443; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x440;&#x438; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43D;&#x43E;&#x43C; P2P, attribution &#x443;&#x441;&#x438;&#x43B;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F;. &#x415;&#x441;&#x43B;&#x438; &#x43D;&#x435;&#x442;, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441; bottleneck &#x43D;&#x430; CPU, storage, memory pressure &#x438;&#x43B;&#x438; network.</p>
<p>&#x41D;&#x435; &#x444;&#x43E;&#x440;&#x43C;&#x443;&#x43B;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#xAB;&#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; ACS &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x44F;&#x435;&#x442; LLM&#xBB; &#x43A;&#x430;&#x43A; &#x43E;&#x431;&#x449;&#x435;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x43E;. &#x417;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x43C;&#x44B;&#x439; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x437;&#x432;&#x443;&#x447;&#x438;&#x442; &#x442;&#x43E;&#x447;&#x43D;&#x435;&#x435;: &#x43D;&#x430; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x43C; hardware/firmware/software baseline &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D; direct path &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x44B;&#x445; GPU-&#x43F;&#x430;&#x440;, collective &#x43F;&#x440;&#x43E;&#x448;&#x451;&#x43B;, &#x430; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; workload &#x432;&#x435;&#x440;&#x43D;&#x443;&#x43B;&#x441;&#x44F; &#x43A; &#x441;&#x432;&#x43E;&#x435;&#x43C;&#x443; &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D;&#x443;.</p>
<p>&#x41F;&#x440;&#x438; Xid &#x438;&#x43B;&#x438; AER stop condition &#x441;&#x440;&#x430;&#x431;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43D;&#x435;&#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;. &#x42D;&#x442;&#x43E; &#x443;&#x436;&#x435; incident response, &#x430; &#x43D;&#x435; performance change. &#x418;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; runbook &#x43F;&#x43E; <a href="https://kingservers.com/blog/nvidia-xid-gpu-incident-response/">&#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430;&#x43C; NVIDIA Xid</a>, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43D;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x44B;&#x439; &#x441;&#x431;&#x43E;&#x439; &#x441; &#x43C;&#x430;&#x440;&#x448;&#x440;&#x443;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x435;&#x439;.</p><div class="ks-widget" id="ks-tab-app4d91"><h3>&#x413;&#x434;&#x435; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43F;&#x440;&#x438; &#x440;&#x430;&#x441;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x438; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;?</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="p2p">P2P FAIL</button><button type="button" class="tab-btn" data-t="nccl">NCCL FAIL</button><button type="button" class="tab-btn" data-t="llm">LLM FAIL</button></div><div class="panel on" data-p="p2p">&#x41D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x435; &#x43A; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44E;: &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x435;&#x449;&#x451; &#x432; topology, IOMMU, ACS &#x438;&#x43B;&#x438; driver path.</div><div class="panel" data-p="nccl">&#x414;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x435;&#x441;&#x442;&#x44C;, &#x43D;&#x43E; collective path &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;. &#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; transport logs &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A; &#x431;&#x435;&#x437; P2P.</div><div class="panel" data-p="llm">Infrastructure gate &#x43F;&#x440;&#x43E;&#x439;&#x434;&#x435;&#x43D;. &#x418;&#x449;&#x438;&#x442;&#x435; model-parallel layout, CPU affinity, storage &#x438;&#x43B;&#x438; memory pressure.</div><script>(function(){var r=document.getElementById('ks-tab-app4d91');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-06-250ba031.webp" class="kg-image" alt="PCIe ACS &#x438; P2P DMA &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-06-250ba031.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-06-250ba031.webp 1000w, https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-06-250ba031.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="failure-modes">&#x427;&#x442;&#x43E; &#x447;&#x430;&#x449;&#x435; &#x432;&#x441;&#x435;&#x433;&#x43E; &#x43B;&#x43E;&#x43C;&#x430;&#x435;&#x442; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; &#x432;&#x44B;&#x432;&#x43E;&#x434;</h2>
<p>&#x41F;&#x435;&#x440;&#x432;&#x430;&#x44F; &#x43B;&#x43E;&#x432;&#x443;&#x448;&#x43A;&#x430; &#x2014; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x44C; &#x445;&#x43E;&#x43B;&#x43E;&#x434;&#x43D;&#x44B;&#x439; baseline &#x441; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x435;&#x442;&#x44B;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x43E;&#x43C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; change. &#x41C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; weights, filesystem cache, JIT &#x438; allocator state &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x44C; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x443;&#x44E; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x434;&#x443;&#x440;&#x443;. &#x418;&#x43D;&#x430;&#x447;&#x435; PCIe &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x435;&#x442; &#x447;&#x443;&#x436;&#x443;&#x44E; &#x437;&#x430;&#x441;&#x43B;&#x443;&#x433;&#x443;.</p>
<p>&#x412;&#x442;&#x43E;&#x440;&#x430;&#x44F; &#x2014; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x435; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441;&#x44B; GPU. &#x418;&#x43D;&#x434;&#x435;&#x43A;&#x441; &#x43D;&#x435; &#x440;&#x430;&#x432;&#x435;&#x43D; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x439; &#x431;&#x43B;&#x438;&#x437;&#x43E;&#x441;&#x442;&#x438; &#x438; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; reboot. &#x420;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x439;&#x442;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; UUID/BDF &#x438; directed pairs. &#x422;&#x440;&#x435;&#x442;&#x44C;&#x44F; &#x2014; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; <code>SrcValid+</code> &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x44B;&#x43C; &#x43E;&#x431;&#x432;&#x438;&#x43D;&#x435;&#x43D;&#x438;&#x435;&#x43C;. &#x41D;&#x443;&#x436;&#x43D;&#x44B; parent bridge, control bits &#x438; active test.</p>
<p>&#x427;&#x435;&#x442;&#x432;&#x451;&#x440;&#x442;&#x430;&#x44F; &#x2014; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; global kernel override &#x440;&#x430;&#x434;&#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; canary. &#x41E;&#x43D; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; semantics &#x448;&#x438;&#x440;&#x435; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x440;&#x44B; &#x438; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x43E;&#x441;&#x43B;&#x430;&#x431;&#x438;&#x442;&#x44C; isolation. &#x41F;&#x44F;&#x442;&#x430;&#x44F; &#x2014; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x44C; production &#x441; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x43E;&#x439; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;&#x439; <code>NCCL_P2P_DISABLE</code>; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x436;&#x438;&#x442;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; launcher &#x438; &#x438;&#x43C;&#x435;&#x442;&#x44C; time limit.</p>
<p>&#x428;&#x435;&#x441;&#x442;&#x430;&#x44F; &#x2014; &#x441;&#x43B;&#x435;&#x434;&#x438;&#x442;&#x44C; &#x43B;&#x438;&#x448;&#x44C; &#x437;&#x430; throughput. P2P-&#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x442;&#x44C;&#x441;&#x44F; &#x445;&#x432;&#x43E;&#x441;&#x442;&#x43E;&#x43C; latency, &#x437;&#x430;&#x432;&#x438;&#x441;&#x430;&#x43D;&#x438;&#x435;&#x43C; communicator &#x438;&#x43B;&#x438; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x43E;&#x439; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;. &#x421;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x439;&#x442;&#x435; correctness, readiness, p95/p99 &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x432;&#x430;&#x448;&#x435;&#x433;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x43E;&#x43D;&#x442;&#x443;&#x440;&#x430;, error rate &#x438; resource counters, &#x43D;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x439;&#x442;&#x435; &#x447;&#x443;&#x436;&#x438;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x43F;&#x43E;&#x440;&#x43E;&#x433;&#x438;.</p>
<p>&#x41D;&#x430;&#x43A;&#x43E;&#x43D;&#x435;&#x446;, &#x43D;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; remediation &#x438; architecture. &#x415;&#x441;&#x43B;&#x438; topology &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x435;&#x43A;&#x430;&#x435;&#x442; root complexes, ACS write &#x43D;&#x435; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x442;&#x438;&#x442; &#x435;&#x451; &#x432; one-switch path. &#x418;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x2014; &#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x43A; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C;&#x443; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x449;&#x435;&#x43D;&#x438;&#x44E; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x435;&#x439; &#x438;&#x43B;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x435;.</p><h2 id="rollback">&#x421;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x439; rollback &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x430;&#x44F; &#x441;&#x435;&#x440;&#x442;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x439;</h2>
<p>Rollback &#x2014; &#x43D;&#x435; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x430;&#x44F; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430;, &#x430; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x44F;. &#x412;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x44B;&#x439; ACS word &#x438;&#x43B;&#x438; BIOS option, &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x439; reboot, &#x437;&#x430;&#x43D;&#x43E;&#x432;&#x43E; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; UUID/BDF, &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; topology, P2P, NCCL &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; LLM probe. &#x415;&#x441;&#x43B;&#x438; configuration &#x432;&#x435;&#x440;&#x43D;&#x443;&#x43B;&#x430;&#x441;&#x44C;, &#x430; application baseline &#x43D;&#x435;&#x442;, rollback &#x43D;&#x435; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D;.</p>
<p>Startup automation &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x43C; BDF. &#x41F;&#x43E;&#x441;&#x43B;&#x435; firmware update &#x430;&#x434;&#x440;&#x435;&#x441; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x440;&#x438;&#x43D;&#x430;&#x434;&#x43B;&#x435;&#x436;&#x430;&#x442;&#x44C; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C;&#x443; bridge. &#x423;&#x441;&#x442;&#x43E;&#x439;&#x447;&#x438;&#x432;&#x44B;&#x439; unit &#x432;&#x44B;&#x447;&#x438;&#x441;&#x43B;&#x44F;&#x435;&#x442; &#x43F;&#x443;&#x442;&#x44C; &#x437;&#x430;&#x43D;&#x43E;&#x432;&#x43E;, &#x441;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; vendor/device IDs &#x438; topology signature, &#x430; &#x43F;&#x440;&#x438; &#x43D;&#x435;&#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x438; &#x43F;&#x440;&#x435;&#x43A;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x443; &#x431;&#x435;&#x437; write.</p>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; BIOS, firmware, kernel &#x438;&#x43B;&#x438; driver update evidence &#x441;&#x447;&#x438;&#x442;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x443;&#x441;&#x442;&#x430;&#x440;&#x435;&#x432;&#x448;&#x438;&#x43C;. Canary &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x442;&#x43E;&#x442; &#x436;&#x435; gate sequence; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x437;&#x43E;&#x43B;&#x43E;&#x442;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x437;. &#x42D;&#x442;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x435;&#x442; versioned proof &#x438; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; regression &#x432;&#x438;&#x434;&#x438;&#x43C;&#x43E;&#x439;, &#x430; &#x43D;&#x435; &#x441;&#x43F;&#x440;&#x44F;&#x442;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x432; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x43E;&#x43C; workload.</p>
<p>Owner &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; change ticket &#x43B;&#x438;&#x448;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430; &#x443;&#x437;&#x43B;&#x430; &#x432; scheduler &#x438; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;&#x433;&#x43E; service readiness. Security/virtualization owner &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; isolation assumptions &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438;&#x441;&#x44C;. &#x414;&#x43B;&#x44F; &#x430;&#x440;&#x435;&#x43D;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; dedicated GPU &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x443; &#x43F;&#x440;&#x43E;&#x432;&#x430;&#x439;&#x434;&#x435;&#x440;&#x430; topology &#x438; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x435; firmware options &#x434;&#x43E; &#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;.</p>
<p>&#x425;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x443;&#x44E; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x44C;: &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x430;, &#x437;&#x430;&#x442;&#x440;&#x43E;&#x43D;&#x443;&#x442;&#x44B;&#x435; BDF, before/after control word, &#x432;&#x435;&#x440;&#x441;&#x438;&#x438;, &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x438; &#x43D;&#x430; evidence, &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44F;. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x436;&#x443;&#x440;&#x43D;&#x430;&#x43B; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x435;&#x435; &#x43D;&#x430;&#x431;&#x43E;&#x440;&#x430; &#xAB;&#x43C;&#x430;&#x433;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x445;&#xBB; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434; &#x431;&#x435;&#x437; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;&#x430;.</p><div class="ks-widget" id="ks-sel-back3c7"><h3>&#x41A;&#x43E;&#x433;&#x434;&#x430; rollback &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D;?</h3><label>&#x427;&#x442;&#x43E; &#x443;&#x436;&#x435; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x43E;</label><select data-s><option value="config">&#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;</option><option value="infra">&#x41A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x438; P2P/NCCL</option><option value="app">&#x412;&#x441;&#x435; gates &#x438; LLM baseline</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-back3c7');if(!r)return;var m={"config":"Это действие, а не результат. Узел ещё нельзя возвращать в пул.","infra":"Аппаратный путь восстановлен, но нужен тот же application probe.","app":"Rollback закрыт, если settings, inventory, P2P/NCCL и LLM-показатели вернулись к baseline."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-07-0e2d45ef.webp" class="kg-image" alt="PCIe ACS &#x438; P2P DMA &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-07-0e2d45ef.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-07-0e2d45ef.webp 1000w, https://kingservers.com/blog/content/images/2026/08/pcie-acs-p2p-dma-multi-gpu-llm-inline-07-0e2d45ef.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="conclusion">&#x412;&#x44B;&#x432;&#x43E;&#x434;: &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; P2P-&#x43F;&#x443;&#x442;&#x44C; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x446;&#x435;&#x43F;&#x43E;&#x447;&#x43A;&#x43E;&#x439; gates</h2>
<p>PCIe ACS &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x43C;&#x435;&#x448;&#x430;&#x442;&#x44C; multi-GPU P2P, &#x43D;&#x43E; &#x43B;&#x435;&#x447;&#x438;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43A;&#x430;&#x43A; control-plane change. Topology &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x433;&#x434;&#x435; &#x438;&#x441;&#x43A;&#x430;&#x442;&#x44C;; ACSCtl &#x438; IOMMU &#x2014; effective state; active P2P/NCCL &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x439; LLM workload &#x2014; &#x43F;&#x440;&#x438;&#x43A;&#x43B;&#x430;&#x434;&#x43D;&#x43E;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;. &#x41F;&#x440;&#x43E;&#x43F;&#x443;&#x441;&#x43A; &#x437;&#x432;&#x435;&#x43D;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;&#x434;&#x43E;&#x43F;&#x43E;&#x434;&#x43E;&#x431;&#x43D;&#x443;&#x44E;, &#x43D;&#x43E; &#x43D;&#x435;&#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43D;&#x443;&#x44E; &#x438;&#x441;&#x442;&#x43E;&#x440;&#x438;&#x44E;.</p>
<p>&#x414;&#x43B;&#x44F; bare-metal canary &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x443;&#x439;&#x442;&#x435; &#x443;&#x437;&#x43A;&#x43E;: evidence bundle, &#x43E;&#x434;&#x43D;&#x430; GPU-&#x43F;&#x430;&#x440;&#x430;, &#x43E;&#x434;&#x438;&#x43D; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x44B;&#x439; bridge, read-back, infrastructure gate, application gate &#x438; &#x442;&#x435; &#x436;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x432; rollback. &#x414;&#x43B;&#x44F; VM &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; bare-metal &#x440;&#x435;&#x446;&#x435;&#x43F;&#x442;: ACS &#x438; IOMMU &#x44F;&#x432;&#x43B;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x447;&#x430;&#x441;&#x442;&#x44C;&#x44E; isolation, &#x43E;&#x43F;&#x442;&#x438;&#x43C;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x438;&#x434;&#x451;&#x442; &#x447;&#x435;&#x440;&#x435;&#x437; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x439; passthrough/ATS path.</p>
<p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; read-only &#x447;&#x430;&#x441;&#x442;&#x438; &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x443;&#x437;&#x43B;&#x435;. &#x41F;&#x43E; PCIe tree, ACSCtl, IOMMU state &#x438; P2P matrix &#x441;&#x442;&#x430;&#x43D;&#x435;&#x442; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x43E;, &#x435;&#x441;&#x442;&#x44C; &#x43B;&#x438; &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x442;&#x44C; maintenance window. &#x41D;&#x435; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442;&#x441;&#x44F; &#x440;&#x438;&#x441;&#x43A;&#x43E;&#x432;&#x430;&#x442;&#x44C; production, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x43E;&#x442;&#x432;&#x435;&#x442;.</p>
<p>&#x415;&#x441;&#x43B;&#x438; &#x43D;&#x443;&#x436;&#x43D;&#x430; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x430; &#x441; &#x43F;&#x440;&#x435;&#x434;&#x441;&#x43A;&#x430;&#x437;&#x443;&#x435;&#x43C;&#x43E;&#x439; multi-GPU topology, &#x43E;&#x431;&#x441;&#x443;&#x434;&#x438;&#x442;&#x435; &#x441; King Servers &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x435; GPU-&#x43F;&#x430;&#x440;&#x44B;, switches, firmware mode &#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x438; &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x430; LLM. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x430;&#x44F; &#x441;&#x445;&#x435;&#x43C;&#x430; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x43C; &#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435;&#x43C;, &#x430; &#x43D;&#x435; &#x441;&#x44E;&#x440;&#x43F;&#x440;&#x438;&#x437;&#x43E;&#x43C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;. &#x421;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x448;&#x430;&#x433; &#x43F;&#x440;&#x43E;&#x441;&#x442;: &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; baseline &#x441;&#x435;&#x433;&#x43E;&#x434;&#x43D;&#x44F;, &#x43F;&#x43E;&#x43A;&#x430; &#x443;&#x437;&#x435;&#x43B; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442; &#x441;&#x43F;&#x43E;&#x43A;&#x43E;&#x439;&#x43D;&#x43E;, &#x438; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x442;&#x438;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x432; canary gate &#x434;&#x43B;&#x44F; &#x431;&#x443;&#x434;&#x443;&#x449;&#x438;&#x445; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x439;.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[Resizable BAR и Above 4G для multi-GPU LLM: production-runbook]]></title><description><![CDATA[Как проверить Above 4G Decoding, Resizable BAR и NVIDIA BAR1 на multi-GPU сервере: evidence bundle, PCIe/CUDA gates, LLM readiness и безопасный rollback.]]></description><link>https://kingservers.com/blog/resizable-bar-above-4g-multi-gpu-llm/</link><guid isPermaLink="false">6a9588d6aff2afac25354bfd</guid><category><![CDATA[GPU]]></category><category><![CDATA[Инфраструктура]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Mon, 31 Aug 2026 15:21:52 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/08/resizable-bar-multi-gpu-llm-hero-f8f8df8d.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#rebar-bar1-above-4g">Resizable BAR, BAR1 &#x438; Above 4G Decoding: &#x442;&#x440;&#x438; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x438;&#x44F;</a></li>
<li><a href="#symptom-and-baseline">&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C; &#x438; &#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x43C;&#x44B;&#x439; baseline</a></li>
<li><a href="#evidence-bundle">&#x421;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; evidence bundle &#x434;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; firmware</a></li>
<li><a href="#linux-pcie-map">&#x41F;&#x440;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; &#x43A;&#x430;&#x440;&#x442;&#x443; BAR &#x432; Linux, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; BIOS-&#x433;&#x430;&#x43B;&#x43E;&#x447;&#x43A;&#x438;</a></li>
<li><a href="#driver-bar1-gate">Driver gate: GPU &#x43F;&#x435;&#x440;&#x435;&#x447;&#x438;&#x441;&#x43B;&#x435;&#x43D;, BAR1 &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D;, &#x43D;&#x43E;&#x432;&#x44B;&#x445; NVRM &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A; &#x43D;&#x435;&#x442;</a></li>
<li><a href="#firmware-change">&#x41C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; Above 4G &#x438; ReBAR &#x43A;&#x430;&#x43A; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x44B;&#x439; rollout</a></li>
<li><a href="#cuda-p2p-gate">CUDA gate: &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; GPU &#x438; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; P2P-&#x43C;&#x430;&#x442;&#x440;&#x438;&#x446;&#x430;</a></li>
<li><a href="#llm-application-gate">Application gate: &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; readiness LLM, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x44C;&#x435; GPU</a></li>
<li><a href="#rollout-rollback">Rollout, stop conditions &#x438; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x439; rollback</a></li>
<li><a href="#common-mistakes">&#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x438; &#x43A;&#x443;&#x434;&#x430; &#x43C;&#x438;&#x433;&#x440;&#x438;&#x440;&#x443;&#x435;&#x442; bottleneck</a></li>
<li><a href="#automation-and-acceptance">&#x410;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; acceptance, &#x43D;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; firmware &#x43F;&#x43E;&#x434; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x435;&#x43C; &#x447;&#x435;&#x43B;&#x43E;&#x432;&#x435;&#x43A;&#x430;</a></li>
<li><a href="#conclusion">&#x412;&#x44B;&#x432;&#x43E;&#x434;: &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x430;&#x434;&#x440;&#x435;&#x441;&#x43D;&#x43E;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x43E;, &#x43F;&#x43E;&#x442;&#x43E;&#x43C; CUDA, &#x437;&#x430;&#x442;&#x435;&#x43C; LLM</a></li>
</ul></div>

</div>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; BIOS &#x441;&#x435;&#x440;&#x432;&#x435;&#x440; &#x432;&#x438;&#x434;&#x438;&#x442; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x442;&#x440;&#x438; GPU &#x438;&#x437; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x451;&#x445;, &#x445;&#x43E;&#x442;&#x44F; &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x435;, &#x440;&#x430;&#x439;&#x437;&#x435;&#x440;&#x44B; &#x438; &#x441;&#x430;&#x43C;&#x438; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x438; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43D;&#x44B;. &#x412; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C; &#x443;&#x437;&#x43B;&#x435; &#x432;&#x441;&#x435; &#x43A;&#x430;&#x440;&#x442;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x447;&#x438;&#x441;&#x43B;&#x44F;&#x44E;&#x442;&#x441;&#x44F;, &#x43D;&#x43E; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#x43F;&#x438;&#x448;&#x435;&#x442; &#x43E; &#x43D;&#x435;&#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x438;&#x442;&#x44C; PCIe resource, &#x430; LLM-&#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x435;&#x449;&#x451; &#x434;&#x43E; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x432;&#x435;&#x441;&#x43E;&#x432;. &#x427;&#x430;&#x441;&#x442;&#x430;&#x44F; &#x440;&#x435;&#x430;&#x43A;&#x446;&#x438;&#x44F; &#x2014; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; Resizable BAR &#x438; &#x436;&#x434;&#x430;&#x442;&#x44C; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x44F;, &#x43E;&#x434;&#x43D;&#x430;&#x43A;&#x43E; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x443;&#x442;&#x430;&#x442;&#x44C; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x430;&#x434;&#x440;&#x435;&#x441;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x430; &#x441; &#x442;&#x44E;&#x43D;&#x438;&#x43D;&#x433;&#x43E;&#x43C; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438;. &#x41D;&#x438;&#x436;&#x435; &#x2014; production-runbook, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x44C; 64-&#x431;&#x438;&#x442;&#x43D;&#x43E;&#x433;&#x43E; MMIO &#x438; BAR1, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; CUDA/P2P &#x438; &#x43B;&#x438;&#x448;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442; inference &#x432; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x443;.<div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <img src="https://kingservers.com/blog/content/images/2026/08/resizable-bar-multi-gpu-llm-hero-f8f8df8d.webp" alt="Resizable BAR &#x438; Above 4G &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook"><p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="rebar-bar1-above-4g">Resizable BAR, BAR1 &#x438; Above 4G Decoding: &#x442;&#x440;&#x438; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x438;&#x44F;</h2>
<p><strong>Above 4G Decoding</strong> &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x430;&#x435;&#x442; firmware &#x440;&#x430;&#x437;&#x43C;&#x435;&#x449;&#x430;&#x442;&#x44C; 64-&#x431;&#x438;&#x442;&#x43D;&#x44B;&#x435; PCIe memory resources &#x432;&#x44B;&#x448;&#x435; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; 4 &#x413;&#x411;. &#x42D;&#x442;&#x43E; &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x43E; &#x434;&#x43B;&#x44F; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x441; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x438;&#x43C;&#x438; GPU, &#x431;&#x44B;&#x441;&#x442;&#x440;&#x44B;&#x43C;&#x438; NIC &#x438; NVMe: &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C;&#x443; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x443; &#x43D;&#x443;&#x436;&#x43D;&#x44B; BAR &#x438; &#x43E;&#x43A;&#x43D;&#x430; &#x43C;&#x43E;&#x441;&#x442;&#x43E;&#x432;, &#x430; &#x441;&#x443;&#x43C;&#x43C;&#x430;&#x440;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x451;&#x442; &#x43F;&#x43E;&#x43C;&#x435;&#x449;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x432; &#x43D;&#x438;&#x437;&#x43A;&#x43E;&#x43C; &#x430;&#x434;&#x440;&#x435;&#x441;&#x43D;&#x43E;&#x43C; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x435;. &#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; &#x43D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; GPU &#x431;&#x44B;&#x441;&#x442;&#x440;&#x435;&#x435; &#x441;&#x430;&#x43C;&#x430; &#x43F;&#x43E; &#x441;&#x435;&#x431;&#x435;; &#x43E;&#x43D;&#x430; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x43E;, &#x432; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x43C; firmware &#x438; &#x41E;&#x421; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E; &#x440;&#x430;&#x437;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x44C; &#x440;&#x435;&#x441;&#x443;&#x440;&#x441;&#x44B;.</p><p><strong>Resizable BAR</strong> &#x2014; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C; PCIe: &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x430;&#x435;&#x442; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x445; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;&#x43E;&#x432; BAR, &#x430; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x430; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; &#x43E;&#x434;&#x438;&#x43D; &#x438;&#x437; &#x43D;&#x438;&#x445;. &#x412; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; Linux kernel &#x434;&#x43B;&#x44F; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x435;&#x441;&#x442;&#x44C; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;&#x44B; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x44B;&#x445; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;&#x43E;&#x432; &#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; resource; &#x441;&#x430;&#x43C; &#x444;&#x430;&#x43A;&#x442; &#x43D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x44F; capability &#x43D;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; firmware &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43B;&#x430; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E; &#x438;&#x43B;&#x438; &#x447;&#x442;&#x43E; &#x44D;&#x442;&#x43E; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x43C;&#x443; workload. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x444;&#x440;&#x430;&#x437;&#x430; &#xAB;ReBAR &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x451;&#x43D;&#xBB; &#x431;&#x435;&#x437; &#x432;&#x44B;&#x432;&#x43E;&#x434;&#x430; lspci &#x438; resource map &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x43D;&#x438;&#x447;&#x435;&#x433;&#x43E; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;.</p><p><strong>BAR1</strong> &#x432; &#x442;&#x435;&#x440;&#x43C;&#x438;&#x43D;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x438; NVIDIA &#x2014; &#x43E;&#x43A;&#x43D;&#x43E;, &#x447;&#x435;&#x440;&#x435;&#x437; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x435; &#x447;&#x430;&#x441;&#x442;&#x44C; framebuffer memory GPU &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x442;&#x43E;&#x431;&#x440;&#x430;&#x436;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x434;&#x43B;&#x44F; CPU &#x438;&#x43B;&#x438; &#x441;&#x442;&#x43E;&#x440;&#x43E;&#x43D;&#x43D;&#x438;&#x445; PCIe devices. &#x415;&#x433;&#x43E; total/used/free &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; <a href="https://docs.nvidia.com/deploy/nvidia-smi/index.html?ref=kingservers.com">&#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; nvidia-smi</a>. BAR1 &#x43D;&#x435; &#x440;&#x430;&#x432;&#x435;&#x43D; &#x432;&#x441;&#x435;&#x439; VRAM &#x438; &#x43D;&#x435; &#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x441;&#x438;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43E;&#x43C; Resizable BAR. &#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430;: &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; &#x43E;&#x431;&#x44A;&#x451;&#x43C; VRAM, &#x43E;&#x436;&#x438;&#x434;&#x430;&#x442;&#x44C; &#x442;&#x430;&#x43A;&#x43E;&#x439; &#x436;&#x435; BAR1 &#x438; &#x43E;&#x431;&#x44A;&#x44F;&#x432;&#x438;&#x442;&#x44C; platform faulty, &#x445;&#x43E;&#x442;&#x44F; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x430;&#x44F; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; GPU &#x438; &#x440;&#x435;&#x436;&#x438;&#x43C; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x435; &#x43E;&#x442;&#x43E;&#x431;&#x440;&#x430;&#x436;&#x435;&#x43D;&#x438;&#x435;.</p><p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438; &#x442;&#x430;&#x43A;&#x430;&#x44F;: &#x43C;&#x44B; &#x43D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x435;&#x43C; &#x43F;&#x440;&#x438;&#x440;&#x43E;&#x441;&#x442; tokens/s &#x43E;&#x442; &#x43E;&#x434;&#x43D;&#x43E;&#x439; firmware-&#x433;&#x430;&#x43B;&#x43E;&#x447;&#x43A;&#x438;. &#x41C;&#x44B; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;, &#x438;&#x441;&#x447;&#x435;&#x437;&#x430;&#x44E;&#x442; &#x43B;&#x438; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x43D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F; MMIO, &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E; &#x43B;&#x438; &#x41E;&#x421; &#x432;&#x438;&#x434;&#x438;&#x442; &#x432;&#x441;&#x435; GPU &#x43F;&#x43E;&#x441;&#x43B;&#x435; reboot &#x438; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43B;&#x438; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x43C;&#x430;&#x44F; P2P topology. &#x414;&#x43B;&#x44F; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x430; &#x441;&#x430;&#x43C;&#x438;&#x445; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x435;&#x439; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/gpu-servera-dlya-mashinnogo-obucheniya/">&#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;</a>; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x436;&#x435; &#x440;&#x435;&#x447;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43E; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x438; PCIe address space.</p><h2 id="symptom-and-baseline">&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C; &#x438; &#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x43C;&#x44B;&#x439; baseline</h2>
<p>&#x41D;&#x435; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x441; BIOS. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x437;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435;, &#x447;&#x442;&#x43E; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x441;&#x43B;&#x43E;&#x43C;&#x430;&#x43D;&#x43E;: GPU &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x432; PCI inventory, &#x432;&#x438;&#x434;&#x435;&#x43D; &#x447;&#x435;&#x440;&#x435;&#x437; lspci, &#x43D;&#x43E; &#x43D;&#x435; &#x432; nvidia-smi, &#x438;&#x43B;&#x438; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x433;&#x43E;&#x442;&#x43E;&#x432; &#x43D;&#x430; &#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;, &#x430; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x443; &#x434;&#x430;&#x451;&#x442; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435;. &#x42D;&#x442;&#x43E; &#x442;&#x440;&#x438; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x430; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x44B;: platform/firmware, kernel/driver &#x438; runtime. &#x415;&#x441;&#x43B;&#x438; &#x441;&#x43C;&#x435;&#x448;&#x430;&#x442;&#x44C; &#x438;&#x445; &#x432; &#x43E;&#x434;&#x43D;&#x443; &#x444;&#x43E;&#x440;&#x43C;&#x443;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x43A;&#x443; &#xAB;GPU &#x43D;&#x435; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442;&#xBB;, &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; reboot &#x443;&#x43D;&#x438;&#x447;&#x442;&#x43E;&#x436;&#x438;&#x442; &#x43F;&#x43E;&#x43B;&#x43E;&#x432;&#x438;&#x43D;&#x443; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;.</p><p>Baseline &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x442;&#x44C; &#x442;&#x43E;&#x447;&#x43D;&#x443;&#x44E; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x43F;&#x43B;&#x430;&#x442;&#x44B; &#x438; firmware, &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; BDF &#x432;&#x441;&#x435;&#x445; GPU &#x438; upstream bridges, &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; kernel &#x438; NVIDIA driver, &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; IOMMU, &#x432;&#x44B;&#x432;&#x43E;&#x434; nvidia-smi -q, &#x430; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x43B;&#x43E;&#x433;&#x438; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x439; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x435; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438;. &#x421;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x44F; &#x432;&#x438;&#x434;&#x430; BAR no space, failed to assign &#x438;&#x43B;&#x438; NVRM resource error &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x43E;&#x433;&#x43E; summary: &#x43E;&#x43D;&#x438; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x44E;&#x442; &#x441;&#x43B;&#x43E;&#x439;, &#x43D;&#x430; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x43C; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x43B;&#x430;&#x441;&#x44C; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F;.</p><p>&#x41F;&#x440;&#x435;&#x434;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x443;&#x437;&#x435;&#x43B; &#x441; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x44C;&#x43C;&#x44F; GPU &#x438; &#x434;&#x432;&#x443;&#x43C;&#x44F; &#x432;&#x44B;&#x441;&#x43E;&#x43A;&#x43E;&#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x43D;&#x44B;&#x43C;&#x438; NIC. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F; ReBAR &#x438;&#x441;&#x447;&#x435;&#x437;&#x43B;&#x430; &#x43E;&#x434;&#x43D;&#x430; NIC. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#xAB;&#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; GPU-&#x442;&#x44E;&#x43D;&#x438;&#x43D;&#x433;&#xBB;: bottleneck &#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x43B;&#x438;&#x43A;&#x442; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x435;&#x445;&#x430;&#x43B;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x439; PCIe resource. &#x41D;&#x443;&#x436;&#x435;&#x43D; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; inventory &#x434;&#x43E; &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435;, &#x430; &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;. &#x418;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x432; runbook &#x43E;&#x431; <a href="https://kingservers.com/blog/io-isolation-llm-cgroup-v2-systemd/">I/O-&#x438;&#x437;&#x43E;&#x43B;&#x44F;&#x446;&#x438;&#x438; LLM-&#x443;&#x437;&#x43B;&#x430;</a> &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x430; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x442; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x44F; &#x434;&#x438;&#x441;&#x43A;&#x430;; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F; &#x43F;&#x43E; &#x43E;&#x442;&#x43D;&#x43E;&#x448;&#x435;&#x43D;&#x438;&#x44E; &#x43A; PCIe.</p><style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}
.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}
.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}
.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}
.ks-widget .panel.on{display:block}
.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}
.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}
.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style><div class="ks-widget" id="ks-tab-rb4g7x2"><h3>&#x413;&#x434;&#x435; &#x438;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x43C; &#x434;&#x435;&#x43B;&#x43E;&#x43C;</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="enum">GPU &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x447;&#x438;&#x441;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F;</button><button type="button" class="tab-btn" data-t="driver">&#x414;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#x43D;&#x435; &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442;</button><button type="button" class="tab-btn" data-t="app">LLM &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439;</button></div><div class="panel on" data-p="enum">&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; firmware, PCIe inventory &#x438; dmesg: &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E;&#x43A;&#x430; &#x43D;&#x438; &#x43F;&#x440;&#x438; &#x447;&#x451;&#x43C;.</div><div class="panel" data-p="driver">&#x421;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; BAR resources, &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; &#x438; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; CUDA-&#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; GPU.</div><div class="panel" data-p="app">&#x41D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; ReBAR &#x432;&#x441;&#x43B;&#x435;&#x43F;&#x443;&#x44E;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; hardware gate, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x438;&#x449;&#x438;&#x442;&#x435; NUMA, P2P, storage &#x438;&#x43B;&#x438; batching.</div><script>(function(){var r=document.getElementById('ks-tab-rb4g7x2');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/resizable-bar-bios-baseline-inline-01-1fe4d588.webp" class="kg-image" alt="Resizable BAR &#x438; Above 4G &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/resizable-bar-bios-baseline-inline-01-1fe4d588.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/resizable-bar-bios-baseline-inline-01-1fe4d588.webp 1000w, https://kingservers.com/blog/content/images/2026/08/resizable-bar-bios-baseline-inline-01-1fe4d588.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="evidence-bundle">&#x421;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; evidence bundle &#x434;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; firmware</h2>
<p>&#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x43D;&#x438;&#x436;&#x435; &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x443;&#x437;&#x43B;&#x430;. &#x417;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x438;&#x445; &#x438;&#x437; root shell &#x438;&#x43B;&#x438; &#x447;&#x435;&#x440;&#x435;&#x437; sudo, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x44F; stdout &#x438; stderr &#x432; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433; &#x441; &#x434;&#x430;&#x442;&#x43E;&#x439; &#x438; &#x438;&#x43C;&#x435;&#x43D;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;. &#x424;&#x438;&#x43B;&#x44C;&#x442;&#x440; &#x43F;&#x43E; NVIDIA &#x443;&#x434;&#x43E;&#x431;&#x435;&#x43D; &#x434;&#x43B;&#x44F; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x441;&#x43C;&#x43E;&#x442;&#x440;&#x430;, &#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; lspci -nnvv &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;: &#x43A;&#x43E;&#x43D;&#x444;&#x43B;&#x438;&#x43A;&#x442; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x440;&#x438;&#x43D;&#x430;&#x434;&#x43B;&#x435;&#x436;&#x430;&#x442;&#x44C; bridge, NIC &#x438;&#x43B;&#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x43B;&#x435;&#x440;&#x443;, &#x430; &#x43D;&#x435; &#x441;&#x430;&#x43C;&#x43E;&#x43C;&#x443; GPU.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">collect-pcie-baseline.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>#!/usr/bin/env bash
set -euo pipefail
OUT=&quot;pcie-baseline-$(hostname)-$(date -u +%Y%m%dT%H%M%SZ)&quot;
mkdir -p &quot;$OUT&quot;
uname -a &gt; &quot;$OUT/uname.txt&quot;
lspci -Dnn &gt; &quot;$OUT/lspci-nn.txt&quot;
lspci -Dnnvv &gt; &quot;$OUT/lspci-nnvv.txt&quot;
nvidia-smi -L &gt; &quot;$OUT/nvidia-smi-L.txt&quot;
nvidia-smi -q &gt; &quot;$OUT/nvidia-smi-q.txt&quot;
dmesg -T | grep -Ei &apos;pci|bar|resource|mmio|nvrm|iommu&apos; &gt; &quot;$OUT/dmesg-pcie.txt&quot; || true
journalctl -k -b | grep -Ei &apos;pci|bar|resource|mmio|nvrm|iommu&apos; &gt; &quot;$OUT/journal-pcie.txt&quot; || true
tar -czf &quot;$OUT.tar.gz&quot; &quot;$OUT&quot;</code></pre>
<div class="ks-canonical-code-block__caption">Read-only baseline PCIe, kernel &#x438; NVIDIA</div>
</div>
<p>&#x41D;&#x435; &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; bundle &#x432; &#x43E;&#x431;&#x449;&#x438;&#x439; &#x447;&#x430;&#x442; &#x431;&#x435;&#x437; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;: &#x432; &#x43B;&#x43E;&#x433;&#x430;&#x445; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x441;&#x435;&#x440;&#x438;&#x439;&#x43D;&#x44B;&#x435; &#x43D;&#x43E;&#x43C;&#x435;&#x440;&#x430;, hostname &#x438; &#x438;&#x43D;&#x44B;&#x435; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x44B;&#x435; &#x434;&#x435;&#x442;&#x430;&#x43B;&#x438;. &#x425;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x43A;&#x430;&#x43A; change evidence. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x443;&#x437;&#x435;&#x43B; &#x43D;&#x435; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x441;&#x44F;, out-of-band console &#x438; &#x44D;&#x442;&#x43E;&#x442; &#x430;&#x440;&#x445;&#x438;&#x432; &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x442; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x438;&#x442;&#x44C; &#x43D;&#x43E;&#x432;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x444;&#x43B;&#x438;&#x43A;&#x442; &#x43E;&#x442; &#x441;&#x442;&#x430;&#x440;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F;.</p><p>&#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x441;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; firmware screenshots &#x438;&#x43B;&#x438; &#x44D;&#x43A;&#x441;&#x43F;&#x43E;&#x440;&#x442; profile, &#x435;&#x441;&#x43B;&#x438; BMC &#x44D;&#x442;&#x43E; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442;. &#x41D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x43E;&#x43F;&#x446;&#x438;&#x439; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x430;&#x44E;&#x442;&#x441;&#x44F;: Above 4G Decoding &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x441; PCIe/PCI subsystem, &#x430; Re-Size BAR &#x2014; &#x432; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C; &#x43C;&#x435;&#x43D;&#x44E; &#x438; &#x437;&#x430;&#x432;&#x438;&#x441;&#x435;&#x442;&#x44C; &#x43E;&#x442; CSM/UEFI mode. &#x41D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x443;&#x43D;&#x43A;&#x442;&#x43E;&#x432; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x43C;&#x438; &#x43D;&#x430;&#x443;&#x433;&#x430;&#x434;; &#x441;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x441; &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x43E;&#x43C; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x430;&#x448;&#x435;&#x439; &#x43F;&#x43B;&#x430;&#x442;&#x44B; &#x438; &#x441;&#x43F;&#x438;&#x441;&#x43A;&#x43E;&#x43C; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x445; GPU.</p><div class="ks-widget" id="ks-chk-mmio8q1"><h3>Baseline &#x43F;&#x435;&#x440;&#x435;&#x434; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435;&#x43C; BIOS</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D; &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; &#x432;&#x441;&#x435;&#x445; PCIe-&#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432; &#x438; BDF</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B; resource-&#x444;&#x430;&#x439;&#x43B;&#x44B; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; GPU</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D; &#x432;&#x44B;&#x432;&#x43E;&#x434; nvidia-smi -q</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D; out-of-band &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x43A; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x443;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x417;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x44B; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x435; firmware settings &#x438; &#x43F;&#x43B;&#x430;&#x43D; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430;</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-mmio8q1');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/resizable-bar-linux-evidence-inline-03-c909f847.webp" class="kg-image" alt="Resizable BAR &#x438; Above 4G &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/resizable-bar-linux-evidence-inline-03-c909f847.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/resizable-bar-linux-evidence-inline-03-c909f847.webp 1000w, https://kingservers.com/blog/content/images/2026/08/resizable-bar-linux-evidence-inline-03-c909f847.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="linux-pcie-map">&#x41F;&#x440;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; &#x43A;&#x430;&#x440;&#x442;&#x443; BAR &#x432; Linux, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; BIOS-&#x433;&#x430;&#x43B;&#x43E;&#x447;&#x43A;&#x438;</h2>
<p>Linux &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x43D;&#x44B;&#x435; PCI resources &#x432; lspci -vv &#x438; &#x432; sysfs resource-&#x444;&#x430;&#x439;&#x43B;&#x430;&#x445;. &#x412; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x430;&#x445; Memory at &#x432;&#x430;&#x436;&#x43D;&#x44B; &#x442;&#x438;&#x43F; &#x430;&#x434;&#x440;&#x435;&#x441;&#x430;, prefetchable-&#x444;&#x43B;&#x430;&#x433; &#x438; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;. &#x41D;&#x443;&#x43B;&#x435;&#x432;&#x43E;&#x439; &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D;, disabled resource &#x438;&#x43B;&#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x44E;&#x449;&#x435;&#x435;&#x441;&#x44F; &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x43E; &#x43D;&#x435;&#x445;&#x432;&#x430;&#x442;&#x43A;&#x435; &#x43C;&#x435;&#x441;&#x442;&#x430; &#x2014; &#x43F;&#x43E;&#x432;&#x43E;&#x434; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x434;&#x43E; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; CUDA workload. &#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; <a href="https://www.kernel.org/doc/html/latest/driver-api/pci/pci.html?ref=kingservers.com">PCI support guide Linux kernel</a> &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x443; &#x441; BAR &#x438; Resizable BAR; &#x44D;&#x442;&#x43E; &#x442;&#x43E;&#x447;&#x43D;&#x435;&#x435; &#x444;&#x43E;&#x440;&#x443;&#x43C;&#x43D;&#x44B;&#x445; &#x440;&#x435;&#x446;&#x435;&#x43F;&#x442;&#x43E;&#x432; &#x441; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; pci=realloc.</p><p>Boot-&#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;, &#x43F;&#x435;&#x440;&#x435;&#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x44E;&#x449;&#x438;&#x439; PCI resources, &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x43C; &#x43B;&#x435;&#x43A;&#x430;&#x440;&#x441;&#x442;&#x432;&#x43E;&#x43C;. &#x41E;&#x43D; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x430;&#x43B;&#x433;&#x43E;&#x440;&#x438;&#x442;&#x43C; &#x43D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x43D;&#x430; &#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435; kernel &#x438; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x437;&#x430;&#x442;&#x440;&#x43E;&#x43D;&#x443;&#x442;&#x44C; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435;, &#x447;&#x442;&#x43E; firmware &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x43B;&#x430; &#x43A;&#x43E;&#x43D;&#x444;&#x43B;&#x438;&#x43A;&#x442; &#x438;&#x43B;&#x438; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E;&#x435; bridge window, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x430;&#x446;&#x438;&#x438; &#x434;&#x438;&#x441;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438;&#x432;&#x430; &#x438; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x449;&#x438;&#x43A;&#x430; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B;. &#x41D;&#x430; production-&#x443;&#x437;&#x43B;&#x435; &#x43B;&#x44E;&#x431;&#x43E;&#x435; &#x442;&#x430;&#x43A;&#x43E;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x43E; &#x438;&#x43C;&#x435;&#x442;&#x44C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E; &#x438; rollback.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">inspect-gpu-bars.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>#!/usr/bin/env bash
set -euo pipefail
mapfile -t BDFS &lt; <(lspci -dnn | awk 'tolower($0) ~ nvidia {print $1}') printf 'nvidia devices: %s\n' "${#bdfs[@]}" for bdf in "${bdfs[@]}"; do echo "="====" $bdf="====" lspci -s "$bdf" -vv sed -n ' region p; resizable bar ,+8p' test -r sys bus pci devices resource" && nl -ba done< code></(lspci></code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; BAR &#x438; sysfs resources &#x43F;&#x43E; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C;&#x443; NVIDIA BDF</div>
</div>
<p>&#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x435; &#x430;&#x431;&#x441;&#x43E;&#x43B;&#x44E;&#x442;&#x43D;&#x44B;&#x439; &#xAB;&#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440; &#x438;&#x437; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x43D;&#x435;&#x442;&#x430;&#xBB;, &#x430; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x44E; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x445; GPU &#x438; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; support matrix. &#x420;&#x430;&#x437;&#x43D;&#x44B;&#x435; SKU, MIG/vGPU &#x438;&#x43B;&#x438; display mode &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x437;&#x430;&#x43A;&#x43E;&#x43D;&#x43D;&#x43E; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x430;&#x442;&#x44C;&#x441;&#x44F;. &#x415;&#x441;&#x43B;&#x438; &#x43E;&#x434;&#x438;&#x43D; &#x438;&#x437; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x451;&#x445; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x445; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x435;&#x439; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x43B; &#x438;&#x43D;&#x443;&#x44E; &#x43A;&#x430;&#x440;&#x442;&#x443; &#x438; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43E;&#x43D; &#x43D;&#x435; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x443;&#x435;&#x442;&#x441;&#x44F;, &#x44D;&#x442;&#x43E; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E;; &#x435;&#x441;&#x43B;&#x438; &#x432;&#x441;&#x435; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x435; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;, &#x438;&#x449;&#x438;&#x442;&#x435; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x441;&#x43B;&#x43E;&#x439;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/resizable-bar-mmio-map-inline-02-57aec5cc.webp" class="kg-image" alt="Resizable BAR &#x438; Above 4G &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/resizable-bar-mmio-map-inline-02-57aec5cc.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/resizable-bar-mmio-map-inline-02-57aec5cc.webp 1000w, https://kingservers.com/blog/content/images/2026/08/resizable-bar-mmio-map-inline-02-57aec5cc.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="driver-bar1-gate">Driver gate: GPU &#x43F;&#x435;&#x440;&#x435;&#x447;&#x438;&#x441;&#x43B;&#x435;&#x43D;, BAR1 &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D;, &#x43D;&#x43E;&#x432;&#x44B;&#x445; NVRM &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A; &#x43D;&#x435;&#x442;</h2>
<p>&#x421;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; gate &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x447;&#x438;&#x441;&#x442;&#x43E;&#x433;&#x43E; PCI inventory. nvidia-smi -q &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D; NVIDIA &#x43A;&#x430;&#x43A; &#x438;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A; BAR1 Memory Usage: Total, Used &#x438; Free. &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x434;&#x43B;&#x44F; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; GPU &#x438; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; PCI Bus ID &#x441; BDF &#x438;&#x437; lspci. &#x41D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x435; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x438; BAR1 &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x43E;&#x442;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43E;&#x431; &#x43E;&#x43A;&#x43D;&#x435;, &#x43D;&#x43E; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; P2P &#x438; &#x442;&#x435;&#x43C; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x43D;&#x435; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x44C; LLM.</p><p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x431;&#x44B;&#x442;&#x44C; &#x43F;&#x43E;&#x437;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x439; &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x439;. &#x41F;&#x43E;&#x437;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x430;&#x44F;: &#x432;&#x441;&#x435; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; GPU &#x432;&#x438;&#x434;&#x43D;&#x44B;, driver version &#x435;&#x434;&#x438;&#x43D;&#x430;, query &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x431;&#x435;&#x437; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;. &#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F;: &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x438;&#x437; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430; &#x441; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x43D;&#x44B;&#x43C; CUDA_VISIBLE_DEVICES &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43D;&#x435;&#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x43D;&#x43E; &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x439; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C;. &#x422;&#x430;&#x43A;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x432;&#x430;&#x436;&#x43D;&#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435; passthrough, MIG &#x438;&#x43B;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x439; device policy: &#xAB;&#x43D;&#x443;&#x436;&#x43D;&#x43E;&#x435; &#x432;&#x438;&#x434;&#x43D;&#x43E;&#xBB; &#x435;&#x449;&#x451; &#x43D;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; &#xAB;&#x43B;&#x438;&#x448;&#x43D;&#x435;&#x435; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x43E;&#xBB;.</p><p>&#x415;&#x441;&#x43B;&#x438; BAR1 total &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x43C;&#x438; &#x43A;&#x430;&#x440;&#x442;&#x430;&#x43C;&#x438;, &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x434;&#x435;&#x441;&#x44F;&#x442;&#x43A;&#x438; &#x440;&#x430;&#x437;. &#x421;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x439; evidence bundle, &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; firmware profile, PCI link state &#x438; driver binding. &#x415;&#x441;&#x43B;&#x438; &#x436;&#x435; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x438;&#x435; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x440;&#x435;&#x436;&#x438;&#x43C;&#x43E;&#x43C; GPU, &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x44D;&#x442;&#x43E; &#x43A;&#x430;&#x43A; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;. &#x421;&#x442;&#x430;&#x442;&#x44C;&#x44F; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/mig-mps-dlya-multi-tenant-gpu/">MIG &#x438; MPS &#x432; multi-tenant GPU</a> &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x430; &#x434;&#x43B;&#x44F; &#x43F;&#x43E;&#x43D;&#x438;&#x43C;&#x430;&#x43D;&#x438;&#x44F;, &#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443; shared accounting &#x43D;&#x435; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x435;&#x442; &#x442;&#x440;&#x430;&#x43A;&#x442;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43A;&#x430;&#x43A; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x443;&#x44E; &#x43D;&#x435;&#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C;.</p><div class="ks-widget" id="ks-sel-bar19p4"><h3>&#x41A;&#x430;&#x43A; &#x442;&#x440;&#x430;&#x43A;&#x442;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;</h3><label>&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;</label><select data-s><option value="missing">&#x41E;&#x434;&#x438;&#x43D; GPU &#x438;&#x441;&#x447;&#x435;&#x437;</option><option value="nvrm">&#x415;&#x441;&#x442;&#x44C; NVRM/resource errors</option><option value="clean">&#x412;&#x441;&#x435; GPU &#x432;&#x438;&#x434;&#x43D;&#x44B;, &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x435;&#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-bar19p4');if(!r)return;var m={"missing":"Стоп на infrastructure gate: сравните PCI inventory, bridge windows и firmware baseline.","nvrm":"Не запускайте LLM. Соберите dmesg, BAR resources и состояние драйвера для каждого BDF.","clean":"Переходите к CUDA/P2P и application gate; firmware уже не главный подозреваемый."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/resizable-bar-negative-control-inline-04-8bd802d2.webp" class="kg-image" alt="Resizable BAR &#x438; Above 4G &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/resizable-bar-negative-control-inline-04-8bd802d2.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/resizable-bar-negative-control-inline-04-8bd802d2.webp 1000w, https://kingservers.com/blog/content/images/2026/08/resizable-bar-negative-control-inline-04-8bd802d2.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="firmware-change">&#x41C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; Above 4G &#x438; ReBAR &#x43A;&#x430;&#x43A; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x44B;&#x439; rollout</h2>
<p>&#x421;&#x434;&#x435;&#x43B;&#x430;&#x439;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; change set &#x437;&#x430; &#x43E;&#x43A;&#x43D;&#x43E;. &#x415;&#x441;&#x43B;&#x438; &#x446;&#x435;&#x43B;&#x44C; &#x2014; &#x443;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x44C; &#x43D;&#x435;&#x445;&#x432;&#x430;&#x442;&#x43A;&#x443; 32-&#x431;&#x438;&#x442;&#x43D;&#x43E;&#x433;&#x43E; MMIO &#x43D;&#x430; multi-GPU &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;, &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x44E;&#x442; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x43E;&#x435; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x43E;&#x439; Above 4G Decoding, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x44E;&#x442; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44C;, &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x430;&#x44E;&#x442; &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x44E;&#x442; &#x432;&#x435;&#x441;&#x44C; infrastructure gate. ReBAR &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x44E;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; &#x448;&#x430;&#x433;&#x43E;&#x43C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x440;&#x438; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x43E;&#x439; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x435; CPU/chipset, firmware, GPU &#x438; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;. &#x422;&#x430;&#x43A; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x432;&#x438;&#x434;&#x438;&#x43C;&#x43E;&#x439;.</p><p>&#x414;&#x43E; reboot &#x43D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x44C;&#x442;&#x435; owner: &#x43A;&#x442;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; firmware, &#x43A;&#x442;&#x43E; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x442; BMC console, &#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; stop/continue. Stop condition &#x2014; &#x43F;&#x440;&#x43E;&#x43F;&#x430;&#x436;&#x430; &#x43B;&#x44E;&#x431;&#x43E;&#x433;&#x43E; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x433;&#x43E; PCIe device, &#x43D;&#x43E;&#x432;&#x430;&#x44F; resource allocation error, &#x43D;&#x435;&#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x44C; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#x438;&#x43B;&#x438; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430;. &#x41D;&#x435; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x430;&#x439;&#x442;&#x435; &#x43A; CUDA &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443;, &#x447;&#x442;&#x43E; &#xAB;&#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x43D;&#x44B;&#x435; GPU &#x432;&#x440;&#x43E;&#x434;&#x435; &#x432;&#x438;&#x434;&#x43D;&#x44B;&#xBB;.</p><p>NVIDIA &#x43F;&#x440;&#x44F;&#x43C;&#x43E; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; Above 4G Decoding &#x432; &#x440;&#x44F;&#x434;&#x435; &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x435;&#x432; vGPU/passthrough, &#x43D;&#x43E; bare-metal inference &#x2014; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;. &#x414;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x43F;&#x43E; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; large BAR address space &#x434;&#x43B;&#x44F; &#x43D;&#x435;&#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x445; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x439;, &#x43E;&#x434;&#x43D;&#x430;&#x43A;&#x43E; &#x435;&#x451; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x442;&#x44C; &#x432; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43D;&#x438;&#x435; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x44F; &#x43B;&#x44E;&#x431;&#x43E;&#x433;&#x43E; LLM. &#x417;&#x434;&#x435;&#x441;&#x44C; &#x43C;&#x44B; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x43C; &#x44D;&#x442;&#x43E; &#x43A;&#x430;&#x43A; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440; &#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x43A; &#x430;&#x434;&#x440;&#x435;&#x441;&#x43D;&#x43E;&#x43C;&#x443; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x443;, &#x430; &#x43D;&#x435; &#x43A;&#x430;&#x43A; benchmark.</p><p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; reboot &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; &#x430;&#x440;&#x445;&#x438;&#x432;&#x44B; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x43D;&#x43E;, &#x43D;&#x43E; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x433;&#x43B;&#x430;&#x437;&#x430;&#x43C;&#x438;: &#x438;&#x441;&#x447;&#x435;&#x437;&#x43D;&#x43E;&#x432;&#x435;&#x43D;&#x438;&#x435; BDF, &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; bridge window &#x438;&#x43B;&#x438; &#x43D;&#x43E;&#x432;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435; &#x43E;&#x431;&#x449;&#x435;&#x433;&#x43E; &#x447;&#x438;&#x441;&#x43B;&#x430; &#x441;&#x442;&#x440;&#x43E;&#x43A;. &#x421;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x435; NIC &#x438; NVMe &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x43E;&#x441;&#x442;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; &#x43C;&#x435;&#x441;&#x442;&#x435;. &#x415;&#x441;&#x43B;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x43E;&#x441;&#x44C; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x441;&#x43E;&#x432; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;, rollback &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x435;&#x435;, &#x447;&#x435;&#x43C; &#x43F;&#x43E;&#x43F;&#x44B;&#x442;&#x43A;&#x430; &#x43F;&#x43E;&#x447;&#x438;&#x43D;&#x438;&#x442;&#x44C; &#x432;&#x441;&#x451; &#x432; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x43C; profile.</p><h2 id="cuda-p2p-gate">CUDA gate: &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; GPU &#x438; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; P2P-&#x43C;&#x430;&#x442;&#x440;&#x438;&#x446;&#x430;</h2>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;&#x433;&#x43E; driver gate &#x441;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; CUDA-&#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x435;. &#x41F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x447;&#x438;&#x441;&#x43B;&#x435;&#x43D;&#x438;&#x435; GPU &#x447;&#x435;&#x440;&#x435;&#x437; nvidia-smi &#x43D;&#x435; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442;, &#x447;&#x442;&#x43E; runtime &#x441;&#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x44C; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x438; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x44C; kernel. &#x41C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x440;&#x43E;&#x439;&#x442;&#x438; &#x434;&#x43B;&#x44F; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; &#x438;&#x43D;&#x434;&#x435;&#x43A;&#x441;&#x430; &#x432; &#x442;&#x43E;&#x439; &#x436;&#x435; &#x441;&#x440;&#x435;&#x434;&#x435;, &#x438;&#x437; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442; production service: &#x442;&#x43E;&#x442; &#x436;&#x435; container runtime, device mounts &#x438; permissions.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">cuda-context-gate.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>#!/usr/bin/env bash
set -euo pipefail
python - &lt;<'py' import torch count="torch.cuda.device_count()" assert> 0, &quot;CUDA devices not found&quot;
for index in range(count):
    with torch.cuda.device(index):
        x = torch.ones(1024, device=f&quot;cuda:{index}&quot;)
        torch.cuda.synchronize(index)
        assert float(x.sum()) == 1024.0
        print(index, torch.cuda.get_device_name(index), &quot;PASS&quot;)
PY</'py'></code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; CUDA-&#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x432;&#x438;&#x434;&#x438;&#x43C;&#x43E;&#x43C; GPU &#x447;&#x435;&#x440;&#x435;&#x437; PyTorch</div>
</div>
<p>&#x417;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; peer access &#x43C;&#x435;&#x436;&#x434;&#x443; &#x442;&#x435;&#x43C;&#x438; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x438;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x43C; &#x43E;&#x43D; &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43F;&#x43E; &#x430;&#x440;&#x445;&#x438;&#x442;&#x435;&#x43A;&#x442;&#x443;&#x440;&#x435;. &#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x43F;&#x43E;&#x437;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x439; <a href="https://github.com/NVIDIA/cuda-samples?ref=kingservers.com">NVIDIA CUDA Samples</a> &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x442; deviceQuery, topologyQuery &#x438; p2pBandwidthLatencyTest. &#x41D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x44F; &#x441; CUDA Samples 12.9 &#x441;&#x442;&#x430;&#x440;&#x44B;&#x439; bandwidthTest &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D; &#x43A;&#x430;&#x43A; &#x443;&#x441;&#x442;&#x430;&#x440;&#x435;&#x432;&#x448;&#x438;&#x439;; NVIDIA &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x435;&#x442; NVBandwidth &#x434;&#x43B;&#x44F; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x438;&#x439;. &#x41D;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x441;&#x442;&#x430;&#x440;&#x443;&#x44E; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x443; &#x438;&#x437; &#x43C;&#x43D;&#x43E;&#x433;&#x43E;&#x43B;&#x435;&#x442;&#x43D;&#x435;&#x433;&#x43E; &#x431;&#x43B;&#x43E;&#x433;&#x430; &#x438; &#x43D;&#x435; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x446;&#x438;&#x444;&#x440;&#x44B; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; topology &#x43A;&#x430;&#x43A; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x442;&#x438;&#x432;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">cuda-samples-gate.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>git clone --depth 1 https://github.com/NVIDIA/cuda-samples.git
cmake -S cuda-samples -B cuda-samples/build -DCMAKE_BUILD_TYPE=Release
cmake --build cuda-samples/build -j&quot;$(nproc)&quot;
find cuda-samples/build -type f \( -name deviceQuery -o -name topologyQuery -o -name p2pBandwidthLatencyTest \) -print</code></pre>
<div class="ks-canonical-code-block__caption">&#x421;&#x431;&#x43E;&#x440;&#x43A;&#x430; &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; CUDA topology tests</div>
</div>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x44F;&#x44F; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43D;&#x430;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442; binaries: layout &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x440;&#x435;&#x43B;&#x438;&#x437;&#x430;&#x43C;&#x438;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x435;&#x442; &#x44F;&#x432;&#x43D;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; checkout/tag, &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x435;&#x433;&#x43E; &#x432;&#x430;&#x448;&#x435;&#x43C;&#x443; CUDA Toolkit. Gate &#x441;&#x447;&#x438;&#x442;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x43C; &#x43D;&#x435; &#x43F;&#x440;&#x438; &#xAB;&#x432;&#x44B;&#x441;&#x43E;&#x43A;&#x43E;&#x439; &#x446;&#x438;&#x444;&#x440;&#x435;&#xBB;, &#x430; &#x43A;&#x43E;&#x433;&#x434;&#x430; deviceQuery &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;, topology &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x441;&#x445;&#x435;&#x43C;&#x435; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;, &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x43C;&#x44B;&#x435; &#x43F;&#x430;&#x440;&#x44B; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x430;&#x44E;&#x442; peer access, &#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x44B; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x43C;&#x44B;. &#x415;&#x441;&#x43B;&#x438; P2P &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D; &#x442;&#x430;&#x43C;, &#x433;&#x434;&#x435; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43D;&#x435;&#x433;&#x43E; &#x440;&#x430;&#x441;&#x441;&#x447;&#x438;&#x442;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x43D;&#x435; &#x43C;&#x430;&#x441;&#x43A;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x44D;&#x442;&#x43E; &#x443;&#x432;&#x435;&#x43B;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435;&#x43C; batch size.</p><div class="ks-widget" id="ks-tab-gate5m8"><h3>&#x427;&#x442;&#x43E; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; gate</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="infra">Infrastructure</button><button type="button" class="tab-btn" data-t="cuda">CUDA</button><button type="button" class="tab-btn" data-t="llm">Application</button></div><div class="panel on" data-p="infra">&#x412;&#x441;&#x435; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; BDF &#x43F;&#x440;&#x438;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x442;, BAR &#x43D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x44B; &#x431;&#x435;&#x437; &#x43A;&#x43E;&#x43D;&#x444;&#x43B;&#x438;&#x43A;&#x442;&#x43E;&#x432;, &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#x43F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x430;&#x43D; &#x43A; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C;&#x443; GPU.</div><div class="panel" data-p="cuda">&#x41A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x435;, &#x430; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x43C;&#x44B;&#x435; &#x43F;&#x430;&#x440;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x44E;&#x442; peer access.</div><div class="panel" data-p="llm">Pinned-&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x43D;&#x430; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;, readiness &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x435;&#x43D;, latency &#x438; error rate &#x43D;&#x435; &#x445;&#x443;&#x436;&#x435; baseline.</div><script>(function(){var r=document.getElementById('ks-tab-gate5m8');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/resizable-bar-gates-flow-inline-05-d3e5c4b1.webp" class="kg-image" alt="Resizable BAR &#x438; Above 4G &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/resizable-bar-gates-flow-inline-05-d3e5c4b1.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/resizable-bar-gates-flow-inline-05-d3e5c4b1.webp 1000w, https://kingservers.com/blog/content/images/2026/08/resizable-bar-gates-flow-inline-05-d3e5c4b1.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="llm-application-gate">Application gate: &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; readiness LLM, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x44C;&#x435; GPU</h2>
<p>&#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; pinned-&#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x438; runtime, &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x443;&#x44E; &#x432; change plan. &#x41D;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; BIOS, &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;, CUDA &#x438; vLLM: &#x447;&#x435;&#x442;&#x44B;&#x440;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x44E;&#x442; &#x43B;&#x44E;&#x431;&#x43E;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x432; &#x434;&#x43E;&#x433;&#x430;&#x434;&#x43A;&#x443;. &#x414;&#x43B;&#x44F; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; model revision, container digest, &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; tensor/pipeline parallelism &#x438; placement GPU. &#x42D;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43A;&#x43B;&#x430;&#x434;&#x43D;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B;&#x430;: hardware gate &#x437;&#x430;&#x43A;&#x43E;&#x43D;&#x447;&#x435;&#x43D;, &#x430; &#x443;&#x441;&#x43F;&#x435;&#x445; &#x432;&#x441;&#x451; &#x435;&#x449;&#x451; &#x43D;&#x430;&#x434;&#x43E; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x43D;&#x430; &#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435; inference.</p><p>&#x41C;&#x438;&#x43D;&#x438;&#x43C;&#x443;&#x43C; &#x43D;&#x443;&#x436;&#x43D;&#x44B; readiness, &#x43E;&#x434;&#x438;&#x43D; &#x434;&#x435;&#x442;&#x435;&#x440;&#x43C;&#x438;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;, &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; CUDA/NCCL &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A; &#x438; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x441; pre-change baseline &#x43F;&#x43E; latency, error rate &#x438; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430;. &#x41D;&#x435; &#x43F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x43E;&#x440;&#x43E;&#x433; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435;: &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x441;&#x43E;&#x431;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x439; SLO &#x438; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x443;&#x44E; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x443;. &#x415;&#x441;&#x43B;&#x438; hardware &#x447;&#x438;&#x441;&#x442;, &#x43D;&#x43E; TTFT &#x432;&#x44B;&#x440;&#x43E;&#x441;, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; NUMA affinity, PCIe topology, storage path, batching &#x438; thermal/power limits. ReBAR &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x435;&#x43D;&#x438;&#x435;&#x43C;.</p><p>&#x41A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x435;&#x435; &#x432;&#x43E;&#x441;&#x442;&#x43E;&#x440;&#x433;&#x430; &#x43E;&#x442; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x443;&#x434;&#x430;&#x447;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;: &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x44B;&#x439; firmware profile &#x43D;&#x430; canary-&#x443;&#x437;&#x43B;&#x435; &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; application probe. &#x415;&#x441;&#x43B;&#x438; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x430; &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F;, ReBAR, &#x432;&#x435;&#x440;&#x43E;&#x44F;&#x442;&#x43D;&#x43E;, &#x43D;&#x435; &#x431;&#x44B;&#x43B; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43E;&#x439; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x44F;. &#x415;&#x441;&#x43B;&#x438; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x432;&#x435;&#x441;&#x43E;&#x432;, &#x43D;&#x43E; &#x43D;&#x435; steady-state throughput, bottleneck &#x43C;&#x43E;&#x433; &#x43F;&#x435;&#x440;&#x435;&#x435;&#x445;&#x430;&#x442;&#x44C; &#x432; storage; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x441; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x430;&#x43C;&#x438; <a href="https://kingservers.com/blog/gpu-scheduling-inference-training-batch/">GPU scheduling</a> &#x438; &#x43D;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x444;&#x430;&#x437;&#x44B; workload.</p><p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x43B;&#x438; &#x43B;&#x438; &#x432;&#x44B; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x433;&#x43E; &#x440;&#x435;&#x441;&#x442;&#x430;&#x440;&#x442;&#x430;? &#x41E;&#x434;&#x43D;&#x43E;&#x43A;&#x440;&#x430;&#x442;&#x43D;&#x44B;&#x439; PASS &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44C; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x442; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43A;&#x430; enumerating &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432; &#x438;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x435;&#x442;&#x43E;&#x433;&#x43E; cache. &#x41F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; cold boot, &#x437;&#x430;&#x442;&#x435;&#x43C; application probe &#x431;&#x435;&#x437; &#x440;&#x443;&#x447;&#x43D;&#x44B;&#x445; &#x432;&#x43C;&#x435;&#x448;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;. &#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442; rollout &#x434;&#x430;&#x43B;&#x44C;&#x448;&#x435; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x443;&#x437;&#x43B;&#x430;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/resizable-bar-llm-readiness-inline-06-dd8f00d3.webp" class="kg-image" alt="Resizable BAR &#x438; Above 4G &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/resizable-bar-llm-readiness-inline-06-dd8f00d3.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/resizable-bar-llm-readiness-inline-06-dd8f00d3.webp 1000w, https://kingservers.com/blog/content/images/2026/08/resizable-bar-llm-readiness-inline-06-dd8f00d3.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="rollout-rollback">Rollout, stop conditions &#x438; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x439; rollback</h2>
<p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; canary-&#x443;&#x437;&#x43B;&#x430; &#x442;&#x43E;&#x439; &#x436;&#x435; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x439; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x438;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; reboot &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; gates &#x432; &#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43A;&#x435;: inventory, resource map, driver/BAR1, CUDA context, P2P, LLM readiness. &#x41D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x44D;&#x442;&#x430;&#x43F;&#x435; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x430;&#x440;&#x442;&#x435;&#x444;&#x430;&#x43A;&#x442; &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x441; baseline. &#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; PASS &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x430; &#x438; stop conditions &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x435; &#x43A; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x435;&#x43C;&#x443; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x443;.</p><p>Rollback &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x43C;. &#x412;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x44B;&#x439; firmware profile, &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x435; &#x443;&#x437;&#x435;&#x43B;, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x441;&#x43D;&#x43E;&#x432;&#x430; &#x43F;&#x440;&#x43E;&#x439;&#x434;&#x438;&#x442;&#x435; &#x442;&#x435; &#x436;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;. &#xAB;&#x421;&#x435;&#x440;&#x432;&#x438;&#x441; &#x43F;&#x43E;&#x434;&#x43D;&#x44F;&#x43B;&#x441;&#x44F;&#xBB; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E;: &#x43E;&#x434;&#x438;&#x43D; GPU &#x438;&#x43B;&#x438; NIC &#x43C;&#x43E;&#x433; &#x438;&#x441;&#x447;&#x435;&#x437;&#x43D;&#x443;&#x442;&#x44C;, &#x430; scheduler &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x443;&#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x438;&#x43B; &#x43F;&#x430;&#x440;&#x430;&#x43B;&#x43B;&#x435;&#x43B;&#x438;&#x437;&#x43C;. &#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; inventory &#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; HTTP 200.</p><p>&#x414;&#x43B;&#x44F; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; dedicated server &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x443;&#x439;&#x442;&#x435; hands-on &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x434;&#x443;&#x440;&#x443;: BMC console, recovery profile &#x438; &#x43E;&#x43A;&#x43D;&#x43E;, &#x432; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x43C; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C; &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439; reboot. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x430; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; ReBAR &#x441; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x43C;&#x438; GPU, &#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x44E; &#x432;&#x44B;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x43D;&#x43E;&#x439; &#x438; &#x440;&#x435;&#x448;&#x430;&#x439;&#x442;&#x435; resource conflict &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x43C; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43E;&#x43C;. Production &#x446;&#x435;&#x43D;&#x438;&#x442; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435;, &#x447;&#x435;&#x43C; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x443;&#x44E; &#x433;&#x430;&#x43B;&#x43E;&#x447;&#x43A;&#x443; &#x432; firmware.</p><p>Owner &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; gate &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D; &#x432; change record. Platform engineer &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; inventory &#x438; bridge resources; GPU/runtime owner &#x2014; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;, CUDA &#x438; P2P; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x435;&#x446; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430; &#x2014; readiness &#x438; SLO. &#x422;&#x430;&#x43A;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x438;&#x437;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x43E;&#x442; &#x441;&#x438;&#x442;&#x443;&#x430;&#x446;&#x438;&#x438;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x432;&#x441;&#x435; &#x432;&#x438;&#x434;&#x44F;&#x442; &#x43A;&#x440;&#x430;&#x441;&#x43D;&#x44B;&#x439; &#x441;&#x442;&#x430;&#x442;&#x443;&#x441;, &#x43D;&#x43E; &#x43D;&#x438;&#x43A;&#x442;&#x43E; &#x43D;&#x435; &#x438;&#x43C;&#x435;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; rollout.</p><div class="ks-widget" id="ks-chk-roll6v3"><h3>Gate &#x43F;&#x435;&#x440;&#x435;&#x434; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x438;&#x435;&#x43C; rollout</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> Inventory GPU &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x43B; &#x441; baseline</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> &#x412; dmesg &#x43D;&#x435;&#x442; &#x43D;&#x43E;&#x432;&#x44B;&#x445; resource/NVRM &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> CUDA-&#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D; &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; GPU</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> P2P-&#x43C;&#x430;&#x442;&#x440;&#x438;&#x446;&#x430; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x439; topology</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> LLM readiness &#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x438;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D; rollback &#x43A; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x43C;&#x443; firmware profile</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-roll6v3');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/resizable-bar-rollback-inline-07-72911624.webp" class="kg-image" alt="Resizable BAR &#x438; Above 4G &#x434;&#x43B;&#x44F; multi-GPU LLM: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/resizable-bar-rollback-inline-07-72911624.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/resizable-bar-rollback-inline-07-72911624.webp 1000w, https://kingservers.com/blog/content/images/2026/08/resizable-bar-rollback-inline-07-72911624.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="common-mistakes">&#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x438; &#x43A;&#x443;&#x434;&#x430; &#x43C;&#x438;&#x433;&#x440;&#x438;&#x440;&#x443;&#x435;&#x442; bottleneck</h2>
<p>&#x41F;&#x435;&#x440;&#x432;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x2014; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; BAR &#x44D;&#x43A;&#x432;&#x438;&#x432;&#x430;&#x43B;&#x435;&#x43D;&#x442;&#x43E;&#x43C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; VRAM. &#x412;&#x442;&#x43E;&#x440;&#x430;&#x44F; &#x2014; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; GPU 0, &#x445;&#x43E;&#x442;&#x44F; &#x43A;&#x43E;&#x43D;&#x444;&#x43B;&#x438;&#x43A;&#x442; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x44F;&#x432;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x435;&#x43C; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x435; &#x437;&#x430; bridge. &#x422;&#x440;&#x435;&#x442;&#x44C;&#x44F; &#x2014; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; Above 4G, ReBAR, CSM &#x438; IOMMU &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;. &#x427;&#x435;&#x442;&#x432;&#x451;&#x440;&#x442;&#x430;&#x44F; &#x2014; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x447;&#x443;&#x436;&#x438;&#x435; bandwidth numbers &#x43A;&#x430;&#x43A; pass/fail. &#x423; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43E;&#x432; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x430;&#x44E;&#x442;&#x441;&#x44F; root complexes, switches, link width, NUMA &#x438; GPU interconnect.</p><p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; MMIO bottleneck &#x447;&#x430;&#x441;&#x442;&#x43E; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x432;&#x438;&#x434;&#x438;&#x43C;&#x44B;&#x43C; &#x432; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C; &#x43C;&#x435;&#x441;&#x442;&#x435;. Storage &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x442;&#x44C; cold start; CPU/NUMA &#x2014; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43A;&#x443; batch; &#x441;&#x435;&#x442;&#x44C; &#x2014; distributed inference; power limit &#x2014; &#x443;&#x441;&#x442;&#x43E;&#x439;&#x447;&#x438;&#x432;&#x443;&#x44E; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x443;. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; end-to-end application metric &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B;. &#x415;&#x441;&#x43B;&#x438; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x441;&#x43F;&#x43E;&#x440;&#x43D;&#x443;&#x44E; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x443; &#x43D;&#x430; canary &#x438; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x441;&#x44F;, &#x43D;&#x435; &#x43F;&#x440;&#x438;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x435;&#x439; &#x443;&#x441;&#x43F;&#x435;&#x445;.</p><p>&#x41D;&#x430;&#x43A;&#x43E;&#x43D;&#x435;&#x446;, &#x43D;&#x435; &#x438;&#x433;&#x43D;&#x43E;&#x440;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; firmware lifecycle. &#x41F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; BIOS &#x438;&#x43B;&#x438; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; NIC. &#x414;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x443; inventory &#x438; BAR resources &#x432; acceptance &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x443;&#x437;&#x43B;&#x43E;&#x432;, &#x43D;&#x43E; &#x43D;&#x435; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; firmware &#x431;&#x435;&#x437; out-of-band recovery. &#x425;&#x43E;&#x440;&#x43E;&#x448;&#x430;&#x44F; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x431;&#x43D;&#x430;&#x440;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; drift &#x438; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x435;&#x442; rollout.</p><p>&#x415;&#x449;&#x451; &#x43E;&#x434;&#x43D;&#x430; &#x43B;&#x43E;&#x432;&#x443;&#x448;&#x43A;&#x430; &#x2014; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E;&#x43C; &#x43E;&#x43F;&#x442;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;. Clean dmesg &#x43B;&#x438;&#x448;&#x44C; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x430;&#x435;&#x442; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; gate. &#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; application baseline &#x43F;&#x43E;&#x43A;&#x430;&#x436;&#x435;&#x442;, &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x43B;&#x438; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430; &#x441;&#x432;&#x43E;&#x435;&#x439; &#x437;&#x430;&#x434;&#x430;&#x447;&#x435;; &#x430; &#x435;&#x441;&#x43B;&#x438; &#x43D;&#x435;&#x442;, &#x438;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43A; topology, storage, &#x441;&#x435;&#x442;&#x438; &#x438;&#x43B;&#x438; &#x43F;&#x43B;&#x430;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x449;&#x438;&#x43A;&#x443;.</p><h2 id="automation-and-acceptance">&#x410;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; acceptance, &#x43D;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; firmware &#x43F;&#x43E;&#x434; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x435;&#x43C; &#x447;&#x435;&#x43B;&#x43E;&#x432;&#x435;&#x43A;&#x430;</h2>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;&#x433;&#x43E; canary &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x442;&#x438;&#x442;&#x435; read-only &#x447;&#x430;&#x441;&#x442;&#x44C; runbook &#x432; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x43C;&#x443;&#x44E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x443;. &#x425;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; inventory &#x43A;&#x430;&#x43A; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435;: serial &#x443;&#x437;&#x43B;&#x430;, firmware version, BDF &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; GPU, NIC &#x438; NVMe, driver version, &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x44B;&#x439; CUDA device count &#x438; &#x43F;&#x430;&#x440;&#x44B; P2P. &#x421;&#x43A;&#x440;&#x438;&#x43F;&#x442; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x435;, &#x438;&#x441;&#x447;&#x435;&#x437;&#x43D;&#x443;&#x432;&#x448;&#x438;&#x435; &#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x432;&#x448;&#x438;&#x435;&#x441;&#x44F; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x442;&#x44C; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x44B;&#x439; exit code. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x43D;&#x43E;&#x432;&#x430;&#x44F; &#x43F;&#x43B;&#x430;&#x442;&#x430; &#x438;&#x43B;&#x438; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x430;&#x44F; &#x43A;&#x430;&#x440;&#x442;&#x430; &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x439;&#x434;&#x443;&#x442; &#x43F;&#x43E;&#x434; &#x432;&#x438;&#x434;&#x43E;&#x43C; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x433;&#x43E; reboot.</p><p>&#x410;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x44C; firmware settings &#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x435;&#x435;: &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;&#x44B; Redfish &#x438; vendor BMC &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x430;&#x44E;&#x442;&#x441;&#x44F;, &#x430; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43B;&#x438;&#x448;&#x438;&#x442;&#x44C; &#x441;&#x435;&#x442;&#x44C; &#x441;&#x440;&#x430;&#x437;&#x443; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x443;&#x437;&#x43B;&#x43E;&#x432;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; workflow. CI &#x438;&#x43B;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x44B;&#x439; &#x430;&#x433;&#x435;&#x43D;&#x442; &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; evidence &#x438; &#x444;&#x43E;&#x440;&#x43C;&#x438;&#x440;&#x443;&#x435;&#x442; diff; &#x447;&#x435;&#x43B;&#x43E;&#x432;&#x435;&#x43A; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; canary; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x442; read-only gates &#x43F;&#x43E;&#x441;&#x43B;&#x435; reboot. &#x41C;&#x430;&#x441;&#x441;&#x43E;&#x432;&#x43E;&#x435; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x43E; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x434;&#x43B;&#x44F; &#x43E;&#x434;&#x43D;&#x43E;&#x440;&#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x439; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x438; &#x441; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x43C; recovery profile.</p><p>&#x412; acceptance report &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x435; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x44B;&#x445; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x430;. Platform PASS &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; PCI inventory &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x43B; &#x441; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x43C; &#x438; BAR resources &#x43D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x44B; &#x431;&#x435;&#x437; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A;. Driver PASS &#x2014; &#x432;&#x441;&#x435; GPU &#x43F;&#x440;&#x438;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x442; &#x432; nvidia-smi, BAR1 &#x447;&#x438;&#x442;&#x430;&#x435;&#x442;&#x441;&#x44F;, NVRM clean. Runtime PASS &#x2014; CUDA-&#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x439; &#x43A;&#x430;&#x440;&#x442;&#x435; &#x438; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x43C;&#x44B;&#x435; P2P &#x43F;&#x430;&#x440;&#x44B; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;. Application PASS &#x2014; pinned LLM revision &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442;, &#x430; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x435; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x438; &#x443;&#x43A;&#x43B;&#x430;&#x434;&#x44B;&#x432;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x432; &#x441;&#x43E;&#x431;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x439; baseline &#x438;&#x43B;&#x438; SLO. &#x41E;&#x434;&#x438;&#x43D; &#x43E;&#x431;&#x449;&#x438;&#x439; &#x441;&#x442;&#x430;&#x442;&#x443;&#x441; &#x441;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43C;&#x435;&#x441;&#x442;&#x43E; &#x43E;&#x442;&#x43A;&#x430;&#x437;&#x430;.</p><p>&#x41D;&#x435; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x430;&#x431;&#x441;&#x43E;&#x43B;&#x44E;&#x442;&#x43D;&#x44B;&#x439; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440; BAR &#x43A;&#x430;&#x43A; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x43A;&#x43E;&#x43D;&#x441;&#x442;&#x430;&#x43D;&#x442;&#x443; &#x434;&#x43B;&#x44F; &#x432;&#x441;&#x435;&#x445; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43E;&#x432;. &#x41F;&#x440;&#x438; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x438; GPU generation, &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x435; &#x432; MIG/vGPU, &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x438; PCIe switch &#x438;&#x43B;&#x438; passthrough &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x430;&#x44F; &#x43A;&#x430;&#x440;&#x442;&#x430; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F;. &#x412;&#x435;&#x440;&#x441;&#x438;&#x43E;&#x43D;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; baseline &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; hardware profile. &#x415;&#x441;&#x43B;&#x438; &#x443;&#x437;&#x435;&#x43B; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x442; profile, &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x43D;&#x430; review, &#x430; &#x43D;&#x435; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x434;&#x43E; &#x43F;&#x43E;&#x445;&#x43E;&#x436;&#x435;&#x433;&#x43E; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x44F;.</p><p>&#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x43F;&#x440;&#x43E;&#x441;&#x442;: &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x430;&#x439;&#x442;&#x435; checker &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; inventory &#x431;&#x435;&#x437; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x43D;&#x435;&#x432;&#x430;&#x436;&#x43D;&#x43E;&#x433;&#x43E; &#x43D;&#x430; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x432;&#x437;&#x433;&#x43B;&#x44F;&#x434; NVMe &#x438;&#x43B;&#x438; &#x441; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x451;&#x43D;&#x43D;&#x44B;&#x43C; BDF. Pipeline &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; rollout. &#x415;&#x441;&#x43B;&#x438; &#x43E;&#x43D; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x43B;&#x438;&#x448;&#x44C; &#x447;&#x438;&#x441;&#x43B;&#x43E; GPU, &#x43E;&#x43D; &#x43F;&#x440;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442; &#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x44E; &#x43A;&#x43E;&#x43D;&#x444;&#x43B;&#x438;&#x43A;&#x442;&#x430; &#x43D;&#x430; storage &#x438; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x441;&#x442; &#x443;&#x437;&#x435;&#x43B;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x443;&#x435;&#x442; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, &#x43D;&#x43E; &#x43D;&#x435; &#x432;&#x44B;&#x434;&#x435;&#x440;&#x436;&#x438;&#x442; cold start &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x447;&#x438;&#x441;&#x442;&#x43A;&#x438; cache.</p><p>&#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x439;&#x442;&#x435; provenance &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;: &#x432;&#x440;&#x435;&#x43C;&#x44F;, hostname, boot ID, &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; kernel &#x438; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;, commit &#x441;&#x43A;&#x440;&#x438;&#x43F;&#x442;&#x430; &#x438; &#x438;&#x43C;&#x44F; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x430; change. &#x411;&#x435;&#x437; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x434;&#x432;&#x430; &#x432;&#x43D;&#x435;&#x448;&#x43D;&#x435; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x445; PASS &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x44C;. &#x414;&#x43B;&#x44F; fleet &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x43E;&#x442;&#x447;&#x451;&#x442; &#x441; &#x43F;&#x43E;&#x43B;&#x44F;&#x43C;&#x438; expected/observed &#x438; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x43E;&#x439; &#x43D;&#x430; &#x441;&#x44B;&#x440;&#x43E;&#x439; bundle, &#x430; &#x43D;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x433;&#x438;&#x433;&#x430;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; lspci &#x432; &#x442;&#x438;&#x43A;&#x435;&#x442;. &#x427;&#x435;&#x440;&#x435;&#x437; &#x43C;&#x435;&#x441;&#x44F;&#x446; &#x442;&#x430;&#x43A;&#x43E;&#x439; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x438;&#x442; &#x43D;&#x430; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x439; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;: &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x430;&#x441;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; firmware update, &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438; &#x43D;&#x43E;&#x432;&#x43E;&#x439; NIC &#x438;&#x43B;&#x438; &#x443;&#x436;&#x435; &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x43E;&#x432;&#x430;&#x43B;&#x430; &#x432; baseline.</p><p>&#x41D;&#x430;&#x43A;&#x43E;&#x43D;&#x435;&#x446;, &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x435; &#x441;&#x440;&#x43E;&#x43A; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x43C;&#x43E;&#x442;&#x440;&#x430; profile. &#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x430; ReBAR &#x438; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430; &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; firmware &#x438; GPU generation; &#x441;&#x442;&#x430;&#x440;&#x44B;&#x439; PASS &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x441;&#x44F; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43D;&#x430; &#x43D;&#x43E;&#x432;&#x443;&#x44E; &#x441;&#x431;&#x43E;&#x440;&#x43A;&#x443;. &#x41F;&#x435;&#x440;&#x435;&#x434; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x438;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x43F;&#x43E; &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; release notes, &#x43F;&#x43E;&#x43C;&#x435;&#x442;&#x44C;&#x442;&#x435; preview &#x438;&#x43B;&#x438; experimental &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438; &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; canary &#x437;&#x430;&#x43D;&#x43E;&#x432;&#x43E;.</p><h2 id="conclusion">&#x412;&#x44B;&#x432;&#x43E;&#x434;: &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x430;&#x434;&#x440;&#x435;&#x441;&#x43D;&#x43E;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x43E;, &#x43F;&#x43E;&#x442;&#x43E;&#x43C; CUDA, &#x437;&#x430;&#x442;&#x435;&#x43C; LLM</h2>
<p>Resizable BAR &#x438; Above 4G Decoding &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432; &#x442;&#x43E;&#x447;&#x43D;&#x43E;&#x43C; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;&#x435;. Above 4G &#x434;&#x430;&#x451;&#x442; firmware &#x43C;&#x435;&#x441;&#x442;&#x43E; &#x434;&#x43B;&#x44F; 64-&#x431;&#x438;&#x442;&#x43D;&#x44B;&#x445; PCIe resources, ReBAR &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x439; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440; &#x43E;&#x43A;&#x43D;&#x430;, &#x430; NVIDIA BAR1 &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43E;&#x442;&#x43E;&#x431;&#x440;&#x430;&#x436;&#x435;&#x43D;&#x438;&#x435; framebuffer memory. &#x41D;&#x438; &#x43E;&#x434;&#x438;&#x43D; &#x438;&#x437; &#x44D;&#x442;&#x438;&#x445; &#x444;&#x430;&#x43A;&#x442;&#x43E;&#x432; &#x43F;&#x43E; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x435; inference.</p><p>&#x41D;&#x430;&#x434;&#x451;&#x436;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x441;&#x43A;&#x443;&#x447;&#x43D;&#x43E;, &#x438; &#x44D;&#x442;&#x43E; &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x43E;: evidence bundle, &#x43E;&#x434;&#x43D;&#x43E; firmware-&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435;, &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; PCI inventory, driver/BAR1, CUDA context, P2P &#x438; pinned LLM probe. &#x422;&#x435; &#x436;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x438; rollback. &#x41F;&#x440;&#x43E;&#x439;&#x434;&#x438;&#x442;&#x435; &#x44D;&#x442;&#x43E;&#x442; checklist &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43D;&#x430; canary-&#x443;&#x437;&#x43B;&#x435;; &#x435;&#x441;&#x43B;&#x438; hardware gate &#x447;&#x438;&#x441;&#x442;, &#x430; SLO &#x43D;&#x435; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x438;&#x43B;&#x441;&#x44F;, &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x435;&#x441;&#x438;&#x442;&#x435; &#x440;&#x430;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; bottleneck &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x435;&#x449;&#x451; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x43E;&#x439; BIOS-&#x433;&#x430;&#x43B;&#x43E;&#x447;&#x43A;&#x438;.</p><p>&#x414;&#x43B;&#x44F; &#x43D;&#x43E;&#x432;&#x43E;&#x433;&#x43E; multi-GPU dedicated server &#x44D;&#x442;&#x43E;&#x442; runbook &#x441;&#x442;&#x43E;&#x438;&#x442; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; &#x432; &#x43F;&#x440;&#x438;&#x451;&#x43C;&#x43E;&#x447;&#x43D;&#x44B;&#x435; &#x438;&#x441;&#x43F;&#x44B;&#x442;&#x430;&#x43D;&#x438;&#x44F; &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x447;&#x438; &#x443;&#x437;&#x43B;&#x430; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x435; ML. &#x41E;&#x434;&#x438;&#x43D; &#x447;&#x430;&#x441; &#x43D;&#x430; baseline &#x438; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44C; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x434;&#x435;&#x448;&#x435;&#x432;&#x43B;&#x435; &#x43D;&#x43E;&#x447;&#x43D;&#x43E;&#x439; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x442;&#x43E;&#x433;&#x43E;, &#x43A;&#x430;&#x43A; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440; &#x443;&#x436;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x451;&#x43D; &#x432; production pool.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[VFIO и IOMMU для LLM: безопасный GPU passthrough в KVM]]></title><description><![CDATA[Практический runbook по передаче NVIDIA GPU в KVM через VFIO и IOMMU: topology gate, libvirt, CUDA/LLM readiness, диагностика и rollback.]]></description><link>https://kingservers.com/blog/vfio-iommu-gpu-passthrough-llm-vm/</link><guid isPermaLink="false">6a9559b6aff2afac25354bef</guid><category><![CDATA[Решения для бизнеса]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Mon, 31 Aug 2026 11:05:50 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-hero-83d5ab8c.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#granitsa-metoda">&#x41F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; passthrough: &#x433;&#x434;&#x435; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x430;</a></li>
<li><a href="#iommu-group-gate">IOMMU group &#x2014; &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x435;&#x434;&#x438;&#x43D;&#x438;&#x446;&#x430; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x44F;</a></li>
<li><a href="#host-baseline">&#x41F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43A;&#x430; &#x445;&#x43E;&#x441;&#x442;&#x430;: evidence &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; detach</a></li>
<li><a href="#binding-libvirt">Bind &#x438; libvirt: &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x447;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x431;&#x44B;&#x442;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x43E;&#x439;</a></li>
<li><a href="#vm-start-gate">&#x421;&#x442;&#x430;&#x440;&#x442; VM: &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; PCI &#x438; reset, &#x43F;&#x43E;&#x442;&#x43E;&#x43C; CUDA</a></li>
<li><a href="#cuda-llm-gate">Application gate: CUDA &#x432;&#x438;&#x434;&#x438;&#x442; &#x43A;&#x430;&#x440;&#x442;&#x443;, LLM &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442;</a></li>
<li><a href="#isolation-observability">&#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x438; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B;</a></li>
<li><a href="#troubleshooting">Troubleshooting &#x43F;&#x43E; &#x441;&#x43B;&#x43E;&#x44F;&#x43C;: &#x43D;&#x435; &#x43B;&#x435;&#x447;&#x438;&#x442;&#x435; LLM &#x447;&#x435;&#x440;&#x435;&#x437; PCI</a></li>
<li><a href="#rollback-runbook">Rollback: &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; GPU &#x438; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</a></li>
<li><a href="#production-checklist">Production-&#x447;&#x435;&#x43A;&#x43B;&#x438;&#x441;&#x442; &#x438; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x448;&#x430;&#x433;</a></li>
</ul></div>

</div>GPU &#x432;&#x438;&#x434;&#x435;&#x43D; &#x432; &#x433;&#x43E;&#x441;&#x442;&#x435;&#x432;&#x43E;&#x439; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x435;, &#x43D;&#x43E; &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A; VM &#x437;&#x430;&#x43A;&#x430;&#x43D;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x43E;&#x439; reset, &#x430; &#x445;&#x43E;&#x441;&#x442; &#x432;&#x441;&#x451; &#x435;&#x449;&#x451; &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x44E;&#x44E; PCI-&#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x44E;. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x440;&#x435;&#x434;&#x43A;&#x430;&#x44F; &#xAB;&#x43C;&#x430;&#x433;&#x438;&#x44F; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;&#xBB;, &#x430; &#x43F;&#x440;&#x438;&#x437;&#x43D;&#x430;&#x43A; &#x442;&#x43E;&#x433;&#x43E;, &#x447;&#x442;&#x43E; lifecycle passthrough &#x43D;&#x435; &#x431;&#x44B;&#x43B; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D; &#x43F;&#x43E; &#x441;&#x43B;&#x43E;&#x44F;&#x43C;. &#x41D;&#x438;&#x436;&#x435; &#x2014; production-runbook &#x434;&#x43B;&#x44F; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x433;&#x43E; NVIDIA GPU passthrough &#x432; KVM: &#x43E;&#x442; IOMMU group &#x438; bind gate &#x434;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; LLM-&#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x430;, &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x438;&#x437;&#x43E;&#x43B;&#x44F;&#x446;&#x438;&#x438; &#x438; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430; &#x431;&#x435;&#x437; reboot.<div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <img src="https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-hero-83d5ab8c.webp" alt="VFIO &#x438; IOMMU &#x434;&#x43B;&#x44F; LLM: &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; GPU passthrough &#x432; KVM"><p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="granitsa-metoda">&#x41F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; passthrough: &#x433;&#x434;&#x435; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x430;</h2>
<p>&#x41F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; PCIe passthrough &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43D;&#x435; &#x434;&#x43B;&#x44F; &#x442;&#x43E;&#x433;&#x43E;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#xAB;&#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x44C; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E;&#xBB;, &#x430; &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43E;&#x442;&#x434;&#x430;&#x442;&#x44C; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x435; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C; &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x431;&#x435;&#x437; &#x443;&#x447;&#x430;&#x441;&#x442;&#x438;&#x44F; &#x445;&#x43E;&#x441;&#x442;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;. &#x414;&#x43B;&#x44F; LLM-&#x438;&#x43D;&#x444;&#x435;&#x440;&#x435;&#x43D;&#x441;&#x430; &#x44D;&#x442;&#x43E; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x437;&#x430;&#x43A;&#x430;&#x437;&#x447;&#x438;&#x43A;&#x438;, &#x43E;&#x43A;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x438;&#x43B;&#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x443;&#x440;&#x44B; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x431;&#x44B;&#x442;&#x44C; &#x440;&#x430;&#x437;&#x43D;&#x435;&#x441;&#x435;&#x43D;&#x44B; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435;, &#x447;&#x435;&#x43C; &#x44D;&#x442;&#x43E; &#x434;&#x430;&#x451;&#x442; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;. &#x426;&#x435;&#x43D;&#x430; &#x44F;&#x441;&#x43D;&#x430; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435;: &#x43E;&#x434;&#x438;&#x43D; GPU &#x432; &#x43C;&#x43E;&#x43C;&#x435;&#x43D;&#x442; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438; &#x43F;&#x440;&#x438;&#x43D;&#x430;&#x434;&#x43B;&#x435;&#x436;&#x438;&#x442; &#x43E;&#x434;&#x43D;&#x43E;&#x43C;&#x443; &#x433;&#x43E;&#x441;&#x442;&#x44E;, &#x430; &#x43F;&#x43B;&#x430;&#x43D;&#x43E;&#x432;&#x430;&#x44F; &#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44E; &#x441; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x43E;&#x439; &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x43A;&#x43E;&#x439; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;.</p><p>&#x42D;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x438;&#x43D;&#x43E;&#x439; &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x439;, &#x447;&#x435;&#x43C; <a href="https://kingservers.com/blog/mig-mps-dlya-multi-tenant-gpu/">MIG &#x438;&#x43B;&#x438; MPS &#x434;&#x43B;&#x44F; multi-tenant GPU</a>. MIG &#x440;&#x435;&#x436;&#x435;&#x442; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x439; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C; &#x43D;&#x430; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x44B;&#x435; &#x44D;&#x43A;&#x437;&#x435;&#x43C;&#x43F;&#x43B;&#x44F;&#x440;&#x44B;, MPS &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x43D;&#x43E; &#x43F;&#x43B;&#x430;&#x43D;&#x438;&#x440;&#x443;&#x435;&#x442; CUDA-&#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;&#x44B;, &#x430; passthrough &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x451;&#x442; &#x432;&#x435;&#x441;&#x44C; PCI-&#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x43E;&#x43D;&#x430;&#x43B; &#x433;&#x43E;&#x441;&#x442;&#x44E;. &#x415;&#x441;&#x43B;&#x438; &#x434;&#x432;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x430;&#x442;&#x44C; &#x43E;&#x434;&#x438;&#x43D; GPU, &#x44D;&#x442;&#x43E;&#x442; runbook &#x440;&#x435;&#x448;&#x430;&#x435;&#x442; &#x43D;&#x435; &#x442;&#x443; &#x437;&#x430;&#x434;&#x430;&#x447;&#x443;.</p><p>&#x417;&#x430;&#x442;&#x43E; &#x443; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x430; &#x435;&#x441;&#x442;&#x44C; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430;: &#x445;&#x43E;&#x441;&#x442; &#x43D;&#x435; &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x430;&#x435;&#x442; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x438; &#x43D;&#x435; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; CUDA workload. &#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x44F;&#x435;&#x442; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; guest OS, &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430; &#x438; inference runtime &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; VM, &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x441;&#x435;&#x442;&#x435;&#x432;&#x43E;&#x439; &#x441;&#x43B;&#x43E;&#x439; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x442; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x433;&#x43E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x438; &#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x437;&#x43D;&#x430;&#x435;&#x442; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x430; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x43B;&#x438; &#x43B;&#x438; &#x432;&#x44B;, &#x43A;&#x442;&#x43E; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x435;&#x442; &#x43A;&#x430;&#x440;&#x442;&#x43E;&#x439; &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430;? &#x41E;&#x442;&#x432;&#x435;&#x442; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430;&#x43C;&#x438;, &#x430; &#x43D;&#x435; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x435;&#x43C; VM.</p><ul><li><strong>&#x412;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x439;&#x442;&#x435; passthrough</strong>, &#x435;&#x441;&#x43B;&#x438; &#x432;&#x430;&#x436;&#x43D;&#x44B; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x44F;&#x434;&#x440;&#x43E; &#x433;&#x43E;&#x441;&#x442;&#x44F;, &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x44B;&#x439; userspace &#x438; &#x43E;&#x434;&#x438;&#x43D; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x435;&#x446; GPU.</li><li><strong>&#x41D;&#x435; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x439;&#x442;&#x435;</strong>, &#x435;&#x441;&#x43B;&#x438; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B; live migration, &#x43F;&#x440;&#x43E;&#x437;&#x440;&#x430;&#x447;&#x43D;&#x44B;&#x439; sharing &#x438;&#x43B;&#x438; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x44B;&#x439; autoscaling &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x435;.</li><li><strong>&#x41D;&#x435; &#x43F;&#x443;&#x442;&#x430;&#x439;&#x442;&#x435;</strong> &#x438;&#x437;&#x43E;&#x43B;&#x44F;&#x446;&#x438;&#x44E; DMA &#x441; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x439; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430;: &#x441;&#x435;&#x442;&#x44C;, &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442;&#x44B;, &#x43E;&#x431;&#x440;&#x430;&#x437;&#x44B; &#x438; API &#x442;&#x440;&#x435;&#x431;&#x443;&#x44E;&#x442; &#x441;&#x43E;&#x431;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x435;&#x439;.</li></ul><h2 id="iommu-group-gate">IOMMU group &#x2014; &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x435;&#x434;&#x438;&#x43D;&#x438;&#x446;&#x430; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x44F;</h2>
<p>VFIO &#x441;&#x442;&#x440;&#x43E;&#x438;&#x442; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x443;&#x44E; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x447;&#x443; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430; &#x432;&#x43E;&#x43A;&#x440;&#x443;&#x433; IOMMU: &#x43E;&#x43D;&#x430; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; DMA &#x442;&#x435;&#x43C;&#x438; &#x43E;&#x431;&#x43B;&#x430;&#x441;&#x442;&#x44F;&#x43C;&#x438; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x44B; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x443;. &#x41D;&#x43E; &#x435;&#x434;&#x438;&#x43D;&#x438;&#x446;&#x435;&#x439; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x434;&#x438;&#x43D; &#x430;&#x434;&#x440;&#x435;&#x441; PCI. &#x414;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x44F;&#x434;&#x440;&#x430; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; IOMMU group &#x43A;&#x430;&#x43A; &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x438;&#x437;&#x43E;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43E;&#x442; &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x445;. &#x41C;&#x43D;&#x43E;&#x433;&#x43E;&#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x43E;&#x43D;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; GPU, &#x435;&#x433;&#x43E; audio-&#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x44F; &#x438;&#x43B;&#x438; &#x43C;&#x43E;&#x441;&#x442; &#x431;&#x435;&#x437; ACS &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x432; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x435;.</p><p>&#x41E;&#x442;&#x441;&#x44E;&#x434;&#x430; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x436;&#x451;&#x441;&#x442;&#x43A;&#x438;&#x439; stop condition: &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x433;&#x440;&#x430;&#x444;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x443;&#x44E; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x44E; &#x438; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x44E;&#x44E; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x44E; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x43C;&#x443; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x443; &#x445;&#x43E;&#x441;&#x442;&#x430;. &#x413;&#x440;&#x443;&#x43F;&#x43F;&#x430; &#x43D;&#x435; &#x441;&#x442;&#x430;&#x43D;&#x435;&#x442; viable, &#x430; &#x43F;&#x43E;&#x43F;&#x44B;&#x442;&#x43A;&#x430; &#xAB;&#x43F;&#x43E;&#x447;&#x438;&#x43D;&#x438;&#x442;&#x44C;&#xBB; &#x435;&#x451; &#x43F;&#x440;&#x438;&#x43D;&#x443;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; ACS override &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x44F;. &#x412; production &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x43A;&#x430;&#x440;&#x442;&#x443; &#x432; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x441;&#x43B;&#x43E;&#x442;, &#x432;&#x44B;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x44F;&#x449;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x43F;&#x43B;&#x430;&#x442;&#x443; &#x438;&#x43B;&#x438; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x442;&#x44C; &#x432;&#x435;&#x441;&#x44C; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; &#x43D;&#x430;&#x431;&#x43E;&#x440;.</p><p>&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x441;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; evidence bundle: &#x430;&#x434;&#x440;&#x435;&#x441;&#x430;, vendor/device ID, kernel driver, NUMA node &#x438; &#x441;&#x43E;&#x441;&#x442;&#x430;&#x432; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B;. &#x41D;&#x435; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x441; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; initramfs. &#x41D;&#x430; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; &#x441; &#x434;&#x432;&#x443;&#x43C;&#x44F; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x43C;&#x438; GPU &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x432; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x441;&#x438;&#x43C;&#x432;&#x43E;&#x43B;&#x435; BDF &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43D;&#x430; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x430;&#x440;&#x442;&#x443;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x430;&#x44F; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x436;&#x438;&#x432;&#x43E;&#x439; endpoint.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">inventory-vfio.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>GPU=0000:65:00.0
lspci -nnk -s &quot;$GPU&quot;
readlink -f &quot;/sys/bus/pci/devices/$GPU/iommu_group&quot;
for dev in /sys/bus/pci/devices/$GPU/iommu_group/devices/*; do
  bdf=$(basename &quot;$dev&quot;)
  lspci -nnk -s &quot;$bdf&quot;
done
cat &quot;/sys/bus/pci/devices/$GPU/numa_node&quot;</code></pre>

</div>
<p>Gate &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x430; &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442;, &#x435;&#x451; &#x441;&#x43E;&#x441;&#x442;&#x430;&#x432; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;, &#x438; &#x43D;&#x438; &#x43E;&#x434;&#x438;&#x43D; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x439; device &#x43D;&#x435; &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x445;&#x43E;&#x441;&#x442;&#x443; &#x434;&#x43B;&#x44F; &#x434;&#x438;&#x441;&#x43A;&#x430;, &#x441;&#x435;&#x442;&#x438; &#x438;&#x43B;&#x438; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;. &#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x435;&#x435; &#x432;&#x430;&#x436;&#x43D;&#x430;: &#x432;&#x44B;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x439; GPU &#x438; &#x443;&#x431;&#x435;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C;, &#x447;&#x442;&#x43E; &#x43E;&#x43D; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x432; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x435;. &#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43E;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x438;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x438; &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x430; &#x43A; IOMMUFD &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x432; <a href="https://docs.kernel.org/driver-api/vfio.html?ref=kingservers.com">&#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; Linux VFIO</a>.</p><style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}
.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}.ks-widget .panel.on{display:block}.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}
.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style><div class="ks-widget" id="ks-sel-vfio731"><h3>&#x41F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x43B;&#x438; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; passthrough &#x432;&#x430;&#x448;&#x435;&#x43C;&#x443; &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x44E;?</h3><label>&#x413;&#x43B;&#x430;&#x432;&#x43D;&#x43E;&#x435; &#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435;</label><select data-s><option value="isolation">&#x416;&#x451;&#x441;&#x442;&#x43A;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43C;&#x435;&#x436;&#x434;&#x443; workloads</option><option value="sharing">&#x41E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x438;&#x445; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;</option><option value="mobility">Live migration &#x431;&#x435;&#x437; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-vfio731');if(!r)return;var m={"isolation":"Полный PCIe passthrough уместен: одна VM получает устройство целиком, но сначала подтвердите IOMMU group и reset.","sharing":"Смотрите в сторону MIG, vGPU или MPS: полный passthrough не делит один GPU между работающими гостями.","mobility":"Passthrough усложняет миграцию: планируйте остановку, повторную привязку и application-level failover."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-01-268fa39c.webp" class="kg-image" alt="VFIO &#x438; IOMMU &#x434;&#x43B;&#x44F; LLM: &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; GPU passthrough &#x432; KVM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-01-268fa39c.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-01-268fa39c.webp 1000w, https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-01-268fa39c.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="host-baseline">&#x41F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43A;&#x430; &#x445;&#x43E;&#x441;&#x442;&#x430;: evidence &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; detach</h2>
<p>&#x414;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438; &#x43B;&#x44E;&#x431;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430; &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; baseline. &#x41D;&#x443;&#x436;&#x43D;&#x44B; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F; &#x44F;&#x434;&#x440;&#x430;, &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;, &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; GPU, &#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x435; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x44B; &#x438; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; IOMMU. &#x421;&#x430;&#x43C; &#x444;&#x430;&#x43A;&#x442; &#x43F;&#x43E;&#x44F;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;&#x430; <code>/sys/kernel/iommu_groups</code> &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D;, &#x43D;&#x43E; &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x443; &#x436;&#x443;&#x440;&#x43D;&#x430;&#x43B;&#x430; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x438; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x439; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B;.</p><p>&#x414;&#x43B;&#x44F; Intel &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x44E;&#x442; VT-d, &#x434;&#x43B;&#x44F; AMD &#x2014; AMD-Vi/IOMMU &#x432; firmware &#x438; kernel command line &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43D;&#x43E; &#x434;&#x438;&#x441;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438;&#x432;&#x443;. &#x41D;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; &#x438;&#x437; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x43E;&#x433;&#x43E; &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x430;: &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x438; &#x434;&#x435;&#x444;&#x43E;&#x43B;&#x442;&#x44B; &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F;, &#x430; &#x447;&#x430;&#x441;&#x442;&#x44C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x445; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x442; remapping &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;. &#x417;&#x434;&#x435;&#x441;&#x44C; &#x43D;&#x430;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E; &#x43D;&#x435;&#x442; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438; &#x434;&#x43B;&#x44F; GRUB; &#x435;&#x451; &#x43D;&#x430;&#x434;&#x43E; &#x441;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; &#x441; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x435;&#x439; &#x432;&#x430;&#x448;&#x435;&#x439; &#x41E;&#x421; &#x438; &#x43F;&#x43B;&#x430;&#x442;&#x44B;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">host-baseline.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>uname -r
cat /proc/cmdline
journalctl -k -b | grep -Ei &apos;DMAR|IOMMU|AMD-Vi&apos;
lspci -Dnnk | grep -A3 -Ei &apos;VGA|3D|Audio&apos;
nvidia-smi
fuser -v /dev/nvidia* 2&gt;/dev/null || true</code></pre>

</div>
<p>&#x415;&#x441;&#x43B;&#x438; &#x43D;&#x430; GPU &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x44E;&#x442; exporter, persistence daemon &#x438;&#x43B;&#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;, graceful stop &#x43F;&#x440;&#x438;&#x43D;&#x430;&#x434;&#x43B;&#x435;&#x436;&#x438;&#x442; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x443; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430;. &#x41F;&#x440;&#x438;&#x43D;&#x443;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; unbind &#x43F;&#x440;&#x438; &#x436;&#x438;&#x432;&#x43E;&#x43C; CUDA-&#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;&#x435; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x443;&#x44E; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43A;&#x443; &#x432; reset-&#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;. &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; owner, &#x43E;&#x43A;&#x43D;&#x43E; &#x440;&#x430;&#x431;&#x43E;&#x442; &#x438; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x443; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430; &#x435;&#x449;&#x451; &#x434;&#x43E; detach.</p><p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;: monitoring &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43D;&#x443;&#x43B;&#x435;&#x432;&#x443;&#x44E; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x443;, &#x43D;&#x43E; exporter &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; device node. &#x41C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x430; &#x433;&#x43E;&#x432;&#x43E;&#x440;&#x438;&#x442; &#xAB;idle&#xBB;, &#x430; kernel driver &#x432;&#x441;&#x451; &#x435;&#x449;&#x451; &#x438;&#x43C;&#x435;&#x435;&#x442; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x430;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x44B;&#x439; gate &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x43E;&#x432;, driver binding &#x438; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435;.</p><p>&#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; baseline &#x432; &#x442;&#x438;&#x43A;&#x435;&#x442; &#x440;&#x430;&#x431;&#x43E;&#x442;: BDF, UUID, driver version, &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x439; &#x438; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; rollback &#x44D;&#x442;&#x438; &#x436;&#x435; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x441;&#x442;&#x430;&#x43D;&#x443;&#x442; &#x44D;&#x442;&#x430;&#x43B;&#x43E;&#x43D;&#x43E;&#x43C;. &#x411;&#x435;&#x437; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x43D;&#x438;&#x43C;&#x43A;&#x430; &#x434;&#x43E; &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x43F;&#x440;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442; &#x438;&#x441;&#x447;&#x435;&#x437;&#x43D;&#x443;&#x432;&#x448;&#x443;&#x44E; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x44E; &#x438;&#x43B;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x432;&#x448;&#x438;&#x439;&#x441;&#x44F; NUMA affinity.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-02-62d11baf.webp" class="kg-image" alt="VFIO &#x438; IOMMU &#x434;&#x43B;&#x44F; LLM: &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; GPU passthrough &#x432; KVM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-02-62d11baf.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-02-62d11baf.webp 1000w, https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-02-62d11baf.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="binding-libvirt">Bind &#x438; libvirt: &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x447;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x431;&#x44B;&#x442;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x43E;&#x439;</h2>
<p>&#x412; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438; libvirt &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x441;&#x430;&#x43C; &#x43E;&#x442;&#x441;&#x43E;&#x435;&#x434;&#x438;&#x43D;&#x438;&#x442;&#x44C; PCI device &#x43E;&#x442; &#x445;&#x43E;&#x441;&#x442;&#x430; &#x43F;&#x435;&#x440;&#x435;&#x434; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x43E;&#x43C; &#x438; &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x430;. &#x414;&#x43B;&#x44F; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x443; <code>hostdev</code> &#x437;&#x430;&#x434;&#x430;&#x44E;&#x442; <code>managed=&apos;yes&apos;</code> &#x438; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; domain/bus/slot/function. &#x42D;&#x442;&#x43E; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43D;&#x430;&#x431;&#x43E;&#x440;&#x430; &#x440;&#x443;&#x447;&#x43D;&#x44B;&#x445; echo &#x432; sysfs: lifecycle &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x447;&#x430;&#x441;&#x442;&#x44C;&#x44E; &#x434;&#x435;&#x43A;&#x43B;&#x430;&#x440;&#x430;&#x446;&#x438;&#x438; VM, &#x430; &#x43D;&#x435; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C;&#x44E; &#x434;&#x435;&#x436;&#x443;&#x440;&#x43D;&#x43E;&#x433;&#x43E;.</p><p>&#x415;&#x441;&#x43B;&#x438; GPU &#x43C;&#x43D;&#x43E;&#x433;&#x43E;&#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x43E;&#x43D;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439;, &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x432;&#x441;&#x435; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x435; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;&#x438; hostdev &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x438;&#x445; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x43D;&#x43E;&#x435; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x435;. &#x414;&#x43B;&#x44F; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x43A;&#x430;&#x440;&#x442; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x432;&#x430;&#x436;&#x43D;&#x44B; UEFI guest &#x438; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x43E; BAR. NVIDIA &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x438;&#x435; BAR &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43F;&#x43E;&#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43A; VM, &#x430; &#x43D;&#x435;&#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43E;&#x431;&#x445;&#x43E;&#x434;&#x43D;&#x44B;&#x435; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; QEMU &#x438;&#x43C;&#x435;&#x44E;&#x442; experimental-&#x441;&#x442;&#x430;&#x442;&#x443;&#x441;; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x438;&#x445; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x434;&#x43B;&#x44F; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x435;&#x439;&#x441;&#x430;.</p><p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; XML &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x44B;&#x439; &#x444;&#x430;&#x439;&#x43B;. <code>virsh dumpxml</code> &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; effective configuration &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x430;, <code>lspci -nnk</code> &#x2014; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x439; driver &#x445;&#x43E;&#x441;&#x442;&#x430;. &#x421;&#x43F;&#x435;&#x446;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x44F; <a href="https://libvirt.org/formatdomain.html?ref=kingservers.com">libvirt Domain XML</a> &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; managed hostdev: &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E; detach &#x43F;&#x435;&#x440;&#x435;&#x434; &#x441;&#x442;&#x430;&#x440;&#x442;&#x43E;&#x43C; &#x438; reattach &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x432;&#x44B;&#x445;&#x43E;&#x434;&#x430; &#x433;&#x43E;&#x441;&#x442;&#x44F;.</p><p>Stop condition &#x43F;&#x440;&#x43E;&#x441;&#x442;: &#x435;&#x441;&#x43B;&#x438; &#x43F;&#x435;&#x440;&#x435;&#x434; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x43E;&#x43C; &#x432;&#x435;&#x441;&#x44C; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B; &#x43D;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432; &#x43A; vfio &#x438;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x445;&#x43E;&#x442;&#x44F; &#x431;&#x44B; &#x43E;&#x434;&#x43D;&#x430; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x44F; &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x430;&#x441;&#x44C; &#x443; &#x445;&#x43E;&#x441;&#x442;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;, &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x43A; VM &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x430;&#x451;&#x442;&#x441;&#x44F;. &#x420;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x442;&#x44C; &#x43F;&#x440;&#x438;&#x432;&#x438;&#x43B;&#x435;&#x433;&#x438;&#x438; &#x438;&#x43B;&#x438; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x442;&#x44C; unsafe no-IOMMU &#x440;&#x430;&#x434;&#x438; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F;: &#x44D;&#x442;&#x43E; &#x443;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; &#x441;&#x430;&#x43C;&#x443; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443; DMA.</p><p>&#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x437;&#x430;&#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435;, &#x43A;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; XML &#x438; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x434;&#x43E;&#x43C;&#x435;&#x43D;. &#x414;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x43A; libvirt &#x434;&#x43B;&#x44F; passthrough &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x434;&#x430;&#x451;&#x442; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x43C; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E;&#x43C;. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x430;&#x44F; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; privilege boundary &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x431;&#x44B;&#x442;&#x44C; &#x443;&#x437;&#x43A;&#x43E;&#x439; &#x438; &#x436;&#x443;&#x440;&#x43D;&#x430;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x439;.</p><div class="ks-widget" id="ks-tab-bind482"><h3>&#x41A;&#x442;&#x43E; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; GPU &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x44D;&#x442;&#x430;&#x43F;&#x435;?</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="before">&#x414;&#x43E; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;</button><button type="button" class="tab-btn" data-t="running">VM &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442;</button><button type="button" class="tab-btn" data-t="after">&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438;</button></div><div class="panel on" data-p="before">&#x425;&#x43E;&#x441;&#x442; &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; evidence, &#x43E;&#x441;&#x432;&#x43E;&#x431;&#x43E;&#x436;&#x434;&#x430;&#x435;&#x442; &#x432;&#x441;&#x435; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B; &#x438; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x451;&#x442; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E; vfio-pci.</div><div class="panel" data-p="running">&#x413;&#x43E;&#x441;&#x442;&#x435;&#x432;&#x43E;&#x439; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x435;&#x442; GPU; &#x445;&#x43E;&#x441;&#x442; &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x447;&#x435;&#x440;&#x435;&#x437; nvidia &#x438;&#x43B;&#x438; nouveau.</div><div class="panel" data-p="after">libvirt &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E; &#x445;&#x43E;&#x441;&#x442;&#x443;, &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x447;&#x435;&#x433;&#x43E; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; driver, reset &#x438; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x44B;.</div><script>(function(){var r=document.getElementById('ks-tab-bind482');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-03-5cde89e6.webp" class="kg-image" alt="VFIO &#x438; IOMMU &#x434;&#x43B;&#x44F; LLM: &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; GPU passthrough &#x432; KVM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-03-5cde89e6.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-03-5cde89e6.webp 1000w, https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-03-5cde89e6.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="vm-start-gate">&#x421;&#x442;&#x430;&#x440;&#x442; VM: &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; PCI &#x438; reset, &#x43F;&#x43E;&#x442;&#x43E;&#x43C; CUDA</h2>
<p>&#x41F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A; &#x434;&#x435;&#x43B;&#x430;&#x439;&#x442;&#x435; &#x431;&#x435;&#x437; production-&#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430; &#x438; &#x431;&#x435;&#x437; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x433;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430; LLM. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x433;&#x43E;&#x441;&#x442;&#x435;&#x432;&#x430;&#x44F; &#x41E;&#x421; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; PCI ID, &#x430; &#x445;&#x43E;&#x441;&#x442; &#x2014; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x442;&#x44C; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x442;&#x44C; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E;&#x43C;. &#x422;&#x430;&#x43A; &#x432;&#x44B; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442;&#x435; &#x441;&#x431;&#x43E;&#x439; assignment &#x43E;&#x442; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430; &#x438; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">start-and-check.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>virsh start llm-vfio-01
virsh domstate llm-vfio-01
virsh dumpxml llm-vfio-01 | sed -n &apos;/<hostdev , <\ hostdev>/p&apos;
lspci -nnk -s 0000:65:00.0
# &#x412; &#x433;&#x43E;&#x441;&#x442;&#x435;:
lspci -nnk | grep -A3 -Ei &apos;VGA|3D|NVIDIA&apos;</hostdev></code></pre>

</div>
<p>&#x415;&#x441;&#x43B;&#x438; &#x434;&#x43E;&#x43C;&#x435;&#x43D; &#x43D;&#x435; &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442;, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x443; libvirt, kernel log &#x438; &#x441;&#x43E;&#x441;&#x442;&#x430;&#x432; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B; &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;. &#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B; &#x43B;&#x435;&#x436;&#x430;&#x442; &#x432; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x451;&#x445; &#x441;&#x43B;&#x43E;&#x44F;&#x445;: &#x447;&#x430;&#x441;&#x442;&#x44C; IOMMU group &#x437;&#x430;&#x43D;&#x44F;&#x442;&#x430;, BAR &#x43D;&#x435; &#x43F;&#x43E;&#x43C;&#x435;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x430;&#x434;&#x440;&#x435;&#x441;&#x43D;&#x43E;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x440;&#x430;&#x43D;&#x441;&#x442;&#x432;&#x43E; &#x433;&#x43E;&#x441;&#x442;&#x44F;, device reset &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x430;&#x43D; &#x432; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x43C; lifecycle &#x438;&#x43B;&#x438; &#x430;&#x434;&#x440;&#x435;&#x441; &#x432; XML &#x43D;&#x435;&#x432;&#x435;&#x440;&#x435;&#x43D;. &#x41C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; firmware, XML &#x438; driver version &#x2014; &#x43F;&#x43B;&#x43E;&#x445;&#x43E;&#x439; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;: &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x442;&#x430;&#x43A;&#x43E;&#x433;&#x43E; &#x432;&#x44B; &#x43D;&#x435; &#x443;&#x437;&#x43D;&#x430;&#x435;&#x442;&#x435;, &#x447;&#x442;&#x43E; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x43B;&#x43E;.</p><p>&#x423;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; &#x441;&#x442;&#x430;&#x440;&#x442; &#x442;&#x43E;&#x436;&#x435; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43F;&#x43E;&#x43F;&#x44B;&#x442;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43E;&#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x433;&#x43D;&#x443;&#x442;&#x44C;. &#x41D;&#x430; &#x445;&#x43E;&#x441;&#x442;&#x435; <code>nvidia-smi</code> &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x43D;&#x43D;&#x443;&#x44E; &#x43A;&#x430;&#x440;&#x442;&#x443;; &#x432; &#x433;&#x43E;&#x441;&#x442;&#x435; BDF &#x438; device ID &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x43E;&#x432;&#x430;&#x442;&#x44C; baseline. &#x415;&#x441;&#x43B;&#x438; &#x43E;&#x434;&#x438;&#x43D; accelerator &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#xAB;&#x432;&#x438;&#x434;&#x435;&#x43D;&#xBB; &#x43E;&#x431;&#x43E;&#x438;&#x43C; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;&#x43C; &#x43A;&#x430;&#x43A; &#x440;&#x430;&#x431;&#x43E;&#x447;&#x438;&#x439;, gate &#x43F;&#x440;&#x43E;&#x432;&#x430;&#x43B;&#x435;&#x43D;.</p><p>&#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430;, &#x43D;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x44A;&#x44F;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x435;&#x451; benchmark. &#x41F;&#x435;&#x440;&#x432;&#x44B;&#x439; boot &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x442;&#x44C; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E; driver, &#x430; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x44B;&#x439; &#x2014; &#x438;&#x43D;&#x43E;&#x439; reset path. &#x412;&#x430;&#x436;&#x43D;&#x435;&#x435; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438; start &#x2192; stop &#x2192; start &#x438; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x445; AER, IOMMU fault &#x438;&#x43B;&#x438; Xid &#x432; &#x436;&#x443;&#x440;&#x43D;&#x430;&#x43B;&#x430;&#x445;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-04-125f68fa.webp" class="kg-image" alt="VFIO &#x438; IOMMU &#x434;&#x43B;&#x44F; LLM: &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; GPU passthrough &#x432; KVM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-04-125f68fa.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-04-125f68fa.webp 1000w, https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-04-125f68fa.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="cuda-llm-gate">Application gate: CUDA &#x432;&#x438;&#x434;&#x438;&#x442; &#x43A;&#x430;&#x440;&#x442;&#x443;, LLM &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442;</h2>
<p>&#x420;&#x430;&#x431;&#x43E;&#x447;&#x438;&#x439; PCI passthrough &#x435;&#x449;&#x451; &#x43D;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C; inference. &#x412;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x433;&#x43E;&#x441;&#x442;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; driver, UUID, ECC-&#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x442;&#x430;&#x43C;, &#x433;&#x434;&#x435; &#x43E;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x443; &#x438; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; Xid. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x44B;&#x439; runtime &#x441; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x439; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;&#x44E; &#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x435;&#x439;. &#x41D;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x433;&#x43E;&#x441;&#x442;&#x435;&#x432;&#x43E;&#x439; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#xAB;&#x434;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x435;&#x433;&#x43E;&#xBB; &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x438;: &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; CUDA runtime, kernel module &#x438; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x431;&#x44B;&#x442;&#x44C; &#x447;&#x430;&#x441;&#x442;&#x44C;&#x44E; version lock.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">guest-readiness.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>nvidia-smi -L
nvidia-smi --query-gpu=uuid,name,driver_version,memory.total --format=csv
journalctl -k -b | grep -Ei &apos;NVRM|Xid&apos; || true
curl --fail --silent http://127.0.0.1:8000/v1/models
curl --fail --silent -H &apos;Content-Type: application/json&apos;   -d &apos;{&quot;model&quot;:&quot;<pinned-model-id>&quot;,&quot;prompt&quot;:&quot;health probe&quot;,&quot;max_tokens&quot;:8}&apos;   http://127.0.0.1:8000/v1/completions</pinned-model-id></code></pre>

</div>
<p>Application gate &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x434;&#x432;&#x430; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x430;. &#x41F;&#x435;&#x440;&#x432;&#x43E;&#x435;: CUDA &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x439; GPU, &#x430; &#x43D;&#x435; CPU fallback. &#x412;&#x442;&#x43E;&#x440;&#x43E;&#x435;: &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x441; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x43C; model ID. Latency &#x43E;&#x434;&#x438;&#x43D;&#x43E;&#x447;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x430; &#x43D;&#x435; &#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; benchmark; &#x43E;&#x43D;&#x430; &#x43B;&#x438;&#x448;&#x44C; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; &#x43F;&#x443;&#x442;&#x44C; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x44F;.</p><p>&#x41A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x430;&#x435;&#x442; &#x43D;&#x435; &#x43F;&#x440;&#x438;&#x43D;&#x44F;&#x442;&#x44C; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x437;&#x430; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443;. &#x41E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; inference-&#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;, &#x443;&#x431;&#x435;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C;, &#x447;&#x442;&#x43E; endpoint &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D;, &#x430; GPU memory &#x43E;&#x441;&#x432;&#x43E;&#x431;&#x43E;&#x436;&#x434;&#x430;&#x435;&#x442;&#x441;&#x44F;; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x435; &#x441;&#x43D;&#x43E;&#x432;&#x430; &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; probe. &#x422;&#x430;&#x43A; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x441;&#x432;&#x44F;&#x437;&#x44C; &#x43C;&#x435;&#x436;&#x434;&#x443; readiness &#x438; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; workload.</p><p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443;: &#x445;&#x43E;&#x441;&#x442;&#x43E;&#x432;&#x44B;&#x439; runtime &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43D;&#x430;&#x439;&#x442;&#x438; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x439; UUID, &#x430; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x44F;&#x44F; VM &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E;. &#x414;&#x43B;&#x44F; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x430; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x439; &#x431;&#x430;&#x437;&#x44B; &#x441;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x43E;&#x431;&#x44A;&#x451;&#x43C; VRAM, &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x435; &#x438; &#x43E;&#x445;&#x43B;&#x430;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x441; <a href="https://kingservers.com/blog/gpu-servera-dlya-mashinnogo-obucheniya/">&#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x43E;&#x43C; &#x43F;&#x43E; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;</a>; passthrough &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x43A; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;.</p><div class="ks-widget" id="ks-chk-guest94"><h3>Guest readiness &#x43F;&#x435;&#x440;&#x435;&#x434; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x43E;&#x43C;</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> PCI-&#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438; &#x432;&#x438;&#x434;&#x43D;&#x44B; &#x432; &#x433;&#x43E;&#x441;&#x442;&#x435;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> nvidia-smi &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; UUID</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> &#x412;&#x435;&#x440;&#x441;&#x438;&#x438; driver &#x438; CUDA &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x44B; &#x441; runtime</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> &#x41C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x430; &#x431;&#x435;&#x437; fallback &#x43D;&#x430; CPU</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x41F;&#x440;&#x43E;&#x431;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;, &#x43B;&#x438;&#x43C;&#x438;&#x442;&#x44B; VRAM &#x432;&#x438;&#x434;&#x438;&#x43C;&#x44B;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> &#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x441; &#x445;&#x43E;&#x441;&#x442;&#x430; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x435;&#x43D;&#x430;</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-guest94');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-05-478f7305.webp" class="kg-image" alt="VFIO &#x438; IOMMU &#x434;&#x43B;&#x44F; LLM: &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; GPU passthrough &#x432; KVM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-05-478f7305.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-05-478f7305.webp 1000w, https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-05-478f7305.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="isolation-observability">&#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x438; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B;</h2>
<p>&#x418;&#x437;&#x43E;&#x43B;&#x44F;&#x446;&#x438;&#x44E; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; <code>nvidia-smi</code> &#x432; &#x433;&#x43E;&#x441;&#x442;&#x435;. &#x41D;&#x443;&#x436;&#x435;&#x43D; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;: &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x439; UUID &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; &#x432; &#x440;&#x430;&#x431;&#x43E;&#x447;&#x438;&#x445; &#x438;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x445; &#x445;&#x43E;&#x441;&#x442;&#x430;, &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x44F;&#x44F; VM &#x43D;&#x435; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x435;&#x442; &#x44D;&#x442;&#x43E;&#x442; PCI device, &#x430; &#x441;&#x435;&#x442;&#x435;&#x432;&#x44B;&#x435; &#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x438; &#x43D;&#x435; &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x44E;&#x442; management API &#x448;&#x438;&#x440;&#x435; &#x437;&#x430;&#x43F;&#x43B;&#x430;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x433;&#x43E;.</p><p>&#x41D;&#x430; &#x445;&#x43E;&#x441;&#x442;&#x435; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x439;&#x442;&#x435; libvirt lifecycle, IOMMU faults, AER &#x438; reset-&#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x44F;. &#x412; &#x433;&#x43E;&#x441;&#x442;&#x435; &#x2014; Xid, VRAM, &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x443;, throttling &#x438; application metrics: queue depth, error rate, &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x430; &#x438; readiness. &#x42D;&#x442;&#x438; &#x441;&#x43B;&#x43E;&#x438; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x441;&#x43B;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x432; &#x43E;&#x434;&#x438;&#x43D; &#xAB;GPU healthy&#xBB;. &#x41D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;, &#x43A;&#x430;&#x440;&#x442;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x432;&#x438;&#x434;&#x43D;&#x430; CUDA, &#x43D;&#x43E; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x43D;&#x435; &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x438;&#x437;-&#x437;&#x430; storage timeout.</p><p>&#x420;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; alerts &#x43F;&#x43E; owner. Platform team &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x437;&#x430; IOMMU group, vfio binding, VM lifecycle &#x438; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; reset. &#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; inference &#x2014; &#x437;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;, runtime, VRAM budget &#x438; API. Security &#x2014; &#x437;&#x430; &#x43E;&#x431;&#x440;&#x430;&#x437; &#x433;&#x43E;&#x441;&#x442;&#x44F;, &#x441;&#x435;&#x442;&#x44C;, &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442;&#x44B; &#x438; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x43A; libvirt. &#x412;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430; &#x442;&#x430;&#x43A;&#x430;&#x44F; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x430; &#x44D;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x438;&#x442; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438;, &#x447;&#x435;&#x43C; &#x435;&#x449;&#x451; &#x43E;&#x434;&#x438;&#x43D; &#x43E;&#x431;&#x449;&#x438;&#x439; dashboard.</p><p>&#x414;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; correlation key: &#x438;&#x43C;&#x44F; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x430;, BDF, GPU UUID &#x438; deploy revision. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x435; libvirt &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x441;&#x432;&#x44F;&#x437;&#x430;&#x442;&#x44C; &#x441; Xid &#x432; &#x433;&#x43E;&#x441;&#x442;&#x435; &#x438; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x43E;&#x439; endpoint. &#x411;&#x435;&#x437; &#x43E;&#x431;&#x449;&#x435;&#x439; &#x438;&#x434;&#x435;&#x43D;&#x442;&#x438;&#x447;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x434;&#x435;&#x436;&#x443;&#x440;&#x43D;&#x44B;&#x435; &#x432;&#x438;&#x434;&#x44F;&#x442; &#x442;&#x440;&#x438; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x44B;&#x445; &#x430;&#x43B;&#x435;&#x440;&#x442;&#x430; &#x438; &#x442;&#x435;&#x440;&#x44F;&#x44E;&#x442; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x44B;&#x439; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43E;&#x43A;.</p><p>&#x41C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43E; <a href="https://kingservers.com/blog/bezopasnost-dannyh-ii-modeley-na-gpu-serverah-praktiki-dlya-biznesa/">&#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445; &#x438; AI-&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x435;&#x439; &#x43D;&#x430; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;&#x445;</a> &#x434;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x442; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x443;&#x44E; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44F;&#x43C;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;. Passthrough &#x443;&#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x430;&#x435;&#x442; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x43D;&#x43E;&#x435; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E;&#x43C;, &#x43D;&#x43E; &#x43D;&#x435; &#x448;&#x438;&#x444;&#x440;&#x443;&#x435;&#x442; &#x432;&#x435;&#x441;&#x430; &#x438; &#x43D;&#x435; &#x430;&#x443;&#x442;&#x435;&#x43D;&#x442;&#x438;&#x444;&#x438;&#x446;&#x438;&#x440;&#x443;&#x435;&#x442; API.</p><h2 id="troubleshooting">Troubleshooting &#x43F;&#x43E; &#x441;&#x43B;&#x43E;&#x44F;&#x43C;: &#x43D;&#x435; &#x43B;&#x435;&#x447;&#x438;&#x442;&#x435; LLM &#x447;&#x435;&#x440;&#x435;&#x437; PCI</h2>
<p>&#x414;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x430; &#x438;&#x434;&#x451;&#x442; &#x432; &#x442;&#x43E;&#x43C; &#x436;&#x435; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43A;&#x435;, &#x447;&#x442;&#x43E; rollout. &#x415;&#x441;&#x43B;&#x438; GPU &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x443; &#x445;&#x43E;&#x441;&#x442;&#x430;, &#x43D;&#x435; &#x442;&#x440;&#x43E;&#x433;&#x430;&#x439;&#x442;&#x435; CUDA &#x432; &#x433;&#x43E;&#x441;&#x442;&#x435;. &#x415;&#x441;&#x43B;&#x438; PCI device &#x432;&#x438;&#x434;&#x435;&#x43D;, &#x43D;&#x43E; <code>nvidia-smi</code> &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442;, &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; model path. &#x415;&#x441;&#x43B;&#x438; CUDA &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x430;, &#x430; endpoint &#x43D;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432;, &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x44B;&#x439; gate &#x443;&#x436;&#x435; &#x43F;&#x440;&#x43E;&#x439;&#x434;&#x435;&#x43D; &#x438; &#x43F;&#x43E;&#x438;&#x441;&#x43A; &#x441;&#x43C;&#x435;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435;.</p><p><strong>&#x421;&#x43B;&#x43E;&#x439; 1 &#x2014; host ownership.</strong> &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x435; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x44B;, driver binding &#x438; &#x432;&#x441;&#x435; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B;. <strong>&#x421;&#x43B;&#x43E;&#x439; 2 &#x2014; assignment.</strong> &#x421;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; effective XML &#x438; guest PCI inventory. <strong>&#x421;&#x43B;&#x43E;&#x439; 3 &#x2014; driver/reset.</strong> &#x418;&#x449;&#x438;&#x442;&#x435; Xid, BAR &#x438; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438;. <strong>&#x421;&#x43B;&#x43E;&#x439; 4 &#x2014; runtime.</strong> &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; pinned model, &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x43A; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x443; &#x438; VRAM budget.</p><p>&#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x430;&#x44F; &#x43B;&#x43E;&#x432;&#x443;&#x448;&#x43A;&#x430; &#x2014; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x44C; &#x445;&#x43E;&#x441;&#x442; &#x438; &#x440;&#x435;&#x448;&#x438;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x430;. Reboot &#x43E;&#x447;&#x438;&#x449;&#x430;&#x435;&#x442; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;, &#x43D;&#x43E; &#x441;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x434;&#x435;&#x444;&#x435;&#x43A;&#x442; lifecycle. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x446;&#x438;&#x43A;&#x43B; start &#x2192; stop &#x2192; start &#x431;&#x435;&#x437; reboot. &#x415;&#x441;&#x43B;&#x438; &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A; &#x43B;&#x43E;&#x43C;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x443; &#x432;&#x430;&#x441; reset/rebind issue, &#x430; &#x43D;&#x435; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x44B;&#x439; &#x441;&#x431;&#x43E;&#x439; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;.</p><p>&#x414;&#x440;&#x443;&#x433;&#x430;&#x44F; &#x43B;&#x43E;&#x432;&#x443;&#x448;&#x43A;&#x430; &#x2014; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; driver &#x432; &#x433;&#x43E;&#x441;&#x442;&#x435; &#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; machine type. &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x432; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;, &#x432;&#x44B; &#x43D;&#x435; &#x441;&#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x438;&#x442;&#x44C; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443;. &#x41C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x43E;&#x434;&#x43D;&#x443; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E;, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x439;&#x442;&#x435; evidence &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;.</p><p>NVIDIA &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x435; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x44B; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438; KVM passthrough &#x438; &#x437;&#x430;&#x43C;&#x435;&#x447;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; large BAR &#x432; <a href="https://docs.nvidia.com/vgpu/latest/grid-vgpu-user-guide/using-gpu-pass-through.html?ref=kingservers.com">&#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x435; GPU Pass-Through</a>. &#x421;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; support matrix &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; GPU &#x438; &#x433;&#x438;&#x43F;&#x435;&#x440;&#x432;&#x438;&#x437;&#x43E;&#x440;&#x430; &#x43F;&#x435;&#x440;&#x435;&#x434; rollout.</p><div class="ks-widget" id="ks-sel-fail603"><h3>&#x413;&#x434;&#x435; &#x438;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x441;&#x431;&#x43E;&#x44F;?</h3><label>&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;</label><select data-s><option value="host">GPU &#x432;&#x441;&#x451; &#x435;&#x449;&#x451; &#x432;&#x438;&#x434;&#x435;&#x43D; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x443; &#x445;&#x43E;&#x441;&#x442;&#x430;</option><option value="guest">&#x412; VM &#x43D;&#x435;&#x442; PCI-&#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;</option><option value="cuda">PCI &#x435;&#x441;&#x442;&#x44C;, nvidia-smi &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442;</option><option value="app">CUDA &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442;, LLM &#x43D;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x430;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-fail603');if(!r)return;var m={"host":"Остановитесь на bind gate: проверьте managed hostdev, все функции IOMMU group и активные процессы хоста.","guest":"Проверьте XML, адреса PCI и переход группы к vfio-pci до старта домена.","cuda":"Проверьте reset, BAR/UEFI и совместимость гостевого драйвера; не меняйте LLM-конфиг.","app":"Infrastructure gate пройден. Ищите model path, VRAM budget, runtime и readiness inference-сервиса."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-06-5c7cf2f3.webp" class="kg-image" alt="VFIO &#x438; IOMMU &#x434;&#x43B;&#x44F; LLM: &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; GPU passthrough &#x432; KVM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-06-5c7cf2f3.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-06-5c7cf2f3.webp 1000w, https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-06-5c7cf2f3.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="rollback-runbook">Rollback: &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; GPU &#x438; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</h2>
<p>Rollback &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x441; <code>virsh destroy</code>, &#x430; &#x441;&#x43E; &#x441;&#x43D;&#x44F;&#x442;&#x438;&#x44F; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430; &#x438; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;. &#x414;&#x430;&#x439;&#x442;&#x435; inference-&#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x443; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x438;&#x442;&#x44C; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x435; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B;, &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; GPU, &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; &#x434;&#x43E;&#x43C;&#x435;&#x43D; &#x448;&#x442;&#x430;&#x442;&#x43D;&#x43E; &#x438; &#x434;&#x43E;&#x436;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C; libvirt lifecycle event. &#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430; &#x445;&#x43E;&#x441;&#x442;&#x443;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">rollback-check.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>virsh shutdown llm-vfio-01
virsh domstate llm-vfio-01
lspci -nnk -s 0000:65:00.0
journalctl -k --since &apos;-10 min&apos; | grep -Ei &apos;vfio|IOMMU|AER|NVRM|Xid&apos;
nvidia-smi -L</code></pre>

</div>
<p>&#x41F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; rollback gate: &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; host driver &#x441;&#x43D;&#x43E;&#x432;&#x430; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x435;&#x442; &#x432;&#x441;&#x435;&#x43C;&#x438; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x43C;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x44F;&#x43C;&#x438;, &#x436;&#x443;&#x440;&#x43D;&#x430;&#x43B; &#x43D;&#x435; &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x43D;&#x43E;&#x432;&#x44B;&#x445; IOMMU/AER/Xid &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A;, &#x438; &#x445;&#x43E;&#x441;&#x442;&#x43E;&#x432;&#x44B;&#x439; probe &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;. &#x41D;&#x43E; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43C;&#x430;&#x43B;&#x43E;. &#x417;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x435; VM &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x43E; &#x438; &#x43F;&#x440;&#x43E;&#x439;&#x434;&#x438;&#x442;&#x435; &#x442;&#x435; &#x436;&#x435; PCI, CUDA &#x438; LLM gates &#x432; &#x442;&#x43E;&#x43C; &#x436;&#x435; &#x43F;&#x43E;&#x440;&#x44F;&#x434;&#x43A;&#x435;. &#x41F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x443;&#x434;&#x430;&#x447;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;.</p><p>&#x415;&#x441;&#x43B;&#x438; reattach &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;, &#x43D;&#x435; &#x43F;&#x44B;&#x442;&#x430;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x432;&#x440;&#x443;&#x447;&#x43D;&#x443;&#x44E; &#x43F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x43E;&#x432;&#x438;&#x43D;&#x443; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B;, &#x43F;&#x43E;&#x43A;&#x430; &#x434;&#x43E;&#x43C;&#x435;&#x43D; &#x438;&#x43B;&#x438; QEMU &#x435;&#x449;&#x451; &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; file descriptor. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; <code>virsh domstate</code>, &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x43E;&#x432; QEMU, driver links &#x432; sysfs &#x438; kernel log. Stop condition: GPU &#x43D;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x431;&#x435;&#x437; reboot &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x434;&#x432;&#x443;&#x445; &#x448;&#x442;&#x430;&#x442;&#x43D;&#x44B;&#x445; &#x446;&#x438;&#x43A;&#x43B;&#x43E;&#x432;. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x443;&#x437;&#x435;&#x43B; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x44B;&#x43C; &#x43A; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x43C;&#x443; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x44E;.</p><p>&#x41E;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; &#x430;&#x432;&#x430;&#x440;&#x438;&#x439;&#x43D;&#x44B;&#x439; &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442;: &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x435;&#x441;&#x442;&#x438; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x43D;&#x430; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; inference endpoint, &#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x43D;&#x44B;&#x439; GPU &#x432;&#x43D;&#x435; &#x43F;&#x443;&#x43B;&#x430; &#x438; &#x440;&#x430;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x44C; reset &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;. &#x426;&#x435;&#x43B;&#x44C; rollback &#x2014; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x438; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x44C; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x430;, &#x430; &#x43D;&#x435; &#x43B;&#x44E;&#x431;&#x43E;&#x439; &#x446;&#x435;&#x43D;&#x43E;&#x439; &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; &#x43A;&#x430;&#x440;&#x442;&#x443; &#x432; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x443;.</p><div class="ks-widget" id="ks-chk-roll781"><h3>Rollback &#x431;&#x435;&#x437; &#x441;&#x44E;&#x440;&#x43F;&#x440;&#x438;&#x437;&#x43E;&#x432;</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x422;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x441;&#x43D;&#x44F;&#x442; &#x441; VM</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> LLM-&#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> &#x414;&#x43E;&#x43C;&#x435;&#x43D; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D; &#x448;&#x442;&#x430;&#x442;&#x43D;&#x43E;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> GPU &#x432;&#x435;&#x440;&#x43D;&#x443;&#x43B;&#x441;&#x44F; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x443; &#x445;&#x43E;&#x441;&#x442;&#x430;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x425;&#x43E;&#x441;&#x442;&#x43E;&#x432;&#x44B;&#x439; nvidia-smi &#x438; &#x436;&#x443;&#x440;&#x43D;&#x430;&#x43B; &#x447;&#x438;&#x441;&#x442;&#x44B;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> &#x41F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A; VM &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-roll781');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-07-71ca3797.webp" class="kg-image" alt="VFIO &#x438; IOMMU &#x434;&#x43B;&#x44F; LLM: &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; GPU passthrough &#x432; KVM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-07-71ca3797.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-07-71ca3797.webp 1000w, https://kingservers.com/blog/content/images/2026/08/vfio-iommu-gpu-passthrough-llm-vm-inline-07-71ca3797.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="production-checklist">Production-&#x447;&#x435;&#x43A;&#x43B;&#x438;&#x441;&#x442; &#x438; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x448;&#x430;&#x433;</h2>
<p>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B;&#x439; passthrough &#x2014; &#x44D;&#x442;&#x43E; &#x43D;&#x435; XML, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43E;&#x434;&#x43D;&#x430;&#x436;&#x434;&#x44B; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x43B;&#x441;&#x44F;. &#x42D;&#x442;&#x43E; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x439; lifecycle &#x441; evidence &#x434;&#x43E; detach, &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x43E;&#x439; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B;, application probe &#x438; &#x441;&#x438;&#x43C;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x447;&#x43D;&#x44B;&#x43C; rollback. &#x41F;&#x435;&#x440;&#x435;&#x434; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x435;&#x439; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x435; BDF &#x438; UUID &#x432; inventory, &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x435;&#x432; gates, &#x43E;&#x43A;&#x43D;&#x43E; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x438; &#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x445;&#x43E;&#x441;&#x442;.</p><ul><li>IOMMU &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x430; &#x438; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x435;&#x43D;&#x430; &#x436;&#x443;&#x440;&#x43D;&#x430;&#x43B;&#x43E;&#x43C;; unsafe no-IOMMU &#x437;&#x430;&#x43F;&#x440;&#x435;&#x449;&#x451;&#x43D;.</li><li>&#x421;&#x43E;&#x441;&#x442;&#x430;&#x432; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;, &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x435; &#x43A;&#x440;&#x438;&#x442;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430; &#x43D;&#x435; &#x437;&#x430;&#x442;&#x440;&#x43E;&#x43D;&#x443;&#x442;&#x44B;.</li><li>libvirt managed hostdev &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x432;&#x441;&#x435; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x435; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;.</li><li>Host ownership &#x438; guest ownership &#x432;&#x437;&#x430;&#x438;&#x43C;&#x43D;&#x43E; &#x438;&#x441;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x44E;&#x442;&#x441;&#x44F;.</li><li>CUDA gate &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x451;&#x43D; &#x43E;&#x442; LLM readiness &#x438; storage/network checks.</li><li>Start &#x2192; stop &#x2192; start &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x431;&#x435;&#x437; reboot.</li><li>Alerts &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x44B; &#x43C;&#x435;&#x436;&#x434;&#x443; platform, inference &#x438; security owners.</li></ul><p>&#x415;&#x441;&#x43B;&#x438; &#x432;&#x44B; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442;&#x435; &#x43F;&#x43B;&#x43E;&#x449;&#x430;&#x434;&#x43A;&#x443;, &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x435; &#x441; &#x442;&#x44E;&#x43D;&#x438;&#x43D;&#x433;&#x430; QEMU, &#x430; &#x441; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438; &#x43F;&#x43B;&#x430;&#x442;&#x44B;, &#x441;&#x43B;&#x43E;&#x442;&#x43E;&#x432;, IOMMU topology, GPU &#x438; &#x43E;&#x445;&#x43B;&#x430;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F;. &#x414;&#x43B;&#x44F; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x441;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; lifecycle &#x441; <a href="https://kingservers.com/blog/nvidia-nim-na-vydelennom-gpu-ustanovka-i-health-check/">runbook &#x43F;&#x43E; NVIDIA NIM &#x438; health-check</a>. &#x41D;&#x430; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; KingServers &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x43E;&#x431;&#x441;&#x443;&#x434;&#x438;&#x442;&#x44C; &#x442;&#x43E;&#x43F;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44E; &#x438; &#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; VM &#x434;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;.</p><p>&#x421;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; &#x448;&#x430;&#x433; &#x2014; &#x43F;&#x440;&#x43E;&#x433;&#x43D;&#x430;&#x442;&#x44C; runbook &#x43D;&#x430; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x43E;&#x43C; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x435;, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x44C; evidence bundle &#x438; &#x43D;&#x430;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E; &#x441;&#x43B;&#x43E;&#x43C;&#x430;&#x442;&#x44C; &#x43E;&#x434;&#x438;&#x43D; gate: &#x437;&#x430;&#x43D;&#x44F;&#x442;&#x44C; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x44E; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B;, &#x443;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x43D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; BDF &#x438;&#x43B;&#x438; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; endpoint. &#x415;&#x441;&#x43B;&#x438; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x438;&#x437;&#x443;&#x435;&#x442; &#x441;&#x431;&#x43E;&#x439; &#x43F;&#x43E; &#x441;&#x43B;&#x43E;&#x44E; &#x438; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; GPU &#x431;&#x435;&#x437; reboot, &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x430; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x430; &#x43A; production, &#x430; &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x43A;&#x440;&#x430;&#x441;&#x438;&#x432;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x442;&#x43E;&#x432;&#x430;&#x43B;&#x430; &#x43E;&#x434;&#x438;&#x43D; &#x440;&#x430;&#x437;.</p><p>&#x41D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x432; production &#x43D;&#x435;&#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x439; experimental workaround &#x434;&#x43B;&#x44F; BAR &#x438;&#x43B;&#x438; ACS. &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; kernel, QEMU, libvirt &#x438; guest driver, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x435;&#x441;&#x442; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;. &#x422;&#x430;&#x43A;&#x43E;&#x439; version lock &#x43D;&#x435; &#x43E;&#x442;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, &#x43D;&#x43E; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x43C; &#x438; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x438;&#x43C;&#x44B;&#x43C;.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[NVIDIA Fabric Manager и NVSwitch: production-runbook для multi-GPU LLM]]></title><description><![CDATA[Практический runbook для NVSwitch-сервера: версии driver/Fabric Manager, topology и DCGM gates, Xid/SXid, LLM smoke test, мониторинг и recovery.]]></description><link>https://kingservers.com/blog/nvidia-fabric-manager-nvswitch-llm-runbook/</link><guid isPermaLink="false">6a94c2f5aff2afac25354bdd</guid><category><![CDATA[AI]]></category><category><![CDATA[GPU]]></category><category><![CDATA[Выделенные серверы]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Mon, 31 Aug 2026 07:57:15 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-hero-c16d0239.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#granitsa-zadachi">&#x413;&#x434;&#x435; &#x437;&#x430;&#x43A;&#x430;&#x43D;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; Fabric Manager &#x438; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; LLM</a></li>
<li><a href="#arkhitektura-fabric">&#x41A;&#x430;&#x43A; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D; control plane NVSwitch</a></li>
<li><a href="#baseline-inventory">&#x421;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; baseline &#x434;&#x43E; &#x43B;&#x44E;&#x431;&#x43E;&#x433;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;</a></li>
<li><a href="#versii-i-ustanovka">&#x421;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x443;&#x439;&#x442;&#x435; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; driver &#x438; Fabric Manager</a></li>
<li><a href="#infrastructure-gate">Infrastructure gate: &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C; fabric</a></li>
<li><a href="#application-gate">Application gate: &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; launcher</a></li>
<li><a href="#xid-sxid-triage">Xid &#x438; SXid: &#x43A;&#x430;&#x43A; &#x43D;&#x435; &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;</a></li>
<li><a href="#monitoring-dcgm">&#x41C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; &#x431;&#x435;&#x437; &#x43B;&#x43E;&#x436;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x442;&#x430;&#x442;&#x443;&#x441;&#x430;</a></li>
<li><a href="#recovery-rollback">Recovery: &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x439;&#x442;&#x435; &#x443;&#x437;&#x435;&#x43B; &#x447;&#x435;&#x440;&#x435;&#x437; &#x442;&#x435; &#x436;&#x435; gates</a></li>
<li><a href="#production-checklist">Production checklist &#x434;&#x43B;&#x44F; change &#x438; &#x434;&#x435;&#x436;&#x443;&#x440;&#x441;&#x442;&#x432;&#x430;</a></li>
<li><a href="#zakliuchenie">&#x427;&#x442;&#x43E; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x44B;&#x43C; &#x443;&#x437;&#x43B;&#x43E;&#x43C;</a></li>
</ul></div>

</div><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-hero-c16d0239.webp" alt="NVIDIA Fabric Manager &#x438; NVSwitch: production-runbook &#x434;&#x43B;&#x44F; multi-GPU LLM"><p>&#x412;&#x43E;&#x441;&#x435;&#x43C;&#x44C; GPU &#x432;&#x438;&#x434;&#x43D;&#x44B; &#x432; <code>nvidia-smi</code>, &#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x430;&#x44F; NCCL-&#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x437;&#x430;&#x432;&#x438;&#x441;&#x430;&#x435;&#x442;, &#x430; LLM-&#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; <code>cudaErrorSystemNotReady</code>. &#x427;&#x430;&#x441;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x43D;&#x438;&#x436;&#x435; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;: Fabric Manager &#x43D;&#x435; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x438;&#x43B; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E; NVSwitch, &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x43E;&#x432; &#x440;&#x430;&#x437;&#x43E;&#x448;&#x43B;&#x438;&#x441;&#x44C; &#x438;&#x43B;&#x438; &#x43E;&#x434;&#x438;&#x43D; link &#x443;&#x436;&#x435; &#x432;&#x44B;&#x43F;&#x430;&#x43B; &#x438;&#x437; fabric. &#x41D;&#x438;&#x436;&#x435; &#x2014; production-runbook, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x44B; &#x43E;&#x442; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x438; &#x43D;&#x435; &#x43C;&#x430;&#x441;&#x43A;&#x438;&#x440;&#x443;&#x435;&#x442; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x44B;&#x439; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x43E;&#x43C; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430;. &#x412; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x435; &#x443; &#x434;&#x435;&#x436;&#x443;&#x440;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x430;&#x44F; &#x446;&#x435;&#x43F;&#x43E;&#x447;&#x43A;&#x430; gates, evidence &#x438; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x44B;&#x439; rollback.</p><div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="granitsa-zadachi">&#x413;&#x434;&#x435; &#x437;&#x430;&#x43A;&#x430;&#x43D;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; Fabric Manager &#x438; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; LLM</h2>
<p>&#x41D;&#x430; NVSwitch-&#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x435; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x44B;&#x439; <code>nvidia-smi</code> &#x435;&#x449;&#x451; &#x43D;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; multi-GPU LLM &#x433;&#x43E;&#x442;&#x43E;&#x432; &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x442;&#x44C; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;. &#x414;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x432;&#x441;&#x435; GPU, &#x430; fabric &#x43F;&#x440;&#x438; &#x44D;&#x442;&#x43E;&#x43C; &#x43D;&#x435; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x438;&#x43B;&#x430; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E;, &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; link &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; down &#x438;&#x43B;&#x438; &#x441;&#x43B;&#x443;&#x436;&#x431;&#x430; Fabric Manager &#x437;&#x430;&#x43F;&#x443;&#x449;&#x435;&#x43D;&#x430; &#x432; &#x43D;&#x435;&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x439; &#x441; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x43E;&#x43C; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438;. &#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x439; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C; &#x2014; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442; &#x434;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x433;&#x43E;, NCCL &#x437;&#x430;&#x432;&#x438;&#x441;&#x430;&#x435;&#x442; &#x43D;&#x430; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x439; &#x43A;&#x43E;&#x43B;&#x43B;&#x435;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x439; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438; &#x43B;&#x438;&#x431;&#x43E; CUDA &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; <code>cudaErrorSystemNotReady</code>.</p>
<p>&#x42D;&#x442;&#x430; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x44F; &#x440;&#x430;&#x437;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; single-node control plane: &#x43A;&#x430;&#x43A; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; NVIDIA Fabric Manager, NVLSM, NVSwitch topology &#x438; DCGM &#x434;&#x43E; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B;&#x430; &#x43E; multi-node RDMA/RoCE: &#x441;&#x435;&#x442;&#x44C; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;&#x43C;&#x438; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x442;&#x43E;&#x433;&#x43E;, &#x43A;&#x430;&#x43A; &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; GPU-&#x443;&#x437;&#x435;&#x43B; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x43B; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C;. &#x414;&#x43B;&#x44F; &#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x43E;&#x43D;&#x442;&#x443;&#x440;&#x430; &#x43F;&#x440;&#x438;&#x433;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x43E; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/ml-klaster-na-gpu-serverah/">ML-&#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440; &#x43D;&#x430; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x438;&#x445; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;&#x445;</a>, &#x43D;&#x43E; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x434;&#x432;&#x430; &#x441;&#x43B;&#x43E;&#x44F; &#x432; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x442;&#x435;&#x441;&#x442;&#x435; &#x43D;&#x435; &#x441;&#x442;&#x43E;&#x438;&#x442;.</p>
<p>&#x420;&#x430;&#x431;&#x43E;&#x447;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x430;. Infrastructure gate &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x43D;&#x430; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441; &#xAB;fabric &#x441;&#x43E;&#x431;&#x440;&#x430;&#x43D;&#x430; &#x438; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x430;?&#xBB;. Application gate &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x43D;&#x430; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441; &#xAB;&#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; launcher &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; GPU &#x438; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442; &#x43A;&#x43E;&#x43B;&#x43B;&#x435;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x443;&#x44E; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44E;?&#xBB;. &#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x434;&#x432;&#x430; &#x43F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x430; &#x434;&#x430;&#x44E;&#x442; &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; vLLM, NIM &#x438;&#x43B;&#x438; training job; &#x43E;&#x434;&#x438;&#x43D; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; <code>systemctl status</code> &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439;.</p>
<p>&#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435;, &#x43E;&#x442;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x441;&#x44F; &#x43B;&#x438; runbook &#x43A; &#x432;&#x430;&#x448;&#x435;&#x43C;&#x443; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x443;. Fabric Manager &#x43D;&#x443;&#x436;&#x435;&#x43D; NVSwitch-based &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x43C; DGX/HGX; &#x43D;&#x430; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; &#x441; &#x43F;&#x440;&#x44F;&#x43C;&#x44B;&#x43C;&#x438; NVLink-&#x43C;&#x43E;&#x441;&#x442;&#x430;&#x43C;&#x438; &#x438;&#x43B;&#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; PCIe &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; NVSwitch &#x432; DCGM discovery &#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;. <a href="https://docs.nvidia.com/datacenter/tesla/fabric-manager-user-guide/index.html?ref=kingservers.com">&#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x43E; NVIDIA Fabric Manager</a> &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x441;&#x43B;&#x443;&#x436;&#x431;&#x443; &#x43A;&#x430;&#x43A; control plane, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x438;&#x440;&#x443;&#x435;&#x442; memory fabric, &#x43A;&#x43E;&#x43E;&#x440;&#x434;&#x438;&#x43D;&#x438;&#x440;&#x443;&#x435;&#x442; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E; GPU &#x438; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x442; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; NVLink/NVSwitch.</p><h2 id="arkhitektura-fabric">&#x41A;&#x430;&#x43A; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D; control plane NVSwitch</h2>
<p>&#x423; &#x441;&#x442;&#x435;&#x43A;&#x430; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x435;&#x432;, &#x438; &#x43F;&#x443;&#x442;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x43D;&#x438;&#x43C;&#x438; &#x434;&#x43E;&#x440;&#x43E;&#x433;&#x43E; &#x441;&#x442;&#x43E;&#x438;&#x442; &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x430;&#x432;&#x430;&#x440;&#x438;&#x438;. Kernel driver &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; GPU &#x438; NVSwitch device state. Fabric Manager &#x43A;&#x43E;&#x43E;&#x440;&#x434;&#x438;&#x43D;&#x438;&#x440;&#x443;&#x435;&#x442; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E; &#x438;, &#x434;&#x43B;&#x44F; &#x440;&#x430;&#x43D;&#x43D;&#x438;&#x445; &#x43F;&#x43E;&#x43A;&#x43E;&#x43B;&#x435;&#x43D;&#x438;&#x439; NVSwitch, &#x43C;&#x430;&#x440;&#x448;&#x440;&#x443;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E;. &#x41D;&#x430; B100/B200/B300 &#x438; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430;&#x445; &#x432; service unit &#x443;&#x447;&#x430;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; NVLink Subnet Manager: NVLSM &#x43E;&#x431;&#x43D;&#x430;&#x440;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; fabric, &#x43D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; &#x438;&#x434;&#x435;&#x43D;&#x442;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x442;&#x43E;&#x440;&#x44B; &#x43F;&#x43E;&#x440;&#x442;&#x430;&#x43C;, &#x440;&#x430;&#x441;&#x441;&#x447;&#x438;&#x442;&#x44B;&#x432;&#x430;&#x435;&#x442; forwarding tables &#x438; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x43C;&#x438;&#x440;&#x443;&#x435;&#x442; PKEY.</p>
<p>DCGM &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x441;&#x431;&#x43E;&#x43A;&#x443; &#x43E;&#x442; control plane. &#x41E;&#x43D; &#x43E;&#x431;&#x43D;&#x430;&#x440;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; GPU, switch &#x438; link entities, &#x447;&#x438;&#x442;&#x430;&#x435;&#x442; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x438;, health &#x438; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x435; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x44B;. &#x41E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x438;&#x437; <a href="https://docs.nvidia.com/datacenter/dcgm/latest/learn/core-services/topology-and-links.html?ref=kingservers.com">&#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; DCGM &#x43F;&#x43E; topology &#x438; links</a>: DCGM &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x442; fabric, &#x43D;&#x43E; &#x43D;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x438;&#x440;&#x443;&#x435;&#x442; NVSwitch &#x438; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442; link. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; <code>dcgmi nvlink --link-status</code> &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x430; &#x434;&#x43B;&#x44F; evidence, &#x430; &#x43B;&#x435;&#x447;&#x438;&#x442;&#x44C; &#x435;&#x44E; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x443;&#x44E; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F;.</p>
<p>&#x41F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x442;&#x43E;&#x438;&#x442; &#x432;&#x44B;&#x448;&#x435;. PyTorch, vLLM &#x438;&#x43B;&#x438; NVIDIA NIM &#x432;&#x438;&#x434;&#x438;&#x442; &#x438;&#x442;&#x43E;&#x433; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x44B; driver, FM/NVLSM &#x438; runtime. &#x41F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x447;&#x438;&#x441;&#x43B;&#x438;&#x442;&#x44C; &#x432;&#x43E;&#x441;&#x435;&#x43C;&#x44C; CUDA devices, &#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x430;&#x44F; NCCL all-reduce &#x432;&#x44B;&#x44F;&#x432;&#x438;&#x442; &#x440;&#x430;&#x437;&#x440;&#x44B;&#x432;, &#x43D;&#x435;&#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x438; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x43C; inventory. &#x414;&#x43B;&#x44F; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x438; NIM &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x440;&#x438;&#x433;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/nvidia-nim-na-vydelennom-gpu-ustanovka-i-health-check/">&#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x443; &#x438; health-check NVIDIA NIM</a>; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43D;&#x430;&#x441; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x435;&#x441;&#x443;&#x435;&#x442; readiness &#x443;&#x437;&#x43B;&#x430; &#x434;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430;.</p>
<p>&#x41D;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; entity ids &#x43C;&#x435;&#x436;&#x434;&#x443; &#x445;&#x43E;&#x441;&#x442;&#x430;&#x43C;&#x438;. DCGM &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; switch &#x438; link identifiers &#x43E;&#x442;&#x43D;&#x43E;&#x441;&#x44F;&#x442;&#x441;&#x44F; &#x43A; runtime inventory &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; host engine. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;, &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44B; &#x43F;&#x43B;&#x430;&#x442;&#x44B; &#x438;&#x43B;&#x438; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; DCGM &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x439;&#x442;&#x435; discovery &#x437;&#x430;&#x43D;&#x43E;&#x432;&#x43E;, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x43E;&#x434;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;&#x43D;&#x44B;&#x435; ids &#x432; &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433;. &#x42D;&#x442;&#x43E; &#x43C;&#x430;&#x43B;&#x435;&#x43D;&#x44C;&#x43A;&#x430;&#x44F; &#x434;&#x435;&#x442;&#x430;&#x43B;&#x44C;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x430;&#x44F; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x430;&#x435;&#x442; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x439; runbook &#x43E;&#x442; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B;, &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x44E;&#x449;&#x435;&#x439; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x435; &#x430;&#x432;&#x442;&#x43E;&#x440;&#x430;.</p>
<style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}
.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}
.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}
.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}
.ks-widget .panel.on{display:block}
.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}
.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}
.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style><div class="ks-widget" id="ks-tab-fm8gate"><h3>&#x41A;&#x442;&#x43E; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x437;&#x430; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443;</h3><div class="tabs"><button type="button" class="tab-btn on" data-t="fm">Fabric Manager</button><button type="button" class="tab-btn" data-t="dcgm">DCGM</button><button type="button" class="tab-btn" data-t="app">&#x41F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435;</button></div><div class="panel on" data-p="fm">FM &#x438; NVLSM &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x438;&#x440;&#x443;&#x44E;&#x442; fabric &#x438; &#x443;&#x447;&#x430;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x442; &#x432; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438;. &#x415;&#x441;&#x43B;&#x438; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x43D;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432; &#x438;&#x43B;&#x438; fabric &#x43D;&#x435; &#x441;&#x43E;&#x431;&#x440;&#x430;&#x43D;&#x430;, workload &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x440;&#x430;&#x43D;&#x43E;.</div><div class="panel" data-p="dcgm">DCGM &#x43E;&#x431;&#x43D;&#x430;&#x440;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x441;&#x443;&#x449;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x447;&#x438;&#x442;&#x430;&#x435;&#x442; link state &#x438; counters, &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x443;. &#x41E;&#x43D; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x442; fabric, &#x43D;&#x43E; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442; &#x435;&#x451;.</div><div class="panel" data-p="app">PyTorch, vLLM &#x438;&#x43B;&#x438; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; runtime &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43A;&#x43E;&#x43C;&#x43C;&#x443;&#x43D;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x44F; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442; &#x432; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; launcher &#x438; &#x441; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x43C; &#x43D;&#x430;&#x431;&#x43E;&#x440;&#x43E;&#x43C; GPU.</div><script>(function(){var r=document.getElementById('ks-tab-fm8gate');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-01-3ee4b025.webp" class="kg-image" alt="NVIDIA Fabric Manager &#x438; NVSwitch: production-runbook &#x434;&#x43B;&#x44F; multi-GPU LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-01-3ee4b025.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-01-3ee4b025.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-01-3ee4b025.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="baseline-inventory">&#x421;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; baseline &#x434;&#x43E; &#x43B;&#x44E;&#x431;&#x43E;&#x433;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;</h2>
<p>&#x425;&#x43E;&#x440;&#x43E;&#x448;&#x438;&#x439; baseline &#x2014; &#x43D;&#x435; &#x441;&#x43A;&#x440;&#x438;&#x43D;&#x448;&#x43E;&#x442; &#xAB;&#x432;&#x441;&#x451; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x43E;&#x435;&#xBB;, &#x430; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x439; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x43E;&#x432;&#x44B;&#x445; &#x430;&#x440;&#x442;&#x435;&#x444;&#x430;&#x43A;&#x442;&#x43E;&#x432;. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430;, Fabric Manager &#x438; DCGM, &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; PCI devices, topology matrix, switch inventory, &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; link &#x438; &#x441;&#x432;&#x435;&#x436;&#x438;&#x439; kernel log. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x43F;&#x430;&#x43A;&#x435;&#x442; &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x44C; &#x443;&#x437;&#x435;&#x43B; &#x434;&#x43E; &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; change, &#x430; &#x43D;&#x435; &#x441;&#x43F;&#x43E;&#x440;&#x438;&#x442;&#x44C; &#x43F;&#x43E; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x43E; &#x442;&#x43E;&#x43C;, &#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x440;&#x442;&#x43E;&#x432; &#x431;&#x44B;&#x43B;&#x43E; &#x432;&#x438;&#x434;&#x43D;&#x43E; &#x432;&#x447;&#x435;&#x440;&#x430;.</p>
<p><code>nvidia-smi topo -m</code> &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x441;&#x432;&#x44F;&#x437;&#x438; GPU, CPU affinity &#x438; &#x43A;&#x432;&#x430;&#x43B;&#x438;&#x444;&#x438;&#x446;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x435; NIC; &#x440;&#x430;&#x441;&#x448;&#x438;&#x444;&#x440;&#x43E;&#x432;&#x43A;&#x430; SYS, NODE, PHB, PXB &#x438; PIX &#x435;&#x441;&#x442;&#x44C; &#x432; <a href="https://docs.nvidia.com/deploy/nvidia-smi/index.html?ref=kingservers.com">&#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; nvidia-smi</a>. &#x414;&#x43B;&#x44F; NVSwitch &#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; &#x43C;&#x430;&#x442;&#x440;&#x438;&#x446;&#x443;: DCGM discovery &#x438; link-status &#x434;&#x430;&#x44E;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x441;&#x443;&#x449;&#x43D;&#x43E;&#x441;&#x442;&#x438; switch ports.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span></div>
<pre class="ks-canonical-code-block__pre"><code>set -o errexit -o nounset -o pipefail
date -Is
uname -a
nvidia-smi
nvidia-smi topo -m
dcgmi discovery --list
dcgmi nvlink --link-status --show-entity-ids
systemctl status nvidia-fabricmanager --no-pager
journalctl -u nvidia-fabricmanager -b --no-pager | tail -n 200
journalctl -k -b --no-pager | grep -Ei &apos;NVRM|Xid|SXid|NVSwitch|NVLink&apos; || true</code></pre>
<div class="ks-canonical-code-block__caption">Baseline inventory &#x443;&#x437;&#x43B;&#x430;</div>
</div>
<p>&#x41D;&#x435; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x439;&#x442;&#x435; &#x441;&#x43A;&#x440;&#x438;&#x43F;&#x442; &#x432; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; PASS. &#x41D;&#x430; &#x445;&#x43E;&#x441;&#x442;&#x435; &#x431;&#x435;&#x437; NVSwitch &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; switch entities &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;; &#x43D;&#x430; HGX &#x441; NVSwitch &#x2014; &#x441;&#x442;&#x43E;&#x43F;-&#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B;. &#x421;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; inventory &#x441; &#x43F;&#x430;&#x441;&#x43F;&#x43E;&#x440;&#x442;&#x43E;&#x43C; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B; &#x438; &#x443;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x43E;&#x439; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x435;&#x439;. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x43B;&#x438; &#x43B;&#x438; &#x432;&#x44B;, &#x447;&#x442;&#x43E; &#x447;&#x438;&#x441;&#x43B;&#x43E; GPU &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x43D;&#x435; &#x441; &#xAB;&#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x432;&#x43E;&#x441;&#x435;&#x43C;&#x44C;&#xBB;, &#x430; &#x441; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x43C; SKU &#x438; partition mode?</p>
<p>&#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x432; change ticket &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x435;&#x43C; &#x438; &#x441;&#x435;&#x440;&#x438;&#x439;&#x43D;&#x44B;&#x43C;&#x438; &#x438;&#x434;&#x435;&#x43D;&#x442;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x442;&#x43E;&#x440;&#x430;&#x43C;&#x438;. &#x41D;&#x435; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x440;&#x435;&#x434;&#x43D;&#x438;&#x439; throughput: &#x43E;&#x434;&#x438;&#x43D; &#x43D;&#x435;&#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x439; port &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44F;&#x442;&#x44C;&#x441;&#x44F; &#x432; &#x430;&#x433;&#x440;&#x435;&#x433;&#x430;&#x446;&#x438;&#x438;. &#x411;&#x430;&#x437;&#x43E;&#x432;&#x430;&#x44F; &#x435;&#x434;&#x438;&#x43D;&#x438;&#x446;&#x430; &#x440;&#x430;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x2014; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x439; GPU, switch &#x438; link entity, &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x43D;&#x430; &#x44D;&#x442;&#x43E;&#x43C; &#x445;&#x43E;&#x441;&#x442;&#x435; &#x441;&#x435;&#x439;&#x447;&#x430;&#x441;. &#x414;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; checksum &#x430;&#x440;&#x442;&#x435;&#x444;&#x430;&#x43A;&#x442;&#x43E;&#x432;, &#x435;&#x441;&#x43B;&#x438; ticketing system &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; &#x43F;&#x440;&#x438;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x44F;&#x442;&#x44C; &#x430;&#x440;&#x445;&#x438;&#x432;&#x44B;: &#x442;&#x430;&#x43A; &#x43F;&#x440;&#x43E;&#x449;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;, &#x447;&#x442;&#x43E; baseline &#x43D;&#x435; &#x431;&#x44B;&#x43B; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x451;&#x43D; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-02-b361375a.webp" class="kg-image" alt="NVIDIA Fabric Manager &#x438; NVSwitch: production-runbook &#x434;&#x43B;&#x44F; multi-GPU LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-02-b361375a.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-02-b361375a.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-02-b361375a.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="versii-i-ustanovka">&#x421;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x443;&#x439;&#x442;&#x435; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; driver &#x438; Fabric Manager</h2>
<p>&#x421;&#x430;&#x43C;&#x430;&#x44F; &#x43F;&#x440;&#x438;&#x437;&#x435;&#x43C;&#x43B;&#x451;&#x43D;&#x43D;&#x430;&#x44F; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x430; &#x43D;&#x435;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43E;&#x439; fabric &#x2014; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x44B; &#x438;&#x437; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; &#x432;&#x435;&#x442;&#x43E;&#x43A;. NVIDIA &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x442;&#x44C; Fabric Manager &#x442;&#x43E;&#x439; &#x436;&#x435; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438;, &#x447;&#x442;&#x43E; &#x438; Data Center GPU Driver. &#x41D;&#x430; B200/B300 &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; NVLSM dependency &#x438; &#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B; &#x43A; OFED/MOFED; &#x434;&#x43B;&#x44F; service VM &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x43E; &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x43A; kernel. &#x41D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x44D;&#x442;&#x438; &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x438;&#x44F; &#x43D;&#x430; A100 &#x438;&#x43B;&#x438; H100 &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;: &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x43A;&#x43E;&#x43B;&#x435;&#x43D;&#x438;&#x435; baseboard.</p>
<p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x44B;, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x438;&#x43C;&#x44F; &#x440;&#x435;&#x43F;&#x43E;&#x437;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x44F;. &#x41D;&#x430; Debian/Ubuntu &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; <code>dpkg-query</code>, &#x43D;&#x430; RPM-&#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430;&#x445; &#x2014; <code>rpm -qa</code>. &#x41D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x437;&#x430;&#x432;&#x438;&#x441;&#x44F;&#x442; &#x43E;&#x442; &#x432;&#x435;&#x442;&#x43A;&#x438; &#x438; &#x434;&#x438;&#x441;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438;&#x432;&#x430;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x438;&#x449;&#x443;&#x442; &#x43F;&#x43E; &#x448;&#x430;&#x431;&#x43B;&#x43E;&#x43D;&#x443; &#x438; &#x43D;&#x435; &#x43F;&#x440;&#x438;&#x431;&#x438;&#x432;&#x430;&#x44E;&#x442; &#x43D;&#x43E;&#x43C;&#x435;&#x440; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; &#x433;&#x432;&#x43E;&#x437;&#x434;&#x44F;&#x43C;&#x438;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span></div>
<pre class="ks-canonical-code-block__pre"><code>nvidia-smi --query-gpu=driver_version --format=csv,noheader | sort -u
dpkg-query -W &apos;nvidia-driver-*&apos; &apos;nvidia-fabricmanager-*&apos; &apos;nvlsm*&apos; 2&gt;/dev/null || true
rpm -qa | grep -E &apos;nvidia.*driver|fabricmanager|nvlsm&apos; | sort || true
systemctl cat nvidia-fabricmanager
/usr/bin/nv-fabricmanager --version 2&gt;/dev/null || true</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x432;&#x435;&#x440;&#x441;&#x438;&#x439; &#x438; unit</div>
</div>
<p>&#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x443; &#xAB;driver branch + FM package&#xBB; &#x43A;&#x430;&#x43A; &#x43E;&#x434;&#x438;&#x43D; version lock &#x432; Ansible, image manifest &#x438;&#x43B;&#x438; change plan. &#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x441;&#x43B;&#x443;&#x436;&#x431;&#x443; &#x43D;&#x430; &#x441;&#x442;&#x430;&#x440;&#x43E;&#x439; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438;; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; FM &#x441;&#x442;&#x43E;&#x43B;&#x44C; &#x436;&#x435; &#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43D;&#x443;&#x436;&#x435;&#x43D; reboot &#x438;&#x43B;&#x438; &#x43F;&#x440;&#x435;&#x434;&#x443;&#x441;&#x43C;&#x43E;&#x442;&#x440;&#x435;&#x43D;&#x43D;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x435;&#x43C; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; reload, &#x430; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; baseline &#x438; gates &#x441; &#x43D;&#x443;&#x43B;&#x44F;.</p>
<p>&#x41D;&#x435; &#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; vendor unit &#x432; <code>/lib/systemd/system</code> &#x431;&#x435;&#x437; &#x43A;&#x440;&#x430;&#x439;&#x43D;&#x435;&#x439; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438;: package update &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x444;&#x430;&#x439;&#x43B;. &#x414;&#x43B;&#x44F; override &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; <code>systemctl edit</code> &#x438; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443;. &#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; rollback &#x2014; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x435; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x44B;&#x434;&#x443;&#x449;&#x435;&#x439; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x440;&#x44B; &#x438; &#x43E;&#x43A;&#x43D;&#x43E;, &#x432; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x43C; &#x443;&#x437;&#x435;&#x43B; &#x432;&#x44B;&#x432;&#x435;&#x434;&#x435;&#x43D; &#x438;&#x437; scheduler. &#xAB;&#x41F;&#x43E;&#x43D;&#x438;&#x437;&#x438;&#x43C; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x438;&#x437; &#x440;&#x435;&#x43F;&#x43E;&#x437;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x44F;&#xBB; &#x2014; &#x43D;&#x435; &#x43F;&#x43B;&#x430;&#x43D;: &#x43D;&#x443;&#x436;&#x43D;&#x430;&#x44F; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x438;&#x441;&#x447;&#x435;&#x437;&#x43D;&#x443;&#x442;&#x44C; &#x438;&#x43B;&#x438; &#x43F;&#x43E;&#x442;&#x44F;&#x43D;&#x443;&#x442;&#x44C; &#x43D;&#x435;&#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438;.</p>
<div class="ks-widget" id="ks-sel-pkg9ver"><h3>&#x427;&#x442;&#x43E; &#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x435;&#x434; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x43E;&#x432;</h3><label>&#x421;&#x438;&#x442;&#x443;&#x430;&#x446;&#x438;&#x44F;</label><select data-s><option value="fresh">&#x41D;&#x43E;&#x432;&#x430;&#x44F; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x430;</option><option value="driver">&#x41E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;</option><option value="fm">&#x41C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; FM</option><option value="incident">&#x418;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-pkg9ver');if(!r)return;var m={"fresh":"Сначала подтвердите модель платформы и наличие NVSwitch, затем ставьте совместимые driver и Fabric Manager из одной ветки.","driver":"Планируйте driver и FM как один change set; после перезагрузки повторите весь infrastructure gate.","fm":"Не считайте одиночное обновление безопасным по умолчанию: сравните версии пакетов и release notes, сохраните rollback.","incident":"Остановите новые задания, снимите версии и journal, затем вернитесь к последней согласованной паре вместо случайного перебора пакетов."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-03-a588cfa6.webp" class="kg-image" alt="NVIDIA Fabric Manager &#x438; NVSwitch: production-runbook &#x434;&#x43B;&#x44F; multi-GPU LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-03-a588cfa6.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-03-a588cfa6.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-03-a588cfa6.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="infrastructure-gate">Infrastructure gate: &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C; fabric</h2>
<p>Infrastructure gate &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x431;&#x438;&#x43D;&#x430;&#x440;&#x43D;&#x44B;&#x43C; &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x43E;&#x439;&#x43D;&#x44B;&#x43C;. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; driver &#x432;&#x438;&#x434;&#x438;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; GPU. &#x417;&#x430;&#x442;&#x435;&#x43C; service unit active, &#x430; journal &#x43D;&#x435; &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D;&#x43D;&#x43E;&#x439; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; DCGM &#x43E;&#x431;&#x43D;&#x430;&#x440;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; NVSwitch &#x438; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; links up. &#x41D;&#x430;&#x43A;&#x43E;&#x43D;&#x435;&#x446;, health &#x438;&#x43B;&#x438; diagnostic run &#x43D;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x439; isolate/reset. &#x415;&#x441;&#x43B;&#x438; &#x43E;&#x434;&#x438;&#x43D; &#x441;&#x43B;&#x43E;&#x439; &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x448;&#x451;&#x43B;, &#x432;&#x435;&#x440;&#x445;&#x43D;&#x438;&#x435; &#x442;&#x435;&#x441;&#x442;&#x44B; &#x43D;&#x435; &#x43A;&#x43E;&#x43C;&#x43F;&#x435;&#x43D;&#x441;&#x438;&#x440;&#x443;&#x44E;&#x442; &#x43F;&#x440;&#x43E;&#x432;&#x430;&#x43B;.</p>
<p>&#x41D;&#x430; B200/B300 &#x43E;&#x434;&#x438;&#x43D; unit &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; FM &#x438; NVLSM, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x44B; &#x438; journal. &#x41F;&#x43E; <a href="https://docs.nvidia.com/datacenter/tesla/fabric-manager-user-guide/index.html?ref=kingservers.com">&#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x443; Fabric Manager</a>, &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x447;&#x435;&#x440;&#x435;&#x437; <code>systemctl start|stop|status nvidia-fabricmanager</code>, &#x436;&#x443;&#x440;&#x43D;&#x430;&#x43B; &#x447;&#x438;&#x442;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x447;&#x435;&#x440;&#x435;&#x437; <code>journalctl -u</code>. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x434;&#x43E;&#x436;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x438;&#x44F; fabric initialization; &#x43C;&#x433;&#x43D;&#x43E;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x439; active &#x43D;&#x435; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; configured.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span></div>
<pre class="ks-canonical-code-block__pre"><code>systemctl is-enabled nvidia-fabricmanager
systemctl is-active nvidia-fabricmanager
systemctl show nvidia-fabricmanager -p ActiveEnterTimestamp -p ExecMainStatus
journalctl -u nvidia-fabricmanager -b --no-pager | tail -n 300
dcgmi discovery --list
dcgmi nvlink --link-status --show-entity-ids
nvidia-smi topo -m</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; control plane &#x438; links</div>
</div>
<p>PASS &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442;: &#x432;&#x441;&#x435; &#x43F;&#x440;&#x435;&#x434;&#x443;&#x441;&#x43C;&#x43E;&#x442;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x43E;&#x439; GPU &#x438; switch entities &#x43F;&#x440;&#x438;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x442;, &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; links up, topology &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442; baseline, &#x43D;&#x43E;&#x432;&#x44B;&#x445; Xid/SXid &#x43D;&#x435;&#x442;. &#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x441;&#x442;&#x43E;&#x43B;&#x44C; &#x436;&#x435; &#x432;&#x430;&#x436;&#x43D;&#x430;: &#x435;&#x441;&#x43B;&#x438; discovery &#x43D;&#x435; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; NVSwitch &#x43D;&#x430; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x435;, &#x433;&#x434;&#x435; &#x43E;&#x43D; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D; &#x431;&#x44B;&#x442;&#x44C;, &#x43D;&#x435; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x43F;&#x440;&#x438;&#x432;&#x438;&#x43B;&#x435;&#x433;&#x438;&#x438; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44E; &#x438; &#x43D;&#x435; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;. &#x41E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435;&#x441;&#x44C; &#x43D;&#x430; infrastructure layer &#x438; &#x440;&#x430;&#x437;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435;&#x441;&#x44C; &#x441; driver/FM/device binding.</p>
<p>&#x41F;&#x440;&#x438;&#x43C;&#x435;&#x440;: &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x443;&#x437;&#x435;&#x43B; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x432;&#x43E;&#x441;&#x435;&#x43C;&#x44C; GPU, &#x43D;&#x43E; DCGM discovery &#x43D;&#x435; &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x442; switches. &#x41F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A; vLLM &#x43D;&#x438;&#x447;&#x435;&#x433;&#x43E; &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;, &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43D;&#x438;&#x436;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430;. &#x41F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x435; &#x2014; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C; scheduler admission, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x43E;&#x432;, unit/journal &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x44C; gate. &#x422;&#x430;&#x43A; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43D;&#x435; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x441;&#x435;&#x440;&#x438;&#x44E; &#x443;&#x43F;&#x430;&#x432;&#x448;&#x438;&#x445; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x438;&#x445; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;.</p>
<p>&#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; gate &#x43C;&#x430;&#x448;&#x438;&#x43D;&#x43D;&#x43E;-&#x447;&#x438;&#x442;&#x430;&#x435;&#x43C;&#x44B;&#x43C;: &#x447;&#x438;&#x441;&#x43B;&#x43E; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x445; &#x441;&#x443;&#x449;&#x43D;&#x43E;&#x441;&#x442;&#x435;&#x439;, &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; down/disabled links &#x438; timestamp &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x435;&#x433;&#x43E; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x44F;. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44F; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x442;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; admission &#x43F;&#x43E; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x435;, &#x430; &#x43D;&#x435; &#x43F;&#x43E; &#x440;&#x430;&#x441;&#x43F;&#x43B;&#x44B;&#x432;&#x447;&#x430;&#x442;&#x43E;&#x43C;&#x443; &#xAB;GPU unhealthy&#xBB;. &#x41D;&#x43E; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; hardware profile &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; &#x447;&#x438;&#x441;&#x43B;&#x43E;&#x43C;: &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; HGX &#x43F;&#x43E;&#x43A;&#x43E;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x438;&#x43C;&#x435;&#x44E;&#x442; &#x440;&#x430;&#x437;&#x43D;&#x443;&#x44E; topology.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-04-c14c7442.webp" class="kg-image" alt="NVIDIA Fabric Manager &#x438; NVSwitch: production-runbook &#x434;&#x43B;&#x44F; multi-GPU LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-04-c14c7442.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-04-c14c7442.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-04-c14c7442.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="application-gate">Application gate: &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; launcher</h2>
<p>&#x414;&#x430;&#x436;&#x435; &#x438;&#x434;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; infrastructure gate &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; service unit, &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440; &#x438;&#x43B;&#x438; Kubernetes pod &#x432;&#x438;&#x434;&#x438;&#x442; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x435; devices. Application gate &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x442;&#x43E;&#x43C; &#x436;&#x435; &#x43E;&#x43A;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x438;&#x438;, &#x441; &#x442;&#x435;&#x43C;&#x438; &#x436;&#x435; cgroup/device permissions &#x438; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x43C;&#x438;, &#x447;&#x442;&#x43E; production workload. &#x414;&#x43B;&#x44F; PyTorch &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442; &#x2014; NCCL all-reduce &#x43C;&#x435;&#x436;&#x434;&#x443; &#x432;&#x441;&#x435;&#x43C;&#x438; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;&#x438; rank: &#x43E;&#x43D; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; CUDA tensor &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; GPU &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x443;&#x44E; &#x441;&#x443;&#x43C;&#x43C;&#x443; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43A;&#x43E;&#x43B;&#x43B;&#x435;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x439; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438;.</p>
<p>&#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x441;&#x43A;&#x440;&#x438;&#x43F;&#x442; &#x43A;&#x430;&#x43A; immutable artifact &#x438; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; Python environment &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;. &#x41E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x43E; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x43E;&#x432; &#x437;&#x430;&#x434;&#x430;&#x432;&#x430;&#x439;&#x442;&#x435; &#x438;&#x437; inventory &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B;, &#x430; &#x43D;&#x435; &#x432;&#x448;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x432;&#x43E;&#x441;&#x435;&#x43C;&#x44C; &#x432;&#x43E; &#x432;&#x441;&#x435; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B;. &#x412; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;&#x435; &#x432;&#x43E;&#x441;&#x435;&#x43C;&#x44C; &#x2014; &#x44F;&#x432;&#x43D;&#x44B;&#x439; resource budget &#x434;&#x43B;&#x44F; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x432;&#x43E;&#x441;&#x44C;&#x43C;&#x438;-GPU &#x443;&#x437;&#x43B;&#x430;, &#x430; &#x43D;&#x435; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x430;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">python</span><span class="ks-canonical-code-block__filename">fabric_smoke.py</span></div>
<pre class="ks-canonical-code-block__pre"><code>import torch
import torch.distributed as dist

dist.init_process_group(&quot;nccl&quot;)
rank = dist.get_rank()
world = dist.get_world_size()
torch.cuda.set_device(rank)
value = torch.tensor([rank + 1.0], device=f&quot;cuda:{rank}&quot;)
dist.all_reduce(value)
expected = world * (world + 1) / 2
assert value.item() == expected, (rank, value.item(), expected)
torch.cuda.synchronize()
if rank == 0:
    print(f&quot;PASS: {world} ranks, all_reduce={value.item():.0f}&quot;)
dist.destroy_process_group()</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; application test</div>
</div>
<style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span></div>
<pre class="ks-canonical-code-block__pre"><code>torchrun --standalone --nproc-per-node=8 fabric_smoke.py

CUDA_VISIBLE_DEVICES=0 python3 - &lt;<'py' import torch assert torch.cuda.device_count()="=" 1, print('pass: launcher boundary exposes one gpu') py< code></'py'></code></pre>
<div class="ks-canonical-code-block__caption">&#x417;&#x430;&#x43F;&#x443;&#x441;&#x43A; &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B;</div>
</div>
<p>&#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442; &#x43D;&#x435; &#x43B;&#x43E;&#x43C;&#x430;&#x435;&#x442; fabric: &#x43E;&#x43D; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442;, &#x447;&#x442;&#x43E; launcher &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; &#x432;&#x438;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C;. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x432;&#x438;&#x434;&#x438;&#x442; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; GPU, &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x432; &#x438;&#x437;&#x43E;&#x43B;&#x44F;&#x446;&#x438;&#x438;, &#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; all-reduce &#x43D;&#x435; &#x434;&#x430;&#x451;&#x442; &#x43F;&#x440;&#x430;&#x432;&#x430; &#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; multi-tenant workload. &#x414;&#x43B;&#x44F; MIG/MPS &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x430; &#x434;&#x440;&#x443;&#x433;&#x438;&#x435;; &#x438;&#x445; &#x441;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x441; &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x43E;&#x43C; &#x43F;&#x43E; <a href="https://kingservers.com/blog/mig-mps-dlya-multi-tenant-gpu/">MIG &#x438; MPS &#x434;&#x43B;&#x44F; multi-tenant GPU</a>.</p>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; smoke test &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; readiness &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;: &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430; &#x432;&#x435;&#x441;&#x43E;&#x432;, &#x43E;&#x434;&#x438;&#x43D; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x44B;&#x439; inference request &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43B;&#x43E;&#x433;&#x43E;&#x432;. &#x41D;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; latency &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x430; &#x43A;&#x430;&#x43A; benchmark; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43D;&#x443;&#x436;&#x435;&#x43D; functional gate. &#x415;&#x441;&#x43B;&#x438; infrastructure PASS, &#x430; all-reduce &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442;, &#x43E;&#x431;&#x43B;&#x430;&#x441;&#x442;&#x44C; &#x43F;&#x43E;&#x438;&#x441;&#x43A;&#x430; &#x443;&#x436;&#x435; &#x443;&#x437;&#x43A;&#x430;&#x44F;: launcher, NCCL/runtime, device mapping &#x438;&#x43B;&#x438; container permissions, &#x430; &#x43D;&#x435; &#x432;&#x435;&#x441;&#x44C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;.</p>
<p>&#x41F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x442;&#x435;&#x441;&#x442; &#x438;&#x437; &#x448;&#x442;&#x430;&#x442;&#x43D;&#x43E;&#x433;&#x43E; launcher, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x438;&#x437; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x439; root shell. &#x420;&#x430;&#x437;&#x43D;&#x438;&#x446;&#x430; &#x432; device cgroup, mount namespace &#x438;&#x43B;&#x438; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x43E;&#x43A;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x447;&#x430;&#x441;&#x442;&#x43E; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x44F;&#x435;&#x442; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439; &#xAB;&#x443; &#x430;&#x434;&#x43C;&#x438;&#x43D;&#x438;&#x441;&#x442;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442;&#xBB;. &#x424;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; world size, image digest &#x438; commit smoke script &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x441; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x43E;&#x43C;.</p>
<div class="ks-widget" id="ks-chk-app6ok"><h3>Application gate &#x43F;&#x435;&#x440;&#x435;&#x434; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x43E;&#x43C;</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> Launcher &#x432;&#x438;&#x434;&#x438;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x43E; GPU</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> NCCL smoke test &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442; all-reduce</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> &#x422;&#x43E;&#x43F;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44F; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x441; baseline</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> &#x412; kernel log &#x43D;&#x435;&#x442; &#x43D;&#x43E;&#x432;&#x44B;&#x445; Xid &#x438;&#x43B;&#x438; SXid</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; &#x432;&#x438;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x434;&#x43D;&#x438;&#x43C; GPU</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> LLM health-check &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x432; &#x448;&#x442;&#x430;&#x442;&#x43D;&#x43E;&#x43C; service unit</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-app6ok');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><h2 id="xid-sxid-triage">Xid &#x438; SXid: &#x43A;&#x430;&#x43A; &#x43D;&#x435; &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;</h2>
<p>Xid &#x2014; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x435; NVIDIA driver &#x432; kernel log. SXid &#x2014; &#x430;&#x43D;&#x430;&#x43B;&#x43E;&#x433;&#x438;&#x447;&#x43D;&#x44B;&#x439; &#x43A;&#x43B;&#x430;&#x441;&#x441; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x439; &#x43E;&#x442; NVSwitch driver. <a href="https://docs.nvidia.com/deploy/xid-errors/introduction.html?ref=kingservers.com">&#x421;&#x43F;&#x440;&#x430;&#x432;&#x43E;&#x447;&#x43D;&#x438;&#x43A; NVIDIA Xid Errors</a> &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; &#x438;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A;&#x438;: &#x43D;&#x43E;&#x43C;&#x435;&#x440; &#x432;&#x430;&#x436;&#x435;&#x43D;, &#x43D;&#x43E; &#x431;&#x435;&#x437; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; GPU, driver version, &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438;, workload &#x438; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x445; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x439; &#x435;&#x433;&#x43E; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x44F;.</p>
<p>&#x41F;&#x440;&#x438; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x438; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x437;&#x430;&#x43C;&#x43E;&#x440;&#x43E;&#x437;&#x44C;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;. &#x417;&#x430;&#x43A;&#x440;&#x43E;&#x439;&#x442;&#x435; &#x443;&#x437;&#x435;&#x43B; &#x434;&#x43B;&#x44F; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x439;, &#x43D;&#x43E; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x430;&#x439;&#x442;&#x435; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;: reboot &#x441;&#x442;&#x438;&#x440;&#x430;&#x435;&#x442; &#x447;&#x430;&#x441;&#x442;&#x44C; volatile evidence. &#x421;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; <code>journalctl -k</code>, &#x436;&#x443;&#x440;&#x43D;&#x430;&#x43B; FM/NVLSM, <code>nvidia-smi -q</code>, discovery &#x438; link-status. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435;, fatal &#x43B;&#x438; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x435;, &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442;&#x441;&#x44F; &#x43B;&#x438; reset/isolate &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43B;&#x438; &#x43E;&#x43D;&#x43E; &#x43D;&#x430; &#x442;&#x43E;&#x43C; &#x436;&#x435; port.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span></div>
<pre class="ks-canonical-code-block__pre"><code>incident_dir=&quot;/var/tmp/nvswitch-incident-$(date +%Y%m%dT%H%M%S)&quot;
install -d -m 0700 &quot;$incident_dir&quot;
journalctl -k -b --no-pager &gt; &quot;$incident_dir/kernel.log&quot;
journalctl -u nvidia-fabricmanager -b --no-pager &gt; &quot;$incident_dir/fabricmanager.log&quot;
nvidia-smi -q &gt; &quot;$incident_dir/nvidia-smi-q.txt&quot;
nvidia-smi topo -m &gt; &quot;$incident_dir/topology.txt&quot;
dcgmi discovery --list &gt; &quot;$incident_dir/dcgm-discovery.txt&quot;
dcgmi nvlink --link-status --show-entity-ids &gt; &quot;$incident_dir/nvlink-status.txt&quot;
tar -C /var/tmp -czf &quot;$incident_dir.tar.gz&quot; &quot;$(basename &quot;$incident_dir&quot;)&quot;</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x430;&#x43A;&#x435;&#x442; evidence &#x43F;&#x440;&#x438; Xid/SXid</div>
</div>
<p>DCGM &#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x443;&#x435;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; NVSwitch &#x43F;&#x43E;&#x43B;&#x44F; &#x434;&#x43B;&#x44F; fatal/non-fatal SXid, link errors, replay/recovery/CRC/ECC counters &#x438; reset-required. &#x412; <a href="https://docs.nvidia.com/datacenter/dcgm/latest/dcgm-api/dcgm-api-field-ids.html?ref=kingservers.com">&#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;&#x435; DCGM field identifiers</a> ids &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x43F;&#x43E; &#x43F;&#x43E;&#x43A;&#x43E;&#x43B;&#x435;&#x43D;&#x438;&#x44F;&#x43C;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x441;&#x442;&#x430;&#x440;&#x44B;&#x439; &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; &#x431;&#x435;&#x437; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; <code>dcgmi dmon --list</code> &#x440;&#x438;&#x441;&#x43A;&#x43E;&#x432;&#x430;&#x43D;.</p>
<p>&#x41D;&#x435; &#x43B;&#x435;&#x447;&#x438;&#x442;&#x435; &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; non-fatal counter reboot&#x2019;&#x43E;&#x43C;. &#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x441; baseline &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x43F;&#x440;&#x438;&#x440;&#x43E;&#x441;&#x442;: &#x441;&#x442;&#x430;&#x440;&#x43E;&#x435; &#x43D;&#x435;&#x43D;&#x443;&#x43B;&#x435;&#x432;&#x43E;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x431;&#x435;&#x437; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x439; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x442; &#x440;&#x430;&#x441;&#x442;&#x443;&#x449;&#x435;&#x433;&#x43E; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x430; &#x43F;&#x43E;&#x434; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x43E;&#x439;. Fatal SXid, link down &#x438;&#x43B;&#x438; reset-required &#x2014; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x43A;&#x43B;&#x430;&#x441;&#x441;: workload &#x443;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x43D;&#x430; &#x443;&#x437;&#x43B;&#x435; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x434;&#x43E; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x430;&#x446;&#x438;&#x439; NVIDIA &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x44B;&#x445; gates.</p>
<p>&#x417;&#x43D;&#x430;&#x43A;&#x43E;&#x43C;&#x430;&#x44F; &#x43B;&#x43E;&#x432;&#x443;&#x448;&#x43A;&#x430; &#x2014; &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; Xid &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x441;&#x440;&#x430;&#x437;&#x443; &#x432;&#x438;&#x43D;&#x438;&#x442;&#x44C; NVSwitch. &#x421;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; timestamps: &#x435;&#x441;&#x43B;&#x438; SXid &#x438; link error &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x440;&#x430;&#x43D;&#x44C;&#x448;&#x435; NCCL timeout, fabric &#x2014; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x430;&#x43D;&#x434;&#x438;&#x434;&#x430;&#x442;. &#x415;&#x441;&#x43B;&#x438; fabric &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x430;, &#x430; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x432;&#x43E;&#x437;&#x43D;&#x438;&#x43A;&#x43B;&#x430; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x43C;&#x435;&#x43D;&#x44B; image, &#x440;&#x430;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x43D;&#x44F;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; application layer. &#x412; incident report &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x444;&#x430;&#x43A;&#x442;, &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x443; &#x438; &#x43F;&#x440;&#x438;&#x43D;&#x44F;&#x442;&#x43E;&#x435; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x435;: &#x44D;&#x442;&#x43E; &#x443;&#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x430;&#x435;&#x442; &#x447;&#x438;&#x441;&#x43B;&#x43E; &#x43D;&#x435;&#x43E;&#x431;&#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x445; reboot.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-05-cef24b83.webp" class="kg-image" alt="NVIDIA Fabric Manager &#x438; NVSwitch: production-runbook &#x434;&#x43B;&#x44F; multi-GPU LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-05-cef24b83.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-05-cef24b83.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-05-cef24b83.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="monitoring-dcgm">&#x41C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; &#x431;&#x435;&#x437; &#x43B;&#x43E;&#x436;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x442;&#x430;&#x442;&#x443;&#x441;&#x430;</h2>
<p>&#x414;&#x43B;&#x44F; steady state &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x439;&#x442;&#x435; &#x442;&#x440;&#x438; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x44B; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B;&#x43E;&#x432;: &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; links, &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x44F; Xid/SXid/reset-required &#x438; &#x434;&#x438;&#x43D;&#x430;&#x43C;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x435; counters &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x44B;, throughput &#x438; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A;. &#x41E;&#x434;&#x438;&#x43D; &#x43E;&#x431;&#x449;&#x438;&#x439; &#xAB;GPU healthy&#xBB; &#x441;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x433;&#x440;&#x443;&#x431;: &#x441;&#x435;&#x440;&#x432;&#x435;&#x440; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x44B;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; inference, &#x43F;&#x43E;&#x43A;&#x430; &#x43E;&#x434;&#x438;&#x43D; &#x43F;&#x443;&#x442;&#x44C; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x438;&#x440;&#x443;&#x435;&#x442; &#x438; retries &#x43F;&#x43E;&#x441;&#x442;&#x435;&#x43F;&#x435;&#x43D;&#x43D;&#x43E; &#x440;&#x430;&#x441;&#x442;&#x443;&#x442;. Alert &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x442;&#x44C; host, entity type, switch/link id &#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x437;&#x430; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x432;&#x430;&#x43B;.</p>
<p><a href="https://docs.nvidia.com/datacenter/dcgm/latest/learn/modules/nvswitch.html?ref=kingservers.com">&#x414;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; DCGM &#x43F;&#x43E; NVSwitch &#x438; ConnectX</a> &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x435;&#x442; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x431;&#x43D;&#x430;&#x440;&#x443;&#x436;&#x438;&#x432;&#x430;&#x442;&#x44C; ids &#x447;&#x435;&#x440;&#x435;&#x437; discovery &#x438; link-status, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x44F; &#x438;&#x437; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;&#x430; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x439; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438;. Switch temperature &#x438; aggregate throughput &#x43E;&#x442;&#x43D;&#x43E;&#x441;&#x44F;&#x442;&#x441;&#x44F; &#x43A; nvswitch entity, per-port errors &#x2014; &#x43A; switch_link. Entity/field mismatch &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; <code>N/A</code>; &#x44D;&#x442;&#x43E; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;&#x43E; &#x43F;&#x43E;&#x43B;&#x43E;&#x43C;&#x43A;&#x438;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span></div>
<pre class="ks-canonical-code-block__pre"><code>dcgmi discovery --list
dcgmi nvlink --link-status --show-entity-ids
dcgmi dmon --list

# &#x41F;&#x43E;&#x434;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; ids, &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x43D;&#x430; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x43C; &#x445;&#x43E;&#x441;&#x442;&#x435;.
dcgmi dmon --entity-id nvswitch:0 --field-id 858,861,862 --count 5
dcgmi dmon --entity-id switch_link:0:3 --field-id 780,781,782,783 --count 5</code></pre>
<div class="ks-canonical-code-block__caption">&#x422;&#x43E;&#x447;&#x435;&#x447;&#x43D;&#x430;&#x44F; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x43A;&#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435; discovery</div>
</div>
<p>&#x427;&#x438;&#x441;&#x43B;&#x430; &#x43F;&#x43E;&#x43B;&#x435;&#x439; &#x432; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;&#x435; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x442; documented NVSwitch entities, &#x43D;&#x43E; automation &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x441;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x438;&#x445; &#x441; release &#x43D;&#x430; &#x443;&#x437;&#x43B;&#x435;. &#x414;&#x43B;&#x44F; NVLink 5+ &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B; &#x434;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; aggregate/per-link counters; &#x43D;&#x430; NVLink 4 &#x438; &#x441;&#x442;&#x430;&#x440;&#x448;&#x435; &#x43D;&#x435;&#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43F;&#x43E;&#x43B;&#x44F; &#x437;&#x430;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x435;&#x440;&#x43D;&#x43E; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x44E;&#x442; N/A. &#x41C;&#x430;&#x440;&#x43A;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; hardware generation &#x432; inventory, &#x438;&#x43D;&#x430;&#x447;&#x435; &#x43E;&#x434;&#x43D;&#x430; panel &#x431;&#x443;&#x434;&#x435;&#x442; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#xAB;&#x43D;&#x435;&#x442; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;&#xBB; &#x438; &#xAB;&#x430;&#x432;&#x430;&#x440;&#x438;&#x44F;&#xBB; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;.</p>
<p>&#x421;&#x432;&#x44F;&#x436;&#x438;&#x442;&#x435; infra alert &#x441; application SLI, &#x43D;&#x43E; &#x43D;&#x435; &#x441;&#x43A;&#x43B;&#x435;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x438;&#x445;. &#x420;&#x43E;&#x441;&#x442; replay errors &#x431;&#x435;&#x437; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; inference &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x440;&#x430;&#x43D;&#x43D;&#x438;&#x43C; &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x43C;; &#x440;&#x43E;&#x441;&#x442; latency &#x431;&#x435;&#x437; link errors &#x2014; &#x43F;&#x43E;&#x432;&#x43E;&#x434; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; CPU, storage &#x438;&#x43B;&#x438; scheduler. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x440;&#x435;&#x43C;&#x43E;&#x43D;&#x442;&#x430; fabric latency &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x432;&#x44B;&#x441;&#x43E;&#x43A;&#x43E;&#x439;, bottleneck &#x43C;&#x438;&#x433;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B; &#x43D;&#x430; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x439; &#x441;&#x43B;&#x43E;&#x439;. &#x414;&#x43B;&#x44F; orchestration &#x438; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x435;&#x439; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/gpu-scheduling-inference-training-batch/">GPU scheduling &#x43C;&#x435;&#x436;&#x434;&#x443; inference, training &#x438; batch</a>.</p>
<p>&#x425;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; raw counters &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x434;&#x43E;&#x43B;&#x433;&#x43E;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x44C; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x435;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435;. Alert &#x43D;&#x430; &#x430;&#x431;&#x441;&#x43E;&#x43B;&#x44E;&#x442;&#x43D;&#x44B;&#x439; &#x43F;&#x43E;&#x440;&#x43E;&#x433; &#x431;&#x435;&#x437; baseline &#x448;&#x443;&#x43C;&#x438;&#x442; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43E;&#x43A; &#x438; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44B; &#x436;&#x435;&#x43B;&#x435;&#x437;&#x430;. &#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x442;&#x441;&#x43B;&#x435;&#x436;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; scrape: &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44F;&#x43D;&#x43D;&#x430;&#x44F; &#x442;&#x435;&#x43B;&#x435;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x44F; &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x435;&#x442;&#x44C; &#x43A;&#x430;&#x43A; &#x43D;&#x443;&#x43B;&#x435;&#x432;&#x44B;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;.</p>
<div class="ks-widget" id="ks-sel-mon7sig"><h3>&#x41A;&#x430;&#x43A; &#x442;&#x440;&#x430;&#x43A;&#x442;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B; &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433;&#x430;</h3><label>&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x435;</label><select data-s><option value="down">Link &#x441;&#x442;&#x430;&#x43B; down</option><option value="fatal">&#x41F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x441;&#x44F; fatal SXid</option><option value="crc">&#x420;&#x430;&#x441;&#x442;&#x443;&#x442; CRC/replay counters</option><option value="na">&#x41F;&#x43E;&#x43B;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; N/A</option></select><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-mon7sig');if(!r)return;var m={"down":"Снимите entity ids и состояние всех портов, запретите новые задания и переходите к диагностике; один down-link нельзя прятать средним throughput.","fatal":"Сохраните journal и DCGM context, проверьте reset-required и рекомендации NVIDIA; не перезапускайте workload до классификации события.","crc":"Смотрите прирост за интервал и привязку к конкретному link entity. Нулевой старый counter и растущий counter — разные ситуации.","na":"Сначала проверьте совместимость поля с поколением NVLink и типом entity: N/A не всегда означает отказ железа."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-06-9b3b4194.webp" class="kg-image" alt="NVIDIA Fabric Manager &#x438; NVSwitch: production-runbook &#x434;&#x43B;&#x44F; multi-GPU LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-06-9b3b4194.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-06-9b3b4194.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-06-9b3b4194.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="recovery-rollback">Recovery: &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x439;&#x442;&#x435; &#x443;&#x437;&#x435;&#x43B; &#x447;&#x435;&#x440;&#x435;&#x437; &#x442;&#x435; &#x436;&#x435; gates</h2>
<p>Recovery &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x441; <code>systemctl restart</code>, &#x430; &#x441; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x43E; blast radius. &#x417;&#x430;&#x43F;&#x440;&#x435;&#x442;&#x438;&#x442;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x44F;, &#x434;&#x43E;&#x436;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C; &#x438;&#x43B;&#x438; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x438;&#x442;&#x435; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x435;, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; evidence &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; FM, driver &#x438;&#x43B;&#x438; &#x445;&#x43E;&#x441;&#x442;&#x430;. &#x412; &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x435; &#x435;&#x441;&#x442;&#x44C; <code>ABORT_CUDA_JOBS_ON_FM_EXIT</code>, &#x43D;&#x43E; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; &#x43F;&#x43E;&#x43A;&#x43E;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x438; deployment model; &#x43D;&#x430; H100 &#x438; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430;&#x445; &#x447;&#x430;&#x441;&#x442;&#x44C; &#x43E;&#x43F;&#x446;&#x438;&#x439; &#x43D;&#x435;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x438;&#x43C;&#x430;. &#x41D;&#x435; &#x43F;&#x440;&#x435;&#x434;&#x43F;&#x43E;&#x43B;&#x430;&#x433;&#x430;&#x439;&#x442;&#x435;, &#x447;&#x442;&#x43E; stop FM &#x431;&#x435;&#x437;&#x432;&#x440;&#x435;&#x434;&#x435;&#x43D; &#x434;&#x43B;&#x44F; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x445; CUDA jobs.</p>
<p>&#x415;&#x441;&#x43B;&#x438; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x430;&#x441;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; package change, &#x43F;&#x440;&#x435;&#x434;&#x43F;&#x43E;&#x447;&#x442;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; rollback &#x2014; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x44F;&#x44F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x430;&#x44F; &#x43F;&#x430;&#x440;&#x430; driver/FM, &#x430; &#x43D;&#x435; &#x435;&#x449;&#x451; &#x43E;&#x434;&#x43D;&#x43E; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x43F;&#x435;&#x440;&#x451;&#x434;. &#x415;&#x441;&#x43B;&#x438; &#x436;&#x443;&#x440;&#x43D;&#x430;&#x43B; &#x438; DCGM &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x44E;&#x442; reset/isolate, &#x441;&#x43B;&#x435;&#x434;&#x443;&#x439;&#x442;&#x435; runbook &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44F; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B;: software restart &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; power cycle &#x438;&#x43B;&#x438; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x443; &#x43A;&#x43E;&#x43C;&#x43F;&#x43E;&#x43D;&#x435;&#x43D;&#x442;&#x430;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442;&#x441;&#x44F; hardware action.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span></div>
<pre class="ks-canonical-code-block__pre"><code>systemctl is-active nvidia-fabricmanager
journalctl -u nvidia-fabricmanager -b --no-pager | tail -n 300
nvidia-smi
nvidia-smi topo -m
dcgmi discovery --list
dcgmi nvlink --link-status --show-entity-ids
journalctl -k -b --no-pager | grep -Ei &apos;NVRM|Xid|SXid|NVSwitch|NVLink&apos; || true
torchrun --standalone --nproc-per-node=8 fabric_smoke.py</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x44F;</div>
</div>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; reboot &#x43D;&#x435; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43A;&#x43E;&#x43B;&#x438;&#x447;&#x435;&#x441;&#x442;&#x432;&#x43E; GPU. &#x41F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; infrastructure gate, &#x437;&#x430;&#x442;&#x435;&#x43C; application gate &#x438; &#x43E;&#x434;&#x438;&#x43D; LLM readiness request. &#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; topology &#x438; entity inventory &#x441; baseline. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x437;&#x430;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x43B;&#x43E;, &#x43D;&#x43E; counter &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x430;&#x435;&#x442; &#x440;&#x430;&#x441;&#x442;&#x438;, &#x443;&#x437;&#x435;&#x43B; &#x43D;&#x435; &#x433;&#x43E;&#x442;&#x43E;&#x432;: &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x435; &#x43E;&#x442;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x44E;.</p>
<p>&#x41A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x430;&#x435;&#x442; &#x43D;&#x435; &#x441;&#x43F;&#x443;&#x442;&#x430;&#x442;&#x44C; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x441; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43E;&#x439;. &#x412;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x44E;&#x44E; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x443;&#x44E; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E;, &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x44F; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; container image &#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;; &#x435;&#x441;&#x43B;&#x438; gates &#x441;&#x43D;&#x43E;&#x432;&#x430; PASS, &#x441;&#x432;&#x44F;&#x437;&#x44C; &#x441; package change &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435;. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F;, &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x435; &#x43A; hardware/service case &#x441; evidence, &#x430; &#x43D;&#x435; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x44B;&#x445; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x439;.</p>
<p>&#x412; Kubernetes &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x443;&#x437;&#x43B;&#x430; &#x438; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x43E;&#x442;&#x440;&#x430;&#x436;&#x430;&#x439;&#x442;&#x435; &#x432; scheduler, taints &#x438; admission. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x43D;&#x435; &#x441;&#x43D;&#x438;&#x43C;&#x430;&#x439;&#x442;&#x435; cordon &#x434;&#x43E; application gate. &#x41E;&#x431;&#x449;&#x443;&#x44E; &#x430;&#x440;&#x445;&#x438;&#x442;&#x435;&#x43A;&#x442;&#x443;&#x440;&#x443; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x441; &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x43E;&#x43C; &#x43F;&#x43E; <a href="https://kingservers.com/blog/kubernetes-dlya-ai-inference-kserve-gpu-autoscaling/">KServe, GPU Operator, Kueue &#x438; autoscaling</a>, &#x43D;&#x43E; readiness NVSwitch-&#x443;&#x437;&#x43B;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; &#x43D;&#x438;&#x436;&#x43D;&#x438;&#x43C; gate.</p>
<div class="ks-widget" id="ks-chk-roll5bk"><h3>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43F;&#x435;&#x440;&#x435;&#x434; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442;&#x43E;&#x43C; &#x443;&#x437;&#x43B;&#x430;</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x41E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x438;&#x439; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x430;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B; package versions, journal &#x438; topology baseline</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> FM/NVLSM active &#x43F;&#x43E;&#x441;&#x43B;&#x435; reboot &#x438;&#x43B;&#x438; restart</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> &#x412;&#x441;&#x435; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; GPU &#x438; links &#x43E;&#x431;&#x43D;&#x430;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x44B;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> DCGM &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x430; &#x43D;&#x435; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; isolate/reset</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> Smoke test &#x438; LLM readiness &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x435;&#x43D;&#x44B;</label><div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-roll5bk');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-07-3706e552.webp" class="kg-image" alt="NVIDIA Fabric Manager &#x438; NVSwitch: production-runbook &#x434;&#x43B;&#x44F; multi-GPU LLM" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-07-3706e552.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-07-3706e552.webp 1000w, https://kingservers.com/blog/content/images/2026/08/nvidia-fabric-manager-nvswitch-llm-runbook-inline-07-3706e552.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="production-checklist">Production checklist &#x434;&#x43B;&#x44F; change &#x438; &#x434;&#x435;&#x436;&#x443;&#x440;&#x441;&#x442;&#x432;&#x430;</h2>
<p>&#x421;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x432; operational contract. &#x414;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F;: platform SKU, driver/FM/NVLSM versions, baseline topology, package rollback &#x438; &#x441;&#x432;&#x43E;&#x431;&#x43E;&#x434;&#x43D;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E;. &#x41F;&#x43E;&#x441;&#x43B;&#x435;: service/journal, discovery, links, DCGM health, Xid/SXid, all-reduce &#x438; LLM readiness. &#x412;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x438;: alert &#x43D;&#x430; link state, fatal/non-fatal events, reset-required &#x438; &#x440;&#x43E;&#x441;&#x442; error counters &#x441; entity labels.</p>
<p>&#x41D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x44C;&#x442;&#x435; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x435;&#x432;. Platform team &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x437;&#x430; packages, systemd, firmware &#x438; hardware case. SRE &#x2014; &#x437;&#x430; admission, evidence &#x438; alerts. &#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x2014; &#x437;&#x430; launcher &#x438; application smoke. &#x41A;&#x43E;&#x433;&#x434;&#x430; ownership &#x440;&#x430;&#x437;&#x43C;&#x44B;&#x442;, &#x430;&#x432;&#x430;&#x440;&#x438;&#x44F; &#x445;&#x43E;&#x434;&#x438;&#x442; &#x43F;&#x43E; &#x43A;&#x440;&#x443;&#x433;&#x443;: SRE &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;, ML-&#x438;&#x43D;&#x436;&#x435;&#x43D;&#x435;&#x440; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; NCCL variables, platform team &#x443;&#x437;&#x43D;&#x430;&#x451;&#x442; &#x43E; down-link &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x435;&#x439;.</p>
<p>&#x41E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; stop conditions &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435;. &#x41D;&#x435;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x433;&#x43E; NVSwitch entity, &#x435;&#x441;&#x442;&#x44C; link down, fatal SXid, reset-required, &#x43D;&#x435;&#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x435; driver/FM &#x438;&#x43B;&#x438; all-reduce failure &#x2014; &#x443;&#x437;&#x435;&#x43B; &#x43D;&#x435; &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442; workload. N/A &#x43F;&#x43E; unsupported field &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x443;&#x442;&#x43E;&#x447;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E;&#x43A;&#x43E;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, &#x43D;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x438;&#x437;&#x43E;&#x43B;&#x44F;&#x446;&#x438;&#x438;. &#x422;&#x430;&#x43A;&#x438;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x430; &#x434;&#x435;&#x43B;&#x430;&#x44E;&#x442; &#x434;&#x435;&#x436;&#x443;&#x440;&#x441;&#x442;&#x432;&#x43E; &#x43F;&#x440;&#x435;&#x434;&#x441;&#x43A;&#x430;&#x437;&#x443;&#x435;&#x43C;&#x44B;&#x43C; &#x438; &#x43D;&#x435; &#x437;&#x430;&#x432;&#x438;&#x441;&#x44F;&#x442; &#x43E;&#x442; &#x443;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x438;&#x43D;&#x436;&#x435;&#x43D;&#x435;&#x440;&#x430; &#x43D;&#x43E;&#x447;&#x44C;&#x44E;.</p>
<p>Version lock &#x438; gates &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x436;&#x438;&#x442;&#x44C; &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x441; provisioning code. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x443;&#x44E; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x435;&#x433;&#x43E; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x443;&#x441;&#x442;&#x43D;&#x443;&#x44E; &#x442;&#x440;&#x430;&#x434;&#x438;&#x446;&#x438;&#x44E;. &#x425;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; smoke script, &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; entities &#x438; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x43E; GPU &#x43A;&#x430;&#x43A; &#x432;&#x435;&#x440;&#x441;&#x438;&#x43E;&#x43D;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x44B;&#x435; artifacts &#x434;&#x43B;&#x44F; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; server class.</p>
<p>&#x414;&#x43B;&#x44F; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; gate &#x437;&#x430;&#x434;&#x430;&#x439;&#x442;&#x435; owner, timeout, evidence path &#x438; rollback action. &#x422;&#x43E;&#x433;&#x434;&#x430; &#xAB;&#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; NVSwitch&#xBB; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x442;&#x430;&#x451;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x430;&#x431;&#x441;&#x442;&#x440;&#x430;&#x43A;&#x442;&#x43D;&#x44B;&#x43C; &#x43F;&#x443;&#x43D;&#x43A;&#x442;&#x43E;&#x43C; &#x438; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x434;&#x443;&#x440;&#x43E;&#x439;. &#x420;&#x430;&#x437; &#x432; &#x43A;&#x432;&#x430;&#x440;&#x442;&#x430;&#x43B; &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x44F;&#x439;&#x442;&#x435; runbook &#x432; maintenance window: &#x430;&#x432;&#x430;&#x440;&#x438;&#x439;&#x43D;&#x430;&#x44F; &#x438;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x446;&#x438;&#x44F;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x443;&#x44E; &#x43D;&#x438;&#x43A;&#x442;&#x43E; &#x43D;&#x435; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x43B;, &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x443;&#x441;&#x442;&#x430;&#x440;&#x435;&#x432;&#x448;&#x438;&#x435; package names &#x438; ids.</p><h2 id="zakliuchenie">&#x427;&#x442;&#x43E; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x44B;&#x43C; &#x443;&#x437;&#x43B;&#x43E;&#x43C;</h2>
<p>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C; NVSwitch-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x2014; &#x446;&#x435;&#x43F;&#x43E;&#x447;&#x43A;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x442;&#x432;, &#x430; &#x43D;&#x435; &#x43E;&#x434;&#x438;&#x43D; &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;. Driver &#x438; Fabric Manager &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x44B; &#x43F;&#x43E; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438;, FM/NVLSM &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x438;&#x43B;&#x438; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E;, DCGM &#x43E;&#x431;&#x43D;&#x430;&#x440;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; switch/link entities, topology &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x441; baseline, &#x441;&#x432;&#x435;&#x436;&#x438;&#x445; fatal Xid/SXid &#x43D;&#x435;&#x442;, &#x430; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; launcher &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442; NCCL all-reduce &#x438; LLM readiness.</p>
<p>&#x41F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x430;&#x44F; &#x43F;&#x440;&#x438;&#x432;&#x44B;&#x447;&#x43A;&#x430; &#x2014; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x44F;&#x442;&#x44C; infrastructure &#x438; application gates. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x438;&#x437;&#x443;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x43E; &#x441;&#x43B;&#x43E;&#x44E;: package/service/fabric, &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;, launcher &#x438;&#x43B;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;. &#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x438; rollback &#x43A; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x435;&#x439; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x440;&#x435; &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x44E;&#x442; &#x43E;&#x442; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x43A;&#x438; &#xAB;&#x434;&#x430;&#x442;&#x44C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x43F;&#x440;&#x430;&#x432; &#x438; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x44C; &#x432;&#x441;&#x451;&#xBB;.</p>
<p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x433;&#x43E; &#x448;&#x430;&#x433;&#x430;: &#x441;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; baseline &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; GPU-&#x443;&#x437;&#x43B;&#x430; &#x441;&#x435;&#x433;&#x43E;&#x434;&#x43D;&#x44F;, &#x43F;&#x43E;&#x43A;&#x430; &#x43E;&#x43D; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;, &#x438; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; package versions. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x442;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x432; change checklist &#x438; automation &#x431;&#x435;&#x437; &#x436;&#x451;&#x441;&#x442;&#x43A;&#x43E; &#x441;&#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x445; entity ids. &#x415;&#x441;&#x43B;&#x438; &#x434;&#x43B;&#x44F; multi-GPU LLM &#x43D;&#x443;&#x436;&#x43D;&#x430; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x430;&#x44F; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x430; &#x441; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x44B;&#x43C; hardware profile &#x438; &#x43E;&#x43A;&#x43D;&#x43E;&#x43C; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x44F;, &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x443;&#x439;&#x442;&#x435; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; gate-&#x43F;&#x43B;&#x430;&#x43D;&#x43E;&#x43C;, &#x430; &#x43D;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x430;.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[GPU throttling в LLM inference: мониторинг через DCGM и Prometheus]]></title><description><![CDATA[Практический мониторинг GPU throttling в LLM inference: DCGM Exporter, Prometheus, метрики power/thermal violation, PromQL, алерты и production-runbook.]]></description><link>https://kingservers.com/blog/gpu-throttling-llm-inference-dcgm-prometheus/</link><guid isPermaLink="false">6a920984aff2afac25354ae5</guid><category><![CDATA[AI]]></category><category><![CDATA[GPU]]></category><category><![CDATA[Inference]]></category><category><![CDATA[DevOps]]></category><dc:creator><![CDATA[King Servers]]></dc:creator><pubDate>Mon, 31 Aug 2026 07:56:13 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/08/gpu-throttling-dcgm-hero-v3-6aef833c.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#symptoms">&#x41F;&#x43E;&#x447;&#x435;&#x43C;&#x443; GPU &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D; &#x43D;&#x430; 100%, &#x430; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x44B; &#x438;&#x434;&#x443;&#x442; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x435;&#x435;</a></li>
<li><a href="#throttling-types">Power cap, thermal slowdown &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x435; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B;</a></li>
<li><a href="#telemetry-stack">&#x41A;&#x43E;&#x43D;&#x442;&#x443;&#x440; DCGM Exporter &#x2192; Prometheus &#x2192; Alertmanager</a></li>
<li><a href="#deploy">&#x420;&#x430;&#x437;&#x432;&#x451;&#x440;&#x442;&#x44B;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x438; &#x43F;&#x435;&#x440;&#x432;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430;</a></li>
<li><a href="#collectors">&#x41A;&#x430;&#x43A;&#x438;&#x435; &#x43F;&#x43E;&#x43B;&#x44F; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; &#x432; collector</a></li>
<li><a href="#semantics">&#x421;&#x435;&#x43C;&#x430;&#x43D;&#x442;&#x438;&#x43A;&#x430; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x43E;&#x432; &#x438; &#x442;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;</a></li>
<li><a href="#promql">PromQL &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x439; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x438;</a></li>
<li><a href="#baseline">&#x41A;&#x430;&#x43A; &#x441;&#x43D;&#x44F;&#x442;&#x44C; baseline &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x441;&#x442;&#x438; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442;</a></li>
<li><a href="#alerts">&#x410;&#x43B;&#x435;&#x440;&#x442;&#x44B;: &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x43C; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C; &#x43E;&#x442; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B;</a></li>
<li><a href="#correlation">&#x421;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x43C; GPU &#x441; TTFT, ITL &#x438; &#x441;&#x442;&#x43E;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x430;</a></li>
<li><a href="#runbook">Runbook &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x440;&#x430;&#x431;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x43D;&#x438;&#x44F;</a></li>
<li><a href="#rollout">&#x411;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; rollout &#x438; &#x432;&#x44B;&#x432;&#x43E;&#x434;</a></li>
</ul></div>

</div><img src="https://kingservers.com/blog/content/images/2026/08/gpu-throttling-dcgm-hero-v3-6aef833c.webp" alt="GPU throttling &#x432; LLM inference: &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; &#x447;&#x435;&#x440;&#x435;&#x437; DCGM &#x438; Prometheus"><p>LLM-&#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x43D;&#x435;&#x437;&#x430;&#x43F;&#x43D;&#x43E; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x442;&#x44C; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x435;&#x435;, &#x445;&#x43E;&#x442;&#x44F; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C;, VRAM &#x438; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x44F;&#x442; &#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;. &#x41F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x430; &#x43D;&#x435;&#x440;&#x435;&#x434;&#x43A;&#x43E; &#x43F;&#x440;&#x44F;&#x447;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x438;&#x436;&#x435; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;: GPU &#x443;&#x43F;&#x438;&#x440;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x43C;&#x43E;&#x449;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x438;&#x43B;&#x438; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x44B;, &#x441;&#x43D;&#x438;&#x436;&#x430;&#x435;&#x442; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x443;, &#x430; &#x433;&#x440;&#x430;&#x444;&#x438;&#x43A; utilization &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x438;&#x434;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; 100%.</p><p>&#x422;&#x430;&#x43A;&#x43E;&#x439; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442; &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x43F;&#x440;&#x438;&#x43D;&#x44F;&#x442;&#x44C; &#x437;&#x430; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443; batching, &#x441;&#x435;&#x442;&#x438; &#x438;&#x43B;&#x438; &#x43F;&#x43B;&#x430;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x449;&#x438;&#x43A;&#x430; &#x438; &#x43F;&#x43E;&#x442;&#x440;&#x430;&#x442;&#x438;&#x442;&#x44C; &#x447;&#x430;&#x441;&#x44B; &#x43D;&#x430; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x443; &#x43D;&#x435; &#x442;&#x43E;&#x433;&#x43E; &#x441;&#x43B;&#x43E;&#x44F;. &#x420;&#x430;&#x437;&#x431;&#x435;&#x440;&#x451;&#x43C; &#x440;&#x430;&#x431;&#x43E;&#x447;&#x438;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x443;&#x440; DCGM Exporter, Prometheus &#x438; Alertmanager: &#x43A;&#x430;&#x43A;&#x438;&#x435; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C;, &#x43A;&#x430;&#x43A; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x438;&#x442;&#x44C; power cap &#x43E;&#x442; thermal slowdown &#x438; &#x447;&#x442;&#x43E; &#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x430;&#x43B;&#x435;&#x440;&#x442;&#x430;.</p><div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="symptoms">&#x41F;&#x43E;&#x447;&#x435;&#x43C;&#x443; GPU &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D; &#x43D;&#x430; 100%, &#x430; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x44B; &#x438;&#x434;&#x443;&#x442; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x435;&#x435;</h2>
<p>&#x412;&#x44B;&#x441;&#x43E;&#x43A;&#x430;&#x44F; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430; GPU &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;, &#x437;&#x430;&#x43D;&#x44F;&#x442; &#x43B;&#x438; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C;. &#x41E;&#x43D;&#x430; &#x43D;&#x435; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x441; &#x43A;&#x430;&#x43A;&#x43E;&#x439; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x43E;&#x439; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x44F;&#x434;&#x440;&#x430; &#x438; &#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443; &#x44D;&#x442;&#x430; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x430; &#x43D;&#x438;&#x436;&#x435; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x439;. &#x412; production &#x43A;&#x430;&#x440;&#x442;&#x438;&#x43D;&#x430; &#x437;&#x43D;&#x430;&#x43A;&#x43E;&#x43C;&#x430;&#x44F;: p95 time-to-first-token &#x440;&#x430;&#x441;&#x442;&#x451;&#x442;, inter-token latency &#x43F;&#x43B;&#x44B;&#x432;&#x451;&#x442;, &#x430; <code>DCGM_FI_DEV_GPU_UTIL</code> &#x434;&#x435;&#x440;&#x436;&#x438;&#x442;&#x441;&#x44F; &#x443; &#x43F;&#x43E;&#x442;&#x43E;&#x43B;&#x43A;&#x430;. &#x41A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x440;&#x435;&#x43F;&#x43B;&#x438;&#x43A;&#x438;, &#x43D;&#x43E; &#x43D;&#x43E;&#x432;&#x44B;&#x435; &#x443;&#x437;&#x43B;&#x44B; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x44E;&#x442; &#x442;&#x443; &#x436;&#x435; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x44E;.</p><p>&#x420;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x442;&#x440;&#x438; &#x43A;&#x43B;&#x430;&#x441;&#x441;&#x430; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;. &#x41E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x43F;&#x435;&#x440;&#x435;&#x434; inference-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43E;&#x43C; &#x443;&#x432;&#x435;&#x43B;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x43D;&#x438;&#x435; &#x434;&#x43E; &#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438;, &#x43D;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D;&#x430; &#x437;&#x430;&#x43C;&#x435;&#x434;&#x43B;&#x44F;&#x442;&#x44C; &#x443;&#x436;&#x435; &#x43D;&#x430;&#x447;&#x430;&#x442;&#x443;&#x44E; &#x433;&#x435;&#x43D;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44E;. &#x414;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; KV cache &#x447;&#x430;&#x449;&#x435; &#x43F;&#x440;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x432;&#x44B;&#x442;&#x435;&#x441;&#x43D;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;, &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430;&#x43C;&#x438; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x449;&#x435;&#x43D;&#x438;&#x44F; &#x438;&#x43B;&#x438; &#x43F;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x43C; concurrency. Throttling &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x44C; &#x432;&#x44B;&#x447;&#x438;&#x441;&#x43B;&#x435;&#x43D;&#x438;&#x44F;: &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x43C;&#x43E;&#x439; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;, &#x434;&#x43B;&#x438;&#x43D;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;&#x430; &#x438; batch size &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; SM clock, &#x430; &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x440;&#x430;&#x441;&#x442;&#x451;&#x442; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x43C;&#x43E;&#x449;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x438;&#x43B;&#x438; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x435;.</p><p>&#x41D;&#x435; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x434;&#x432;&#x430; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; &#x43E;&#x43A;&#x43D;&#x430;. &#x412;&#x43E;&#x437;&#x44C;&#x43C;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44C; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x438; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x435; &#x440;&#x44F;&#x434;&#x430;: &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B; &#x438; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x44B; &#x432; &#x441;&#x435;&#x43A;&#x443;&#x43D;&#x434;&#x443;, utilization, SM clock &#x438; clock-event reasons. &#x41E;&#x434;&#x438;&#x43D; &#x433;&#x440;&#x430;&#x444;&#x438;&#x43A; &#x432;&#x432;&#x43E;&#x434;&#x438;&#x442; &#x432; &#x437;&#x430;&#x431;&#x43B;&#x443;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435;; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x435; &#x434;&#x430;&#x44E;&#x442; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x443;&#x44E; &#x43A;&#x430;&#x440;&#x442;&#x438;&#x43D;&#x443;. &#x415;&#x441;&#x43B;&#x438; queue time &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x435;&#x43D;, ITL &#x443;&#x445;&#x443;&#x434;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x430; &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442;, &#x430; violation &#x440;&#x430;&#x441;&#x442;&#x451;&#x442;, &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x430; throttling &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x439;.</p><p>&#x420;&#x44F;&#x434;&#x43E;&#x43C; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x434;&#x435;&#x440;&#x436;&#x430;&#x442;&#x44C; &#x440;&#x430;&#x437;&#x431;&#x43E;&#x440; <a href="https://kingservers.com/blog/ai-factory-kak-data-tsentr-stanovitsya-fabrikoy-tokenov/">&#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A; AI Factory</a> &#x438; &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x43E; &#x43F;&#x43E; <a href="https://kingservers.com/blog/gpu-scheduling-inference-training-batch/">GPU scheduling</a>. &#x41E;&#x43D;&#x438; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x44E;&#x442; goodput &#x438; &#x43F;&#x43B;&#x430;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435;; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43C;&#x44B; &#x43D;&#x430;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E; &#x441;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x43C;&#x441;&#x44F; &#x43A; &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x44E;, &#x43E;&#x445;&#x43B;&#x430;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44E; &#x438; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x430;&#x43C; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x439; &#x43A;&#x430;&#x440;&#x442;&#x44B;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/gpu-throttling-symptoms-v3-15c8155c.webp" class="kg-image" alt="GPU throttling &#x432; LLM inference: &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; &#x447;&#x435;&#x440;&#x435;&#x437; DCGM &#x438; Prometheus" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/gpu-throttling-symptoms-v3-15c8155c.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/gpu-throttling-symptoms-v3-15c8155c.webp 1000w, https://kingservers.com/blog/content/images/2026/08/gpu-throttling-symptoms-v3-15c8155c.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="throttling-types">Power cap, thermal slowdown &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x435; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B;</h2>
<p>&#x421;&#x43B;&#x43E;&#x432;&#x43E; throttling &#x447;&#x430;&#x441;&#x442;&#x43E; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x44E;&#x442; &#x43A;&#x430;&#x43A; &#x43E;&#x431;&#x449;&#x438;&#x439; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x437;, &#x445;&#x43E;&#x442;&#x44F; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x435; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B;. Software power cap &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x430;&#x43B;&#x433;&#x43E;&#x440;&#x438;&#x442;&#x43C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x435;&#x43C; &#x441;&#x43D;&#x438;&#x436;&#x430;&#x435;&#x442; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x44B;, &#x443;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x44F; GPU &#x432; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x43D;&#x43E;&#x43C; &#x44D;&#x43D;&#x435;&#x440;&#x433;&#x435;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x43C; &#x43A;&#x43E;&#x43D;&#x432;&#x435;&#x440;&#x442;&#x435;. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x432;&#x441;&#x435;&#x433;&#x434;&#x430; &#x43D;&#x435;&#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C;. &#x41D;&#x430; &#x43F;&#x43B;&#x43E;&#x442;&#x43D;&#x43E;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43E;&#x441;&#x43E;&#x437;&#x43D;&#x430;&#x43D;&#x43D;&#x44B;&#x43C; &#x43A;&#x43E;&#x43C;&#x43F;&#x440;&#x43E;&#x43C;&#x438;&#x441;&#x441;&#x43E;&#x43C; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x43A;&#x430;&#x440;&#x442;&#x44B; &#x438; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x43E;&#x439; &#x43C;&#x43E;&#x449;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x441;&#x442;&#x43E;&#x439;&#x43A;&#x438;.</p><p>Thermal slowdown &#x433;&#x43E;&#x432;&#x43E;&#x440;&#x438;&#x442; &#x43E; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x435;. &#x41F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x43C;&#x43D;&#x43E;&#x435; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432;&#x43E;&#x437;&#x43B;&#x435; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x440;&#x430;&#x431;&#x43E;&#x447;&#x435;&#x439; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x44B;, &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x435; &#x2014; &#x443; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x436;&#x451;&#x441;&#x442;&#x43A;&#x43E;&#x433;&#x43E; &#x43F;&#x43E;&#x440;&#x43E;&#x433;&#x430; &#x437;&#x430;&#x449;&#x438;&#x442;&#x44B;. &#x41F;&#x43E;&#x432;&#x44B;&#x448;&#x435;&#x43D;&#x438;&#x435; power limit &#x437;&#x434;&#x435;&#x441;&#x44C; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43D;&#x43E; &#x443;&#x445;&#x443;&#x434;&#x448;&#x438;&#x442;&#x44C; &#x441;&#x438;&#x442;&#x443;&#x430;&#x446;&#x438;&#x44E;. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x443; &#x432;&#x445;&#x43E;&#x434;&#x44F;&#x449;&#x435;&#x433;&#x43E; &#x432;&#x43E;&#x437;&#x434;&#x443;&#x445;&#x430;, &#x43E;&#x431;&#x43E;&#x440;&#x43E;&#x442;&#x44B; &#x432;&#x435;&#x43D;&#x442;&#x438;&#x43B;&#x44F;&#x442;&#x43E;&#x440;&#x43E;&#x432;, &#x437;&#x430;&#x433;&#x440;&#x44F;&#x437;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x440;&#x430;&#x434;&#x438;&#x430;&#x442;&#x43E;&#x440;&#x43E;&#x432;, &#x437;&#x430;&#x433;&#x43B;&#x443;&#x448;&#x43A;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43A;&#x438;, &#x43D;&#x430;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; airflow &#x438; &#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x443; BMC.</p><p>&#x415;&#x441;&#x442;&#x44C; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x435;&#x433;&#x440;&#x435;&#x432;&#x43E;&#x43C;: sync boost &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; &#x433;&#x440;&#x443;&#x43F;&#x43F;&#x443; &#x43F;&#x43E; &#x441;&#x430;&#x43C;&#x43E;&#x43C;&#x443; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;&#x43C;&#x443; &#x443;&#x447;&#x430;&#x441;&#x442;&#x43D;&#x438;&#x43A;&#x443;, applications clocks &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x44E;&#x442; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x43D;&#x443;&#x44E; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x443;, &#x430; external power brake &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43D;&#x430; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B; &#x438;&#x43B;&#x438; &#x431;&#x43B;&#x43E;&#x43A;&#x430; &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x44F;. &#x412; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; <a href="https://docs.nvidia.com/deploy/nvidia-smi/?ref=kingservers.com">&#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; nvidia-smi</a> &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x44F; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x44B;, &#x430; &#x447;&#x430;&#x441;&#x442;&#x44C; &#x441;&#x442;&#x430;&#x440;&#x44B;&#x445; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x439; &#x43F;&#x43E;&#x43C;&#x435;&#x447;&#x435;&#x43D;&#x430; deprecated. Runbook &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43E;&#x43F;&#x438;&#x440;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x439; event.</p><p>&#x41F;&#x440;&#x435;&#x434;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x432;&#x43E;&#x441;&#x435;&#x43C;&#x44C; GPU &#x441; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x43E;&#x439; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x43E;&#x439;, &#x43D;&#x43E; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x44B;&#x439; power brake &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x439;. &#x42D;&#x442;&#x43E; &#x441;&#x43B;&#x430;&#x431;&#x44B;&#x439; &#x430;&#x440;&#x433;&#x443;&#x43C;&#x435;&#x43D;&#x442; &#x432; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443; &#x43E;&#x431;&#x449;&#x435;&#x439; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x44B; &#x43E;&#x445;&#x43B;&#x430;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x2014; &#x432; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; PSU, &#x43A;&#x430;&#x431;&#x435;&#x43B;&#x44F;, riser &#x438;&#x43B;&#x438; &#x43A;&#x430;&#x440;&#x442;&#x44B;. &#x421;&#x438;&#x43D;&#x445;&#x440;&#x43E;&#x43D;&#x43D;&#x44B;&#x439; thermal violation &#x43D;&#x430; &#x432;&#x435;&#x440;&#x445;&#x43D;&#x438;&#x445; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;&#x445; &#x441;&#x442;&#x43E;&#x439;&#x43A;&#x438;, &#x43D;&#x430;&#x43E;&#x431;&#x43E;&#x440;&#x43E;&#x442;, &#x447;&#x430;&#x441;&#x442;&#x43E; &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43D;&#x430; &#x440;&#x435;&#x446;&#x438;&#x440;&#x43A;&#x443;&#x43B;&#x44F;&#x446;&#x438;&#x44E; &#x433;&#x43E;&#x440;&#x44F;&#x447;&#x435;&#x433;&#x43E; &#x432;&#x43E;&#x437;&#x434;&#x443;&#x445;&#x430;.</p><h2 id="telemetry-stack">&#x41A;&#x43E;&#x43D;&#x442;&#x443;&#x440; DCGM Exporter &#x2192; Prometheus &#x2192; Alertmanager</h2>
<p>DCGM &#x447;&#x438;&#x442;&#x430;&#x435;&#x442; &#x442;&#x435;&#x43B;&#x435;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x44E; NVIDIA GPU &#x447;&#x435;&#x440;&#x435;&#x437; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440; &#x438; host engine. DCGM Exporter &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x43B;&#x44F;, &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x43C;&#x435;&#x442;&#x43A;&#x438; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430; &#x438;, &#x432; Kubernetes-&#x440;&#x435;&#x436;&#x438;&#x43C;&#x435;, workload labels, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43E;&#x442;&#x434;&#x430;&#x451;&#x442; Prometheus-&#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442; &#x43D;&#x430; <code>/metrics</code>. &#x41F;&#x43E; &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C;&#x443; <a href="https://docs.nvidia.com/datacenter/dcgm/latest/reference/command-line-reference/dcgm-exporter.html?ref=kingservers.com">&#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x430;&#x43A;&#x442;&#x443; dcgm-exporter</a> &#x441;&#x442;&#x430;&#x43D;&#x434;&#x430;&#x440;&#x442;&#x43D;&#x44B;&#x439; listener &#x2014; &#x43F;&#x43E;&#x440;&#x442; 9400, &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x43C;&#x430;&#x44F; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x430; &#x2014; Linux.</p><p>&#x41D;&#x430; bare metal &#x440;&#x430;&#x437;&#x443;&#x43C;&#x43D;&#x43E; &#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x43E;&#x434;&#x438;&#x43D; exporter &#x43D;&#x430; GPU-&#x445;&#x43E;&#x441;&#x442;. &#x412; Kubernetes &#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x444;&#x43E;&#x440;&#x43C;&#x430; &#x2014; DaemonSet &#x438;&#x43B;&#x438; &#x43A;&#x43E;&#x43C;&#x43F;&#x43E;&#x43D;&#x435;&#x43D;&#x442; NVIDIA GPU Operator. &#x41E;&#x434;&#x438;&#x43D; &#x44D;&#x43A;&#x437;&#x435;&#x43C;&#x43F;&#x43B;&#x44F;&#x440; &#x43D;&#x430; node &#x432;&#x438;&#x434;&#x438;&#x442; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x438;, &#x430; Prometheus &#x441;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; samples &#x441; node, pod &#x438; namespace. &#x417;&#x430;&#x43F;&#x443;&#x441;&#x43A; &#x43F;&#x43E; exporter &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; inference-pod &#x440;&#x430;&#x437;&#x43C;&#x43D;&#x43E;&#x436;&#x430;&#x435;&#x442; &#x442;&#x43E;&#x447;&#x43A;&#x438; &#x43E;&#x442;&#x43A;&#x430;&#x437;&#x430; &#x438; &#x43E;&#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x44F;&#x435;&#x442; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x435; host engine.</p><p>&#x423; &#x43A;&#x43E;&#x43D;&#x442;&#x443;&#x440;&#x430; &#x442;&#x440;&#x438; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x44B;&#x445; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x432;&#x430;&#x43B;&#x430;: DCGM &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x44F;&#x435;&#x442; watched fields, exporter &#x43E;&#x442;&#x434;&#x430;&#x451;&#x442; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435;, Prometheus &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; scrape. &#x415;&#x441;&#x43B;&#x438; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x430; &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x440;&#x430;&#x437; &#x432; 30 &#x441;&#x435;&#x43A;&#x443;&#x43D;&#x434;, scrape &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x435; 5 &#x441;&#x435;&#x43A;&#x443;&#x43D;&#x434; &#x43D;&#x435; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; &#x43D;&#x43E;&#x432;&#x443;&#x44E; &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x443;&#x44E; &#x442;&#x435;&#x43B;&#x435;&#x43C;&#x435;&#x442;&#x440;&#x438;&#x44E;. &#x411;&#x44B;&#x441;&#x442;&#x440;&#x44B;&#x439; collector &#x43F;&#x440;&#x438; &#x440;&#x435;&#x434;&#x43A;&#x43E;&#x43C; scrape &#x442;&#x43E;&#x436;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x44C; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x43E;&#x435; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x435;, &#x435;&#x441;&#x43B;&#x438; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x435;&#x442;&#x44C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; gauges. NVIDIA &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x443;&#x435;&#x442; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x432;&#x430;&#x43B;&#x44B; &#x432; <a href="https://docs.nvidia.com/datacenter/dcgm/latest/learn/getting-started-for-system-administrators/configure-prometheus-for-dcgm-exporter.html?ref=kingservers.com">&#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x435; &#x43F;&#x43E; Prometheus</a>.</p><p>&#x421;&#x442;&#x430;&#x440;&#x442;&#x443;&#x439;&#x442;&#x435; &#x441; 15&#x2013;30 &#x441;&#x435;&#x43A;&#x443;&#x43D;&#x434; &#x434;&#x43B;&#x44F; &#x43E;&#x431;&#x449;&#x435;&#x433;&#x43E; &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433;&#x430; &#x438; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; thermals, power &#x438; clock events, &#x435;&#x441;&#x43B;&#x438; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; SLO. &#x41E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x430;&#x43B;&#x435;&#x440;&#x442;&#x438;&#x442;&#x435; <code>up</code>: &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; samples &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x43E; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x435;&#x442;&#x44C; &#x43A;&#x430;&#x43A; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x44B;&#x439; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/dcgm-telemetry-stack-2571e04b.webp" class="kg-image" alt="GPU throttling &#x432; LLM inference: &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; &#x447;&#x435;&#x440;&#x435;&#x437; DCGM &#x438; Prometheus" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/dcgm-telemetry-stack-2571e04b.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/dcgm-telemetry-stack-2571e04b.webp 1000w, https://kingservers.com/blog/content/images/2026/08/dcgm-telemetry-stack-2571e04b.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="deploy">&#x420;&#x430;&#x437;&#x432;&#x451;&#x440;&#x442;&#x44B;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x438; &#x43F;&#x435;&#x440;&#x432;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430;</h2>
<p>&#x414;&#x43E; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438; &#x441;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; GPU, &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x430; &#x438; DCGM &#x43F;&#x43E; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43C;&#x430;&#x442;&#x440;&#x438;&#x446;&#x435;. &#x41A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x443; &#x43D;&#x443;&#x436;&#x435;&#x43D; NVIDIA Container Toolkit &#x438; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x43A; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;&#x43C;. &#x412; Kubernetes &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; GPU Operator, &#x435;&#x441;&#x43B;&#x438; &#x43E;&#x43D; &#x443;&#x436;&#x435; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x435;&#x442; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x43E;&#x43C; &#x438; device plugin; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; Helm release &#x443;&#x434;&#x43E;&#x431;&#x435;&#x43D; &#x43F;&#x440;&#x438; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; &#x436;&#x438;&#x437;&#x43D;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x446;&#x438;&#x43A;&#x43B;&#x430;&#x445;.</p><p>&#x41D;&#x430; standalone-&#x445;&#x43E;&#x441;&#x442;&#x435; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; GPU, &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x438; endpoint. &#x424;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x430; &#x438;&#x43B;&#x438; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x430; &#x432; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x43E;&#x43C; &#x43A;&#x43E;&#x434;&#x435;. &#x41A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x43E;&#x433;&#x43E; latest-&#x442;&#x435;&#x433;&#x430; &#x443;&#x441;&#x43B;&#x43E;&#x436;&#x43D;&#x438;&#x442; &#x440;&#x430;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438; &#x438;&#x43B;&#x438; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x430; &#x43F;&#x43E;&#x43B;&#x44F; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x441;&#x44F;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">smoke-test.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>nvidia-smi
systemctl status nvidia-dcgm-exporter --no-pager
curl --fail --silent http://127.0.0.1:9400/metrics \
  | grep -m1 &apos;^DCGM_FI_DEV_GPU_UTIL&apos;</code></pre>
<div class="ks-canonical-code-block__caption">&#x411;&#x430;&#x437;&#x43E;&#x432;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; GPU &#x438; DCGM Exporter</div>
</div>
<p>&#x412; Kubernetes &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; Ready &#x443; DaemonSet. &#x423;&#x431;&#x435;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C;, &#x447;&#x442;&#x43E; pod &#x435;&#x441;&#x442;&#x44C; &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; GPU-node, endpoint &#x434;&#x43E;&#x441;&#x442;&#x438;&#x436;&#x438;&#x43C; &#x438;&#x437; &#x441;&#x435;&#x442;&#x438; Prometheus, &#x430; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x43B;&#x438; workload labels. Target &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; UP, &#x43D;&#x43E; &#x43D;&#x443;&#x436;&#x43D;&#x43E;&#x435; &#x43F;&#x43E;&#x43B;&#x435; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x438;&#x437;-&#x437;&#x430; collector configuration, &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x443; &#x438;&#x43B;&#x438; &#x43D;&#x435;&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x439; &#x441;&#x432;&#x44F;&#x437;&#x43A;&#x438; driver/DCGM.</p><p>Endpoint &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x432; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x43E;&#x439; monitoring-&#x441;&#x435;&#x442;&#x438;. Exporter &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; web-config Prometheus exporter-toolkit &#x434;&#x43B;&#x44F; TLS &#x438; basic auth. &#x415;&#x441;&#x43B;&#x438; chart-managed ServiceMonitor &#x43F;&#x440;&#x435;&#x434;&#x43F;&#x43E;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x442; HTTP, &#x430; &#x432;&#x44B; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x43B;&#x438; TLS, &#x441;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x441;&#x43E;&#x431;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x443;&#x44E; scrape-&#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E; &#x441; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x43C;&#x438; credentials.</p><p>&#x414;&#x43B;&#x44F; &#x43E;&#x431;&#x449;&#x435;&#x439; &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x44B; &#x441;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x441;&#x43E; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x451;&#x439; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/kubernetes-dlya-ai-inference-kserve-gpu-autoscaling/">Kubernetes &#x434;&#x43B;&#x44F; AI inference</a>. DCGM &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; hardware telemetry, &#x43D;&#x43E; &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438; vLLM, KServe &#x438;&#x43B;&#x438; gateway: &#x431;&#x435;&#x437; &#x43D;&#x438;&#x445; &#x432;&#x44B; &#x443;&#x432;&#x438;&#x434;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x440;&#x43C;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x43A;&#x430;&#x440;&#x442;&#x44B;, &#x43D;&#x43E; &#x43D;&#x435; &#x432;&#x43B;&#x438;&#x44F;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/dcgm-exporter-deployment-v3-385d493f.webp" class="kg-image" alt="GPU throttling &#x432; LLM inference: &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; &#x447;&#x435;&#x440;&#x435;&#x437; DCGM &#x438; Prometheus" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/dcgm-exporter-deployment-v3-385d493f.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/dcgm-exporter-deployment-v3-385d493f.webp 1000w, https://kingservers.com/blog/content/images/2026/08/dcgm-exporter-deployment-v3-385d493f.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="collectors">&#x41A;&#x430;&#x43A;&#x438;&#x435; &#x43F;&#x43E;&#x43B;&#x44F; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; &#x432; collector</h2>
<p>&#x41D;&#x430;&#x431;&#x43E;&#x440; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x43E;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435;, &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x443; &#x438; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;. &#x414;&#x43B;&#x44F; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x44F; &#x43D;&#x443;&#x436;&#x43D;&#x44B; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x430;, power usage, GPU utilization &#x438; SM clock. &#x414;&#x43B;&#x44F; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B; &#x2014; power/thermal violation &#x438; clock event reasons. &#x42D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x44E;&#x442; application-level tokens/s, TTFT &#x438; ITL, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x43F;&#x440;&#x438;&#x445;&#x43E;&#x434;&#x44F;&#x442; &#x43D;&#x435; &#x438;&#x437; DCGM.</p><p><code>DCGM_FI_DEV_POWER_VIOLATION</code> &#x438; <code>DCGM_FI_DEV_THERMAL_VIOLATION</code> &#x43E;&#x442;&#x43D;&#x43E;&#x441;&#x44F;&#x442;&#x441;&#x44F; &#x43A; shipped optional metrics &#x438; &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x437;&#x430;&#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x44B; &#x432; default collector. &#x421;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43D;&#x43E; <a href="https://docs.nvidia.com/datacenter/dcgm/latest/reference/dcgm-exporter-metrics.html?ref=kingservers.com">&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43E;&#x447;&#x43D;&#x438;&#x43A;&#x443; DCGM Exporter</a>, &#x438;&#x445; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x44E;&#x442; &#x447;&#x435;&#x440;&#x435;&#x437; custom CSV, YAML fields &#x438;&#x43B;&#x438; Helm custom metrics.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">text</span><span class="ks-canonical-code-block__filename">custom-collectors.csv</span></div>
<pre class="ks-canonical-code-block__pre"><code>DCGM_FI_DEV_GPU_UTIL, gauge, GPU utilization in percent.
DCGM_FI_DEV_GPU_TEMP, gauge, GPU temperature in Celsius.
DCGM_FI_DEV_POWER_USAGE, gauge, GPU power usage in watts.
DCGM_FI_DEV_SM_CLOCK, gauge, SM clock frequency in MHz.
DCGM_FI_DEV_POWER_VIOLATION, counter, Power violation time in microseconds.
DCGM_FI_DEV_THERMAL_VIOLATION, counter, Thermal violation time in microseconds.
DCGM_FI_DEV_CLOCKS_EVENT_REASONS, gauge, Active clock event reason bitmask.</code></pre>
<div class="ks-canonical-code-block__caption">&#x41C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; collector &#x434;&#x43B;&#x44F; throttling</div>
</div>
<p>CSV &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x440;&#x43E;&#x432;&#x43D;&#x43E; &#x442;&#x440;&#x438; &#x43F;&#x43E;&#x43B;&#x44F; &#x432; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x435;. &#x414;&#x43B;&#x44F; &#x43D;&#x43E;&#x432;&#x44B;&#x445; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x439; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D; YAML schema version 1 &#x438; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; watch groups. &#x418;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; YAML &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; restart, &#x442;&#x43E;&#x433;&#x434;&#x430; &#x43A;&#x430;&#x43A; file-based CSV &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x430;&#x442;&#x44C;&#x441;&#x44F;. Exporter-owned cumulative counters &#x445;&#x440;&#x430;&#x43D;&#x44F;&#x442;&#x441;&#x44F; &#x432; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x438; &#x441;&#x431;&#x440;&#x430;&#x441;&#x44B;&#x432;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x438; recreation collector &#x438;&#x43B;&#x438; restart, &#x437;&#x43D;&#x430;&#x447;&#x438;&#x442; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x43D;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x436;&#x438;&#x432;&#x430;&#x442;&#x44C; reset.</p><p>&#x41D;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; &#x432;&#x441;&#x435; profiling fields &#xAB;&#x43D;&#x430; &#x431;&#x443;&#x434;&#x443;&#x449;&#x435;&#x435;&#xBB;. &#x41D;&#x430; &#x43D;&#x435;&#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x445; &#x43F;&#x43E;&#x43A;&#x43E;&#x43B;&#x435;&#x43D;&#x438;&#x44F;&#x445; &#x43E;&#x43D;&#x438; &#x442;&#x440;&#x435;&#x431;&#x443;&#x44E;&#x442; proprietary package &#x438; &#x434;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; &#x43F;&#x440;&#x438;&#x432;&#x438;&#x43B;&#x435;&#x433;&#x438;&#x439;, &#x430; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x430; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44F;&#x43C;&#x438; GPU. &#x414;&#x43B;&#x44F; throttling &#x431;&#x430;&#x437;&#x43E;&#x432;&#x44B;&#x445; device fields &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E;. &#x41A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; collector &#x43F;&#x440;&#x43E;&#x449;&#x435; &#x441;&#x43E;&#x43F;&#x440;&#x43E;&#x432;&#x43E;&#x436;&#x434;&#x430;&#x442;&#x44C; &#x438; &#x43E;&#x43D; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435; &#x440;&#x438;&#x441;&#x43A;&#x443;&#x435;&#x442; &#x440;&#x430;&#x437;&#x434;&#x443;&#x442;&#x44C; cardinality.</p><h2 id="semantics">&#x421;&#x435;&#x43C;&#x430;&#x43D;&#x442;&#x438;&#x43A;&#x430; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;&#x43E;&#x432; &#x438; &#x442;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;</h2>
<p>Power &#x438; thermal violation &#x2014; &#x43D;&#x430;&#x43A;&#x43E;&#x43F;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x432; &#x43C;&#x438;&#x43A;&#x440;&#x43E;&#x441;&#x435;&#x43A;&#x443;&#x43D;&#x434;&#x430;&#x445;. &#x410;&#x431;&#x441;&#x43E;&#x43B;&#x44E;&#x442;&#x43D;&#x43E;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43D;&#x435;&#x434;&#x435;&#x43B;&#x438; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x44B; &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x431;&#x435;&#x441;&#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E;. &#x41D;&#x443;&#x436;&#x435;&#x43D; &#x43F;&#x440;&#x438;&#x440;&#x43E;&#x441;&#x442; &#x437;&#x430; &#x43E;&#x43A;&#x43D;&#x43E;: &#x43E;&#x43D; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438; GPU &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x43B;&#x441;&#x44F; &#x43F;&#x43E;&#x434; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435;&#x43C;. &#x41F;&#x440;&#x438; &#x440;&#x435;&#x441;&#x442;&#x430;&#x440;&#x442;&#x435; counter &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x441;&#x431;&#x440;&#x43E;&#x441;&#x438;&#x442;&#x44C;&#x441;&#x44F;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; PromQL &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C; reset.</p><p>Clock event reasons &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x440;&#x438;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x44C; &#x43A;&#x430;&#x43A; bitmask. Gauge &#x443;&#x434;&#x43E;&#x431;&#x435;&#x43D; &#x434;&#x43B;&#x44F; &#x440;&#x443;&#x447;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438;, &#x43D;&#x43E; &#x43D;&#x435;&#x443;&#x434;&#x43E;&#x431;&#x435;&#x43D; &#x434;&#x43B;&#x44F; &#x430;&#x43B;&#x435;&#x440;&#x442;&#x430;. &#x412; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; exporter &#x435;&#x441;&#x442;&#x44C; opt-in <code>DCGM_EXP_CLOCK_EVENTS_TOTAL</code>: &#x43E;&#x43D; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; &#x441;&#x435;&#x440;&#x438;&#x44E; &#x441; label &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B; &#x438; &#x441;&#x447;&#x438;&#x442;&#x430;&#x435;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x445;&#x43E;&#x434;&#x44B; inactive&#x2192;active. &#x42D;&#x442;&#x43E; &#x43E;&#x431;&#x43B;&#x435;&#x433;&#x447;&#x430;&#x435;&#x442; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B;, &#x43D;&#x43E; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x441;&#x44F; &#x432; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x435; &#x438; &#x441;&#x431;&#x440;&#x430;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x440;&#x438; &#x435;&#x433;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x438;.</p><p>&#x41D;&#x435; &#x43F;&#x443;&#x442;&#x430;&#x439;&#x442;&#x435; <code>_COUNT</code> &#x438; <code>_TOTAL</code>. &#x41F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x435;&#x433;&#x43E; collection window, &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x43F;&#x440;&#x435;&#x434;&#x43D;&#x430;&#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D; &#x434;&#x43B;&#x44F; <code>increase()</code> &#x438; <code>rate()</code>. &#x427;&#x430;&#x441;&#x442;&#x44B;&#x439; scrape &#x43D;&#x435; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x443;&#x435;&#x442; &#x432;&#x438;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x43C;&#x438;&#x43A;&#x440;&#x43E;&#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x44F;, &#x435;&#x441;&#x43B;&#x438; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x435; &#x43F;&#x43E;&#x43B;&#x435; &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x440;&#x435;&#x436;&#x435;. &#x418;&#x43D;&#x442;&#x435;&#x440;&#x432;&#x430;&#x43B;&#x44B; &#x2014; &#x447;&#x430;&#x441;&#x442;&#x44C; &#x434;&#x438;&#x437;&#x430;&#x439;&#x43D;&#x430;, &#x430; &#x43D;&#x435; &#x434;&#x435;&#x43A;&#x43E;&#x440;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x439; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;.</p><p>&#x415;&#x449;&#x451; &#x43E;&#x434;&#x43D;&#x430; &#x43B;&#x43E;&#x432;&#x443;&#x448;&#x43A;&#x430; &#x2014; &#x43F;&#x440;&#x435;&#x436;&#x434;&#x435;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x430;&#x44F; &#x430;&#x433;&#x440;&#x435;&#x433;&#x430;&#x446;&#x438;&#x44F;. &#x421;&#x440;&#x435;&#x434;&#x43D;&#x44F;&#x44F; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x430; &#x432;&#x43E;&#x441;&#x44C;&#x43C;&#x438; &#x43A;&#x430;&#x440;&#x442; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43E;&#x434;&#x43D;&#x430; &#x443;&#x436;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x434;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F;. &#x414;&#x43B;&#x44F; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x433;&#x43E; &#x430;&#x43B;&#x435;&#x440;&#x442;&#x430; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x439;&#x442;&#x435; UUID &#x438; node; &#x434;&#x43B;&#x44F; capacity review &#x43F;&#x43E;&#x437;&#x436;&#x435; &#x430;&#x433;&#x440;&#x435;&#x433;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43F;&#x43E; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;, &#x441;&#x442;&#x43E;&#x439;&#x43A;&#x435; &#x438;&#x43B;&#x438; &#x43F;&#x443;&#x43B;&#x443;. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x442;&#x430;&#x43A;&#x436;&#x435; unsupported &#x438;&#x43B;&#x438; blank values: &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; GPU &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x44E;&#x442; &#x43D;&#x435; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x439; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x441;&#x435;&#x43D;&#x441;&#x43E;&#x440;&#x43E;&#x432;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/gpu-metrics-correlation-de4fdb38.webp" class="kg-image" alt="GPU throttling &#x432; LLM inference: &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; &#x447;&#x435;&#x440;&#x435;&#x437; DCGM &#x438; Prometheus" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/gpu-metrics-correlation-de4fdb38.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/gpu-metrics-correlation-de4fdb38.webp 1000w, https://kingservers.com/blog/content/images/2026/08/gpu-metrics-correlation-de4fdb38.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="promql">PromQL &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x439; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x438;</h2>
<p>&#x421;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B; &#x432; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D;&#x435; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438;. &#x41F;&#x435;&#x440;&#x432;&#x44B;&#x435; &#x434;&#x432;&#x430; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x44E;&#x442; &#x434;&#x43E;&#x43B;&#x44E; &#x43E;&#x43A;&#x43D;&#x430; &#x43F;&#x43E;&#x434; power cap &#x438; thermal violation, &#x442;&#x440;&#x435;&#x442;&#x438;&#x439; &#x2014; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x443;, &#x447;&#x435;&#x442;&#x432;&#x451;&#x440;&#x442;&#x44B;&#x439; &#x2014; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; exporter. &#x414;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x440;&#x438;&#x440;&#x43E;&#x441;&#x442;&#x430; &#x43C;&#x438;&#x43A;&#x440;&#x43E;&#x441;&#x435;&#x43A;&#x443;&#x43D;&#x434; &#x43D;&#x430; &#x434;&#x43B;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43E;&#x43A;&#x43D;&#x430; &#x43F;&#x435;&#x440;&#x435;&#x432;&#x43E;&#x434;&#x438;&#x442; delta &#x432; &#x434;&#x43E;&#x43B;&#x44E; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">text</span><span class="ks-canonical-code-block__filename">throttling.promql</span></div>
<pre class="ks-canonical-code-block__pre"><code>clamp_min(increase(DCGM_FI_DEV_POWER_VIOLATION[5m]), 0)
  / (300 * 1e6)

clamp_min(increase(DCGM_FI_DEV_THERMAL_VIOLATION[5m]), 0)
  / (300 * 1e6)

DCGM_FI_DEV_SM_CLOCK

up{job=&quot;dcgm-exporter&quot;} == 0</code></pre>
<div class="ks-canonical-code-block__caption">&#x411;&#x430;&#x437;&#x43E;&#x432;&#x44B;&#x435; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B; &#x434;&#x43B;&#x44F; GPU throttling</div>
</div>
<p>&#x421;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; SM clock &#x441; baseline &#x442;&#x43E;&#x439; &#x436;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; GPU &#x438; &#x441;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x43C;&#x43E;&#x433;&#x43E; workload. &#x41C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x430; &#x438;&#x437; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x43E;&#x433;&#x43E; &#x43E;&#x43A;&#x43D;&#x430; &#x43D;&#x435; &#x433;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x43A;&#x430;&#x43A; SLO: boost &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x44B;, &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x44F; &#x438; &#x442;&#x438;&#x43F;&#x430; kernel. &#x41B;&#x443;&#x447;&#x448;&#x435; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x44C; recording rule baseline &#x43D;&#x430; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x43E;&#x43C; &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x435; &#x438; &#x432;&#x435;&#x440;&#x441;&#x438;&#x43E;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x435;&#x451; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x435;&#x43C; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;.</p><p>&#x414;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x440;&#x44F;&#x434;&#x43E;&#x43C; <code>rate(tokens_generated_total[5m])</code>, p95 ITL, queue time &#x438; active sequences. &#x415;&#x441;&#x43B;&#x438; violation &#x440;&#x430;&#x441;&#x442;&#x451;&#x442;, clock &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x438; tokens/s &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x438;&#x440;&#x443;&#x435;&#x442; &#x43F;&#x440;&#x438; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; batch profile, &#x441;&#x432;&#x44F;&#x437;&#x44C; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435;. &#x415;&#x441;&#x43B;&#x438; clock &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x431;&#x435;&#x437; violations, &#x438;&#x449;&#x438;&#x442;&#x435; applications clocks, sync group, idle transitions &#x438;&#x43B;&#x438; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x441;&#x430;&#x43C;&#x43E;&#x439; workload.</p><p>&#x41E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x438;&#x441;&#x43F;&#x44B;&#x442;&#x430;&#x439;&#x442;&#x435; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B; &#x43D;&#x430; reset. &#x41F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x435; exporter &#x43D;&#x430; canary-node &#x438; &#x443;&#x431;&#x435;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C;, &#x447;&#x442;&#x43E; <code>increase()</code> &#x43D;&#x435; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; &#x433;&#x438;&#x433;&#x430;&#x43D;&#x442;&#x441;&#x43A;&#x438;&#x439; spike. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x442;&#x435; scrape gap &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x430;&#x43B;&#x435;&#x440;&#x442; missing target. Production PromQL &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x435;&#x440;&#x435;&#x436;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x438; &#x442;&#x430;&#x43A; &#x436;&#x435; &#x441;&#x43F;&#x43E;&#x43A;&#x43E;&#x439;&#x43D;&#x43E;, &#x43A;&#x430;&#x43A; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x443;&#x44E; &#x441;&#x43C;&#x435;&#x43D;&#x443; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/promql-throttling-analysis-36d41099.webp" class="kg-image" alt="GPU throttling &#x432; LLM inference: &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; &#x447;&#x435;&#x440;&#x435;&#x437; DCGM &#x438; Prometheus" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/promql-throttling-analysis-36d41099.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/promql-throttling-analysis-36d41099.webp 1000w, https://kingservers.com/blog/content/images/2026/08/promql-throttling-analysis-36d41099.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="baseline">&#x41A;&#x430;&#x43A; &#x441;&#x43D;&#x44F;&#x442;&#x44C; baseline &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x441;&#x442;&#x438; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442;</h2>
<p>Baseline &#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x438;&#x437; &#xAB;&#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x433;&#x43E; &#x440;&#x430;&#x431;&#x43E;&#x447;&#x435;&#x433;&#x43E; &#x434;&#x43D;&#x44F;&#xBB;, &#x430; &#x438;&#x437; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x433;&#x43E; &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x44F;. &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x438; &#x435;&#x451; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x44E;, inference engine, &#x43A;&#x432;&#x430;&#x43D;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E;, &#x434;&#x43B;&#x438;&#x43D;&#x44B; prompt/output, concurrency, scheduler flags, batch policy &#x438; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x435;&#x432;&#x430;. &#x417;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x443; &#x43F;&#x43E;&#x43C;&#x435;&#x449;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x449;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430;. &#x418;&#x43D;&#x430;&#x447;&#x435; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x438;&#x435; &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x438;&#x442;&#x44C; &#x43D;&#x435; power cap, &#x430; &#x43D;&#x43E;&#x432;&#x44B;&#x43C; &#x440;&#x430;&#x441;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;.</p><p>&#x41F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x438;&#x442;&#x435; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D;&#x435;&#x439; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;: &#x43D;&#x438;&#x437;&#x43A;&#x443;&#x44E;, &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x443;&#x44E; &#x438; &#x431;&#x43B;&#x438;&#x437;&#x43A;&#x443;&#x44E; &#x43A; &#x43F;&#x438;&#x43A;&#x443;. &#x414;&#x43B;&#x44F; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x439; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; TTFT, ITL, tokens/s, GPU utilization, SM clock, power usage, temperature &#x438; violation deltas. &#x41D;&#x435; &#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x443;&#x439;&#x442;&#x435; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x430;: &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x43E;&#x442;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43A; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x439; &#x43A;&#x430;&#x440;&#x442;&#x435;, &#x448;&#x430;&#x441;&#x441;&#x438;, &#x43E;&#x445;&#x43B;&#x430;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44E; &#x438; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; &#x41F;&#x41E;.</p><p>&#x41F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x44B;&#x439; power-cap experiment, &#x43D;&#x43E; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x43E;&#x43C; &#x43F;&#x443;&#x43B;&#x435; &#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;&#x44B;&#x445; min/max &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;. &#x41C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;, &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x43A; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x43C;&#x443; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44E; &#x438; &#x434;&#x430;&#x432;&#x430;&#x439;&#x442;&#x435; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x435; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;. &#x426;&#x435;&#x43B;&#x44C; &#x2014; &#x43D;&#x430;&#x439;&#x442;&#x438; &#x444;&#x43E;&#x440;&#x43C;&#x443; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438; latency, throughput &#x438; joules/token, &#x430; &#x43D;&#x435; &#xAB;&#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;&#xBB;, &#x447;&#x442;&#x43E; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x432;&#x441;&#x435;&#x433;&#x434;&#x430; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x435;&#x435;.</p><p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x43B;&#x438; &#x43B;&#x438; &#x432;&#x44B; &#x440;&#x430;&#x437;&#x43D;&#x438;&#x446;&#x443; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x43C; &#x445;&#x43E;&#x43B;&#x43E;&#x434;&#x43D;&#x44B;&#x43C; &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x43E;&#x43C; &#x438; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x432;&#x448;&#x438;&#x43C;&#x441;&#x44F; &#x442;&#x435;&#x43F;&#x43B;&#x43E;&#x432;&#x44B;&#x43C; &#x440;&#x435;&#x436;&#x438;&#x43C;&#x43E;&#x43C;? &#x414;&#x435;&#x441;&#x44F;&#x442;&#x438;&#x43C;&#x438;&#x43D;&#x443;&#x442;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x435;&#x442;&#x44C; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;&#x44B;&#x43C;, &#x430; &#x447;&#x435;&#x440;&#x435;&#x437; &#x447;&#x430;&#x441; &#x43A;&#x430;&#x440;&#x442;&#x430; &#x432;&#x44B;&#x439;&#x434;&#x435;&#x442; &#x43D;&#x430; &#x438;&#x43D;&#x43E;&#x439; clock. Baseline &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x434;&#x43B;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x430; &#x448;&#x430;&#x441;&#x441;&#x438; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B;&#x430;&#x441;&#x44C;, &#x438; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;, &#x430; &#x43D;&#x435; &#x435;&#x434;&#x438;&#x43D;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x443;&#x434;&#x430;&#x447;&#x43D;&#x443;&#x44E; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x43A;&#x443;.</p><h2 id="alerts">&#x410;&#x43B;&#x435;&#x440;&#x442;&#x44B;: &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x43C; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C; &#x43E;&#x442; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x44B;</h2>
<p>&#x41D;&#x435; &#x43F;&#x435;&#x439;&#x434;&#x436;&#x438;&#x442;&#x435; &#x43F;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x432;&#x44B;&#x441;&#x43E;&#x43A;&#x43E;&#x439; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x435;. &#x41F;&#x43E;&#x440;&#x43E;&#x433; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x438; airflow, &#x430; &#x431;&#x43B;&#x438;&#x437;&#x43E;&#x441;&#x442;&#x44C; &#x43A; &#x43D;&#x435;&#x43C;&#x443; &#x435;&#x449;&#x451; &#x43D;&#x435; &#x440;&#x430;&#x432;&#x43D;&#x430; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x438;. &#x41F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x44B;&#x439; alert &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x443;&#x441;&#x442;&#x43E;&#x439;&#x447;&#x438;&#x432;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x438;&#x440;&#x43E;&#x441;&#x442;&#x430; violation &#x438;, &#x436;&#x435;&#x43B;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;, &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x432;&#x43B;&#x438;&#x44F;&#x43D;&#x438;&#x44F; &#x43D;&#x430; clock &#x438;&#x43B;&#x438; SLO. Warning &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x43F;&#x438;&#x440;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x430; hardware-&#x43F;&#x440;&#x438;&#x437;&#x43D;&#x430;&#x43A;, critical &#x2014; &#x43D;&#x430; hardware &#x43F;&#x43B;&#x44E;&#x441; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x438;&#x439; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">yaml</span><span class="ks-canonical-code-block__filename">gpu-throttling-rules.yaml</span></div>
<pre class="ks-canonical-code-block__pre"><code>groups:
  - name: gpu-throttling
    rules:
      - alert: GpuPowerCappingSustained
        expr: increase(DCGM_FI_DEV_POWER_VIOLATION[10m]) &gt; 120e6
        for: 10m
        labels:
          severity: warning
      - alert: GpuThermalThrottling
        expr: increase(DCGM_FI_DEV_THERMAL_VIOLATION[5m]) &gt; 30e6
        for: 5m
        labels:
          severity: critical
      - alert: DcgmExporterMissing
        expr: up{job=&quot;dcgm-exporter&quot;} == 0
        for: 5m
        labels:
          severity: warning</code></pre>
<div class="ks-canonical-code-block__caption">&#x421;&#x442;&#x430;&#x440;&#x442;&#x43E;&#x432;&#x44B;&#x435; alert rules</div>
</div>
<p>&#x427;&#x438;&#x441;&#x43B;&#x430; &#x2014; &#x441;&#x442;&#x430;&#x440;&#x442;&#x43E;&#x432;&#x430;&#x44F; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x430;, &#x43D;&#x435; &#x441;&#x442;&#x430;&#x43D;&#x434;&#x430;&#x440;&#x442;. &#x41D;&#x430; batch-&#x43F;&#x443;&#x43B;&#x435; power capping &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x438;; &#x43D;&#x430; latency-sensitive endpoint &#x442;&#x43E;&#x442; &#x436;&#x435; &#x440;&#x435;&#x436;&#x438;&#x43C; &#x43D;&#x430;&#x440;&#x443;&#x448;&#x438;&#x442; SLO. &#x41F;&#x43E;&#x440;&#x43E;&#x433; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43E;&#x442;&#x440;&#x430;&#x436;&#x430;&#x442;&#x44C; &#x440;&#x438;&#x441;&#x43A; &#x434;&#x43B;&#x44F; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F; &#x438; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x442;&#x44C;&#x441;&#x44F; baseline.</p><p>&#x412; annotations &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; node, UUID, &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; GPU &#x438; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x443; &#x43D;&#x430; runbook. &#x41D;&#x435; &#x43F;&#x43E;&#x43C;&#x435;&#x449;&#x430;&#x439;&#x442;&#x435; &#x432; labels &#x442;&#x435;&#x43A;&#x443;&#x449;&#x438;&#x435; temperature, power &#x438;&#x43B;&#x438; clock: &#x43F;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x43D;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x449;&#x438;&#x435;&#x441;&#x44F; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x434;&#x443;&#x442; &#x43D;&#x43E;&#x432;&#x44B;&#x435; alert instances. Thermal critical &#x43D;&#x430;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; on-call &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x44B;, sustained power cap &#x431;&#x435;&#x437; SLO impact &#x2014; &#x432; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; capacity/performance.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/gpu-alert-routing-43f905b5.webp" class="kg-image" alt="GPU throttling &#x432; LLM inference: &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; &#x447;&#x435;&#x440;&#x435;&#x437; DCGM &#x438; Prometheus" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/gpu-alert-routing-43f905b5.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/gpu-alert-routing-43f905b5.webp 1000w, https://kingservers.com/blog/content/images/2026/08/gpu-alert-routing-43f905b5.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="correlation">&#x421;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x43C; GPU &#x441; TTFT, ITL &#x438; &#x441;&#x442;&#x43E;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C;&#x44E; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x430;</h2>
<p>DCGM &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43A;&#x430;&#x440;&#x442;&#x430; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x430;, &#x43D;&#x43E; &#x43D;&#x435; &#x437;&#x43D;&#x430;&#x435;&#x442;, &#x437;&#x430;&#x43C;&#x435;&#x442;&#x438;&#x43B; &#x43B;&#x438; &#x44D;&#x442;&#x43E; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;. &#x414;&#x43B;&#x44F; LLM &#x43D;&#x443;&#x436;&#x43D;&#x44B; TTFT, ITL, tokens/s, queue time, batch size &#x438; active sequences. &#x421;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x43F;&#x43E; node &#x438; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x438;. &#x41F;&#x440;&#x43E;&#x442;&#x430;&#x441;&#x43A;&#x438;&#x432;&#x430;&#x442;&#x44C; request_id &#x432; GPU metrics &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F;: cardinality &#x432;&#x437;&#x43E;&#x440;&#x432;&#x451;&#x442;&#x441;&#x44F;, &#x430; &#x447;&#x435;&#x441;&#x442;&#x43D;&#x43E;&#x439; &#x441;&#x432;&#x44F;&#x437;&#x438; &#x43F;&#x440;&#x438; continuous batching &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x43D;&#x435; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x441;&#x44F;.</p><p>&#x414;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x43C;&#x430;&#x442;&#x440;&#x438;&#x446;&#x430; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x430;. Queue time &#x440;&#x430;&#x441;&#x442;&#x451;&#x442;, &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x430; &#x438; violations &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B; &#x2014; &#x441;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435; admission control &#x438; capacity. ITL &#x443;&#x445;&#x443;&#x434;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; &#x43F;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x43C; clock &#x438; &#x440;&#x43E;&#x441;&#x442;&#x43E;&#x43C; power violation &#x2014; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; power policy &#x438; &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44C; kernel. Thermal violation &#x440;&#x430;&#x441;&#x442;&#x451;&#x442; &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x43F;&#x43E;&#x437;&#x438;&#x446;&#x438;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43A;&#x438; &#x2014; &#x43F;&#x43E;&#x434;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; datacenter operations &#x438; &#x430;&#x43D;&#x430;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; airflow.</p><p>&#x42D;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x438;&#x43A;&#x430; &#x442;&#x43E;&#x436;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F;. &#x421;&#x435;&#x440;&#x432;&#x435;&#x440; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x43E;&#x442;&#x440;&#x435;&#x431;&#x43B;&#x44F;&#x442;&#x44C; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435; &#x432;&#x430;&#x442;&#x442; &#x43F;&#x43E;&#x434; cap, &#x43D;&#x43E; &#x432;&#x44B;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; &#x43D;&#x435;&#x43F;&#x440;&#x43E;&#x43F;&#x43E;&#x440;&#x446;&#x438;&#x43E;&#x43D;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x435; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x43E;&#x432;; &#x442;&#x43E;&#x433;&#x434;&#x430; joules/token &#x443;&#x445;&#x443;&#x434;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F;. &#x41C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x435;: &#x443;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x439; cap &#x43D;&#x435;&#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x43D;&#x438;&#x436;&#x430;&#x435;&#x442; throughput, &#x437;&#x430;&#x442;&#x43E; &#x43F;&#x43E;&#x432;&#x44B;&#x448;&#x430;&#x435;&#x442; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x438; &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x442;&#x44C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; GPU &#x432; power budget. &#x421;&#x447;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x430; workload, &#x430; &#x43D;&#x435; &#x43F;&#x43E; &#x43F;&#x430;&#x441;&#x43F;&#x43E;&#x440;&#x442;&#x43D;&#x43E;&#x43C;&#x443; TDP. &#x41C;&#x435;&#x442;&#x43E;&#x434;&#x438;&#x43A;&#x430; &#x441;&#x432;&#x44F;&#x437;&#x430;&#x43D;&#x430; &#x441; &#x440;&#x430;&#x437;&#x431;&#x43E;&#x440;&#x43E;&#x43C; <a href="https://kingservers.com/blog/build-vs-buy-infrastruktura/">&#x441;&#x442;&#x43E;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438; LLM-&#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x430;</a>.</p><p>&#x41D;&#x435; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x438;&#x43B;&#x438; &#x43A;&#x432;&#x430;&#x43D;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x431;&#x435;&#x437; &#x444;&#x438;&#x43A;&#x441;&#x430;&#x446;&#x438;&#x438; &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x438;&#x439;. Batch size, &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x438; speculative decoding &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43D;&#x44B; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; power draw &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435;, &#x447;&#x435;&#x43C; &#x43B;&#x438;&#x43C;&#x438;&#x442;. &#x414;&#x43B;&#x44F; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430; &#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438;, dataset, concurrency, warm-up, &#x43E;&#x43A;&#x440;&#x443;&#x436;&#x430;&#x44E;&#x449;&#x443;&#x44E; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x443; &#x438; &#x434;&#x43B;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C;.</p><h2 id="runbook">Runbook &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x440;&#x430;&#x431;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x43D;&#x438;&#x44F;</h2>
<p>&#x41F;&#x435;&#x440;&#x432;&#x43E;&#x435; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x435; &#x2014; &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C; power limit, &#x430; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x44C; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x435; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x44B;&#x43C; &#x438;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A;&#x43E;&#x43C;. &#x421;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; clocks, temperature, power draw, enforced limit &#x438; clock event reasons &#x447;&#x435;&#x440;&#x435;&#x437; <code>nvidia-smi</code>. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x432;&#x440;&#x435;&#x43C;&#x44F;, UUID &#x438; node, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; &#x441; DCGM &#x438; application SLO.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">gpu-throttling-triage.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>nvidia-smi --query-gpu=timestamp,uuid,name,temperature.gpu,power.draw,power.limit,clocks.sm,utilization.gpu,pstate --format=csv
nvidia-smi -q -d PERFORMANCE,POWER,TEMPERATURE,CLOCK
curl --fail --silent http://127.0.0.1:9400/metrics \
  | grep -E &apos;DCGM_FI_DEV_(GPU_TEMP|POWER_USAGE|SM_CLOCK|POWER_VIOLATION|THERMAL_VIOLATION)&apos;</code></pre>
<div class="ks-canonical-code-block__caption">&#x421;&#x43D;&#x438;&#x43C;&#x43E;&#x43A; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x44F; GPU</div>
</div>
<p>&#x41F;&#x440;&#x438; thermal slowdown &#x438;&#x434;&#x438;&#x442;&#x435; &#x43E;&#x442; &#x43E;&#x431;&#x449;&#x435;&#x433;&#x43E; &#x43A; &#x447;&#x430;&#x441;&#x442;&#x43D;&#x43E;&#x43C;&#x443;: &#x445;&#x43E;&#x43B;&#x43E;&#x434;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x440;&#x438;&#x434;&#x43E;&#x440;, &#x434;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x438; &#x437;&#x430;&#x433;&#x43B;&#x443;&#x448;&#x43A;&#x438;, &#x43E;&#x431;&#x43E;&#x440;&#x43E;&#x442;&#x44B; &#x438; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x432;&#x435;&#x43D;&#x442;&#x438;&#x43B;&#x44F;&#x442;&#x43E;&#x440;&#x43E;&#x432;, &#x444;&#x438;&#x43B;&#x44C;&#x442;&#x440;&#x44B;, &#x440;&#x430;&#x434;&#x438;&#x430;&#x442;&#x43E;&#x440;&#x44B;, &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x435; &#x43A;&#x430;&#x440;&#x442;&#x44B;. &#x41D;&#x435; &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43A;&#x440;&#x44B;&#x448;&#x43A;&#x443; &#x43A;&#x430;&#x43A; &#xAB;&#x431;&#x44B;&#x441;&#x442;&#x440;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442;&#xBB;: &#x44D;&#x442;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x440;&#x430;&#x441;&#x441;&#x447;&#x438;&#x442;&#x430;&#x43D;&#x43D;&#x44B;&#x439; airflow &#x438; &#x438;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x443;&#x445;&#x443;&#x434;&#x448;&#x430;&#x435;&#x442; &#x43E;&#x445;&#x43B;&#x430;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x430;&#x441;&#x441;&#x438;&#x432;&#x43D;&#x44B;&#x445; GPU.</p><p>&#x41F;&#x440;&#x438; power cap &#x432;&#x44B;&#x44F;&#x441;&#x43D;&#x438;&#x442;&#x435;, &#x437;&#x430;&#x434;&#x430;&#x43D; &#x43B;&#x438; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439;. &#x421;&#x43E;&#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; requested &#x438; enforced limit, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x43F;&#x438;&#x442;&#x430;&#x43D;&#x438;&#x435; &#x448;&#x430;&#x441;&#x441;&#x438; &#x438; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x44F; BMC. <code>nvidia-smi -pl</code> &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; root &#x438; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x432;&#x435;&#x437;&#x434;&#x435;; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x43E; &#x43B;&#x435;&#x436;&#x430;&#x442;&#x44C; &#x43C;&#x435;&#x436;&#x434;&#x443; min/max &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430;. &#x41C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x447;&#x435;&#x440;&#x435;&#x437; change process &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; power budget &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x438; &#x441;&#x442;&#x43E;&#x439;&#x43A;&#x438;.</p><p>&#x415;&#x441;&#x43B;&#x438; &#x432;&#x438;&#x434;&#x435;&#x43D; external power brake &#x438;&#x43B;&#x438; XID, &#x43D;&#x435; &#x43C;&#x430;&#x441;&#x43A;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C; &#x43F;&#x43E;&#x432;&#x44B;&#x448;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x43F;&#x43E;&#x440;&#x43E;&#x433;&#x430;. &#x412;&#x44B;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; node &#x438;&#x437; latency-sensitive &#x43F;&#x443;&#x43B;&#x430;, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; diagnostics, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; PSU, &#x43A;&#x430;&#x431;&#x435;&#x43B;&#x438;, riser &#x438; firmware. DCGM diagnostics &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x432; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x435; &#x43E;&#x43A;&#x43D;&#x43E;: &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43E;&#x447;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x43F;&#x43E;&#x432;&#x43B;&#x438;&#x44F;&#x442;&#x44C; &#x43D;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x447;&#x438;&#x439; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/gpu-throttling-runbook-rollout-a1ec8b16.webp" class="kg-image" alt="GPU throttling &#x432; LLM inference: &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; &#x447;&#x435;&#x440;&#x435;&#x437; DCGM &#x438; Prometheus" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/gpu-throttling-runbook-rollout-a1ec8b16.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/gpu-throttling-runbook-rollout-a1ec8b16.webp 1000w, https://kingservers.com/blog/content/images/2026/08/gpu-throttling-runbook-rollout-a1ec8b16.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="rollout">&#x411;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; rollout &#x438; &#x432;&#x44B;&#x432;&#x43E;&#x434;</h2>
<p>&#x420;&#x430;&#x437;&#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; collector &#x43D;&#x430; canary-node. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; &#x43F;&#x43E;&#x43B;&#x435;&#x439;, units, labels, reset behaviour &#x438; cardinality. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; recording rules &#x431;&#x435;&#x437; alert routing &#x438; &#x441;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; baseline &#x43F;&#x43E; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x43C; &#x447;&#x430;&#x441;&#x430;&#x43C;, &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44F;&#x43C; batch &#x438; &#x442;&#x435;&#x43C;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x443;&#x440;&#x435; &#x43F;&#x43E;&#x43C;&#x435;&#x449;&#x435;&#x43D;&#x438;&#x44F;. &#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; warning &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43A;&#x443; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x44B;&#x43C; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x435;&#x43C;.</p><p>&#x421;&#x432;&#x44F;&#x436;&#x438;&#x442;&#x435; alert &#x441; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x435;&#x43C; &#x438; runbook. &#x423; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x433;&#x43E; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x431;&#x44B;&#x442;&#x44C; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x44B;: &#x43A;&#x442;&#x43E; &#x440;&#x435;&#x430;&#x433;&#x438;&#x440;&#x443;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x441;&#x440;&#x430;&#x437;&#x443; &#x438; &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x432;&#x44B;&#x432;&#x435;&#x441;&#x442;&#x438; node &#x438;&#x437; &#x43F;&#x443;&#x43B;&#x430;. &#x412; Kubernetes &#x43F;&#x440;&#x435;&#x434;&#x443;&#x441;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435; cordon/drain &#x43B;&#x438;&#x431;&#x43E; scheduling label, &#x43D;&#x43E; &#x443;&#x447;&#x438;&#x442;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; disruption budget &#x438; &#x437;&#x430;&#x43F;&#x430;&#x441; &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x445; GPU: &#x430;&#x432;&#x430;&#x440;&#x438;&#x439;&#x43D;&#x44B;&#x439; drain &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x442;&#x438;&#x442;&#x44C; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x434;&#x435;&#x433;&#x440;&#x430;&#x434;&#x430;&#x446;&#x438;&#x44E; &#x432; &#x43E;&#x431;&#x449;&#x438;&#x439; overload.</p><p>&#x41F;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x43D;&#x44B;&#x439; power cap &#x432; &#x447;&#x430;&#x441;&#x44B; &#x43F;&#x438;&#x43A; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43D;&#x435; &#x438;&#x43D;&#x446;&#x438;&#x434;&#x435;&#x43D;&#x442;&#x43E;&#x43C;, &#x430; &#x43D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x43C; &#x431;&#x430;&#x43B;&#x430;&#x43D;&#x441;&#x43E;&#x43C; power density, cooling &#x438; SLA. &#x417;&#x434;&#x435;&#x441;&#x44C; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/power-density-ai-serverov-i-stoek-data-tsentra/">power density AI-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43E;&#x432;</a>: &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x447;&#x430;&#x441;&#x442;&#x43E; &#x43B;&#x435;&#x436;&#x438;&#x442; &#x432; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x449;&#x435;&#x43D;&#x438;&#x438; &#x438; &#x438;&#x43D;&#x436;&#x435;&#x43D;&#x435;&#x440;&#x43D;&#x43E;&#x439; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;, &#x430; &#x43D;&#x435; &#x432;&#x43E; &#x444;&#x43B;&#x430;&#x433;&#x435; inference engine.</p><p>&#x413;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x439; &#x432;&#x44B;&#x432;&#x43E;&#x434;: utilization &#x431;&#x435;&#x437; &#x447;&#x430;&#x441;&#x442;&#x43E;&#x442;&#x44B; &#x438; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x43D;&#x435; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C;. DCGM Exporter &#x434;&#x430;&#x451;&#x442; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x44B;&#x435; &#x444;&#x430;&#x43A;&#x442;&#x44B;, Prometheus &#x2014; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x438; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43B;&#x44F;&#x446;&#x438;&#x44E;, &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438; inference &#x2014; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x438;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;. &#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; canary, &#x441;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; baseline &#x438; &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442;. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x43C;&#x43E;&#x43D;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x43D;&#x433; &#x441;&#x442;&#x430;&#x43D;&#x435;&#x442; &#x438;&#x43D;&#x441;&#x442;&#x440;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x43E;&#x43C; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; latency, throughput &#x438; &#x43F;&#x440;&#x435;&#x434;&#x441;&#x43A;&#x430;&#x437;&#x443;&#x435;&#x43C;&#x43E;&#x439; &#x441;&#x442;&#x43E;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438; LLM-&#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430;.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[fs-verity для весов LLM: контроль целостности модели на GPU-сервере]]></title><description><![CDATA[Production-runbook по fs-verity для весов LLM: pinned revision, дерево Меркла, trusted manifest, systemd gate, отрицательные тесты и безопасный rollback на GPU-сервере.]]></description><link>https://kingservers.com/blog/fs-verity-llm-model-weights-integrity/</link><guid isPermaLink="false">6a94bf9daff2afac25354bcf</guid><category><![CDATA[AI]]></category><category><![CDATA[Linux]]></category><category><![CDATA[LLM]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Sun, 30 Aug 2026 23:45:01 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-hero-ca4282ec.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#granica-zashchity">&#x41A;&#x430;&#x43A;&#x443;&#x44E; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443; &#x440;&#x435;&#x448;&#x430;&#x435;&#x442; fs-verity, &#x430; &#x43A;&#x430;&#x43A;&#x443;&#x44E; &#x2014; &#x43D;&#x435;&#x442;</a></li>
<li><a href="#kak-rabotaet">&#x41A;&#x430;&#x43A; fs-verity &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x433;&#x438;&#x433;&#x430;&#x431;&#x430;&#x439;&#x442;&#x43D;&#x44B;&#x435; shard-&#x444;&#x430;&#x439;&#x43B;&#x44B;</a></li>
<li><a href="#infrastructure-gate">Infrastructure gate: kernel, &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432;&#x430;&#x44F; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430; &#x438; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; staging</a></li>
<li><a href="#pinned-download">&#x417;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;: pinned revision &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x43F;&#x43B;&#x430;&#x432;&#x430;&#x44E;&#x449;&#x435;&#x433;&#x43E; latest</a></li>
<li><a href="#enable-manifest">&#x412;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; fs-verity &#x438; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x439; manifest</a></li>
<li><a href="#service-gate">Service gate: &#x43D;&#x435; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; inference &#x441; &#x43D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x43C;&#x438; &#x431;&#x430;&#x439;&#x442;&#x430;&#x43C;&#x438;</a></li>
<li><a href="#application-gate">Application gate: &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x430; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x44D;&#x442;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;</a></li>
<li><a href="#rollout">Rollout &#x431;&#x435;&#x437; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x438;&#x441;&#x438;: canary, promotion &#x438; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x44B;&#x439; rollback</a></li>
<li><a href="#incident-response">&#x427;&#x442;&#x43E; &#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x438; EIO, SIGBUS &#x438;&#x43B;&#x438; digest mismatch</a></li>
<li><a href="#limits">&#x41E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x435; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x44B; &#x437;&#x430;&#x449;&#x438;&#x442;&#x44B;</a></li>
<li><a href="#zaklyuchenie">&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x438;&#x442;&#x43E;&#x433;</a></li>
</ul></div>

</div>&#x421;&#x435;&#x440;&#x432;&#x438;&#x441; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x43D;&#x430; health-check, GPU &#x437;&#x430;&#x43D;&#x44F;&#x442;&#x44B;, &#x430; &#x432; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x435; &#x442;&#x430; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x44F; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x443;&#x44E; &#x43E;&#x434;&#x43E;&#x431;&#x440;&#x438;&#x43B; &#x440;&#x435;&#x43B;&#x438;&#x437;. &#x414;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x447;&#x43D;&#x43E;&#x433;&#x43E; sync, &#x43F;&#x43E;&#x432;&#x440;&#x435;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x431;&#x43B;&#x43E;&#x43A;&#x430; &#x438;&#x43B;&#x438; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44B; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;&#x430; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x43E;&#x439; &#x438; &#x441;&#x442;&#x430;&#x440;&#x442;&#x43E;&#x43C;. Linux fs-verity &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x432;&#x435;&#x441;&#x43E;&#x432;&#x44B;&#x435; &#x444;&#x430;&#x439;&#x43B;&#x44B; &#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x43C;&#x44B;&#x43C;&#x438; &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x438;&#x445; &#x43F;&#x440;&#x438; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x438; &#x447;&#x435;&#x440;&#x435;&#x437; &#x434;&#x435;&#x440;&#x435;&#x432;&#x43E; &#x41C;&#x435;&#x440;&#x43A;&#x43B;&#x430;. &#x41D;&#x438;&#x436;&#x435; &#x2014; production-runbook &#x441; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;&#x438; infrastructure &#x438; application gates, &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;&#x438; &#x442;&#x435;&#x441;&#x442;&#x430;&#x43C;&#x438; &#x438; rollback &#x431;&#x435;&#x437; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x438;&#x441;&#x438; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x44E;&#x449;&#x438;&#x445; shards.<div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <img src="https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-hero-ca4282ec.webp" alt="fs-verity &#x434;&#x43B;&#x44F; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM: &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x446;&#x435;&#x43B;&#x43E;&#x441;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x43D;&#x430; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;"><p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="granica-zashchity">&#x41A;&#x430;&#x43A;&#x443;&#x44E; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443; &#x440;&#x435;&#x448;&#x430;&#x435;&#x442; fs-verity, &#x430; &#x43A;&#x430;&#x43A;&#x443;&#x44E; &#x2014; &#x43D;&#x435;&#x442;</h2>
<p>&#x423;&#x437;&#x435;&#x43B; inference &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x442;&#x435;&#x445;&#x43D;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x437;&#x434;&#x43E;&#x440;&#x43E;&#x432;: GPU &#x432;&#x438;&#x434;&#x43D;&#x44B;, &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x43D;&#x430; health-check, latency &#x43D;&#x435; &#x432;&#x44B;&#x440;&#x43E;&#x441;&#x43B;&#x430;. &#x41D;&#x43E; &#x435;&#x441;&#x43B;&#x438; &#x444;&#x430;&#x439;&#x43B; &#x432;&#x435;&#x441;&#x43E;&#x432; &#x43D;&#x430; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; NVMe &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x451;&#x43D; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;, &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43D;&#x43E; &#x431;&#x435;&#x437; &#x448;&#x443;&#x43C;&#x430; &#x43F;&#x43E;&#x434;&#x43D;&#x44F;&#x442;&#x44C; &#x43D;&#x435; &#x442;&#x443; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;. &#x41F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43E;&#x439; &#x431;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x430;&#x442;&#x430;&#x43A;&#x430;. &#x41E;&#x448;&#x438;&#x431;&#x43E;&#x447;&#x43D;&#x44B;&#x439; sync, &#x43F;&#x43E;&#x432;&#x440;&#x435;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x431;&#x43B;&#x43E;&#x43A;&#x430;, &#x440;&#x443;&#x447;&#x43D;&#x430;&#x44F; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x430; &#x432; &#x43D;&#x435;&#x43F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;&#x435; &#x438;&#x43B;&#x438; &#x433;&#x43E;&#x43D;&#x43A;&#x430; &#x43F;&#x440;&#x438; rollout &#x434;&#x430;&#x44E;&#x442; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x43D;&#x435;&#x43F;&#x440;&#x438;&#x44F;&#x442;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;: &#x438;&#x43C;&#x44F; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x438; &#x432; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438; &#x43E;&#x434;&#x43D;&#x43E;, &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x435; &#x431;&#x430;&#x439;&#x442;&#x44B; &#x2014; &#x434;&#x440;&#x443;&#x433;&#x438;&#x435;.</p>
<p>&#x418;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; fs-verity &#x2014; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C; &#x44F;&#x434;&#x440;&#x430; Linux &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x43E;&#x437;&#x440;&#x430;&#x447;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x43C;&#x43E;&#x433;&#x43E; <strong>&#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x43C;&#x43E;&#x433;&#x43E; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x444;&#x430;&#x439;&#x43B;&#x430;</strong>. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x44F;&#x434;&#x440;&#x43E; &#x441;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x444;&#x430;&#x439;&#x43B; &#x441; &#x434;&#x435;&#x440;&#x435;&#x432;&#x43E;&#x43C; &#x41C;&#x435;&#x440;&#x43A;&#x43B;&#x430;, &#x437;&#x430;&#x43F;&#x440;&#x435;&#x449;&#x430;&#x435;&#x442; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x44C; &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B;. &#x415;&#x441;&#x43B;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x43D;&#x435; &#x441;&#x445;&#x43E;&#x434;&#x44F;&#x442;&#x441;&#x44F; &#x441; &#x434;&#x435;&#x440;&#x435;&#x432;&#x43E;&#x43C;, &#x447;&#x442;&#x435;&#x43D;&#x438;&#x435; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x43E;&#x439; <code>EIO</code>, &#x430; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F; &#x447;&#x435;&#x440;&#x435;&#x437; <code>mmap()</code> &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x440;&#x438;&#x432;&#x435;&#x441;&#x442;&#x438; &#x43A; <code>SIGBUS</code>. &#x414;&#x43B;&#x44F; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x438;&#x445; shard-&#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432; &#x44D;&#x442;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x43E;&#x435; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x438;&#x435; &#x43E;&#x442; &#x43E;&#x434;&#x43D;&#x43E;&#x440;&#x430;&#x437;&#x43E;&#x432;&#x43E;&#x433;&#x43E; <code>sha256sum</code>: &#x437;&#x430;&#x449;&#x438;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x430;&#x435;&#x442; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x445; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x44F;&#x445;.</p>
<p>&#x413;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B;&#x430; &#x443;&#x437;&#x43A;&#x430;&#x44F; &#x438; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F;. &#x41C;&#x44B; &#x43D;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x43C; &#x43E;&#x431;&#x449;&#x438;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x432;&#x435;&#x440;&#x441;&#x438;&#x43E;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x438;&#x437; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/llmops-zhiznennyy-cikl-llm-v-prodakshene/">LLMOps</a> &#x438; &#x43D;&#x435; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x44F;&#x435;&#x43C; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x443;, &#x43A;&#x430;&#x43A; &#x432; &#x440;&#x443;&#x43A;&#x43E;&#x432;&#x43E;&#x434;&#x441;&#x442;&#x432;&#x430;&#x445; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/nfs-fscache-llm-model-loading-storm/">FS-Cache</a> &#x438;&#x43B;&#x438; <a href="https://kingservers.com/blog/kesh-vesov-llm-oci-nvme-kubernetes/">OCI-&#x43A;&#x44D;&#x448; &#x432;&#x435;&#x441;&#x43E;&#x432; &#x43D;&#x430; NVMe</a>. &#x417;&#x434;&#x435;&#x441;&#x44C; &#x437;&#x430;&#x434;&#x430;&#x447;&#x430; &#x43E;&#x434;&#x43D;&#x430;: &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x438;&#x434;&#x435;&#x43D;&#x442;&#x438;&#x447;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; model artifact &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x43C; &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x438;&#x435;&#x43C; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;.</p>
<p>&#x41F;&#x440;&#x438; &#x44D;&#x442;&#x43E;&#x43C; fs-verity &#x43D;&#x435; &#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x43C; &#x438;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A;&#x43E;&#x43C; &#x441;&#x430;&#x43C; &#x43F;&#x43E; &#x441;&#x435;&#x431;&#x435;. Digest &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x44C; &#x441; manifest, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x441;&#x44F; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x438; &#x437;&#x430;&#x449;&#x438;&#x449;&#x451;&#x43D; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;. &#x41C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C; &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x432;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x44C;&#x446;&#x430;, mode bits, timestamps &#x438; xattrs; &#x444;&#x430;&#x439;&#x43B; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x438;&#x43C;&#x435;&#x43D;&#x43E;&#x432;&#x430;&#x442;&#x44C;, &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x438;&#x43B;&#x438; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x434;&#x440;&#x443;&#x433;&#x438;&#x43C; inode. &#x415;&#x441;&#x43B;&#x438; &#x437;&#x43B;&#x43E;&#x443;&#x43C;&#x44B;&#x448;&#x43B;&#x435;&#x43D;&#x43D;&#x438;&#x43A; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x442; kernel &#x438;&#x43B;&#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x444;&#x430;&#x439;&#x43B; &#x438; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x439; manifest, &#x44D;&#x442;&#x43E;&#x442; &#x441;&#x43B;&#x43E;&#x439; &#x443;&#x436;&#x435; &#x43D;&#x435; &#x441;&#x43F;&#x430;&#x441;&#x430;&#x435;&#x442;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x434;&#x430;&#x43B;&#x44C;&#x448;&#x435; &#x431;&#x443;&#x434;&#x443;&#x442; &#x434;&#x432;&#x430; gate: &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x44B;&#x439; &#x438; &#x43F;&#x440;&#x438;&#x43A;&#x43B;&#x430;&#x434;&#x43D;&#x43E;&#x439;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-01-c7e04f66.webp" class="kg-image" alt="fs-verity &#x434;&#x43B;&#x44F; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM: &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x446;&#x435;&#x43B;&#x43E;&#x441;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x43D;&#x430; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/fs-verity-llm-model-weights-integrity-inline-01-c7e04f66.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/fs-verity-llm-model-weights-integrity-inline-01-c7e04f66.webp 1000w, https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-01-c7e04f66.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="kak-rabotaet">&#x41A;&#x430;&#x43A; fs-verity &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x433;&#x438;&#x433;&#x430;&#x431;&#x430;&#x439;&#x442;&#x43D;&#x44B;&#x435; shard-&#x444;&#x430;&#x439;&#x43B;&#x44B;</h2>
<p>&#x41F;&#x440;&#x438; <code>fsverity enable</code> &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432;&#x430;&#x44F; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430; &#x441;&#x442;&#x440;&#x43E;&#x438;&#x442; &#x441;&#x43A;&#x440;&#x44B;&#x442;&#x43E;&#x435; &#x434;&#x435;&#x440;&#x435;&#x432;&#x43E; &#x41C;&#x435;&#x440;&#x43A;&#x43B;&#x430;. &#x41B;&#x438;&#x441;&#x442;&#x44C;&#x44F; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x442; &#x431;&#x43B;&#x43E;&#x43A;&#x430;&#x43C; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;, &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x443;&#x440;&#x43E;&#x432;&#x435;&#x43D;&#x44C; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x442; &#x438;&#x445; &#x445;&#x435;&#x448;&#x438;, &#x430; &#x432;&#x435;&#x440;&#x445;&#x43D;&#x438;&#x439; &#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x44C; &#x432;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x432; fs-verity digest &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;&#x43E;&#x43C; &#x444;&#x430;&#x439;&#x43B;&#x430; &#x438; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x430;&#x43C;&#x438; &#x430;&#x43B;&#x433;&#x43E;&#x440;&#x438;&#x442;&#x43C;&#x430;. &#x412; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x435; digest &#x43E;&#x434;&#x43D;&#x43E;&#x437;&#x43D;&#x430;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x43C;&#x43E;&#x435; &#x438; &#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443; &#x444;&#x430;&#x439;&#x43B;&#x430;, &#x430; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x447;&#x435;&#x440;&#x435;&#x437; <code>fsverity measure</code> &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x431;&#x435;&#x437; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x447;&#x438;&#x442;&#x44B;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x43C;&#x43D;&#x43E;&#x433;&#x43E;&#x433;&#x438;&#x433;&#x430;&#x431;&#x430;&#x439;&#x442;&#x43D;&#x43E;&#x433;&#x43E; shard.</p>
<p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#xAB;&#x43F;&#x43E; &#x440;&#x430;&#x441;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x438;&#x44E;&#xBB;, &#x430; &#x43D;&#x430; &#x43F;&#x443;&#x442;&#x438; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x44F;. &#x41A;&#x43E;&#x433;&#x434;&#x430; loader &#x438;&#x43B;&#x438; <code>mmap()</code> &#x437;&#x430;&#x442;&#x44F;&#x433;&#x438;&#x432;&#x430;&#x435;&#x442; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443; &#x432;&#x435;&#x441;&#x43E;&#x432; &#x432; page cache, &#x44F;&#x434;&#x440;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x43D;&#x443;&#x436;&#x43D;&#x443;&#x44E; &#x432;&#x435;&#x442;&#x432;&#x44C; &#x434;&#x435;&#x440;&#x435;&#x432;&#x430; &#x434;&#x43E; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x43E;&#x440;&#x43D;&#x44F;. &#x423;&#x436;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x430;&#x44F; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x442;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x438;&#x437; page cache, &#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x43E;&#x433;&#x43E; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x44F; &#x441; &#x434;&#x438;&#x441;&#x43A;&#x430; &#x432;&#x435;&#x440;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x441;&#x43D;&#x43E;&#x432;&#x430;. &#x414;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x44F;&#x434;&#x440;&#x430; &#x43F;&#x43E;&#x434;&#x447;&#x451;&#x440;&#x43A;&#x438;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; direct I/O &#x434;&#x43B;&#x44F; verity-&#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x438; &#x43E;&#x442;&#x43A;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43A; buffered I/O, &#x430; DAX &#x438;&#x441;&#x43A;&#x43B;&#x44E;&#x447;&#x451;&#x43D;, &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43B; &#x431;&#x44B; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x443;.</p>
<p>&#x415;&#x441;&#x442;&#x44C; &#x434;&#x432;&#x430; &#x443;&#x440;&#x43E;&#x432;&#x43D;&#x44F; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x44F;. &#x41F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x2014; integrity: &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x430;&#x44F; &#x43F;&#x43E;&#x440;&#x447;&#x430; &#x43E;&#x431;&#x43D;&#x430;&#x440;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x43D;&#x435; &#x441;&#x43E;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x442; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x43E;&#x43C;&#x443; &#x434;&#x435;&#x440;&#x435;&#x432;&#x443;. &#x412;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x2014; authenticity: &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440; &#x443;&#x431;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x447;&#x442;&#x43E; &#x441;&#x430;&#x43C; digest &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;. &#x414;&#x43B;&#x44F; production-&#x43F;&#x430;&#x439;&#x43F;&#x43B;&#x430;&#x439;&#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x449;&#x435; &#x432;&#x441;&#x435;&#x433;&#x43E; &#x434;&#x435;&#x440;&#x436;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x43D;&#x44B;&#x439; manifest &#x432;&#x43D;&#x435; writable model volume &#x438; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x439; digest &#x434;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430;. &#x412;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D;&#x43D;&#x44B;&#x435; PKCS#7-&#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x438; &#x438; keyring <code>.fs-verity</code> &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;, &#x43D;&#x43E; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; fsverity-utils &#x43D;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x438;&#x445; &#x441;&#x43F;&#x435;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x43C; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x43E;&#x43C;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x43E;&#x441;&#x442;&#x43E;&#x440;&#x43E;&#x436;&#x43D;&#x43E;&#x433;&#x43E; &#x43F;&#x440;&#x43E;&#x435;&#x43A;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; trusted userspace.</p>
<style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}
.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}
.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}
.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}
.ks-widget .panel.on{display:block}
.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}
.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}
.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style><div class="ks-widget" id="ks-tab-fsv4r2a"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x439; &#x441;&#x43B;&#x43E;&#x439; &#x446;&#x435;&#x43B;&#x43E;&#x441;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43D;&#x443;&#x436;&#x435;&#x43D;?</h3>
<div class="tabs"><button type="button" class="tab-btn on" data-t="hash">SHA-256</button><button type="button" class="tab-btn" data-t="file">fs-verity</button><button type="button" class="tab-btn" data-t="volume">dm-verity</button></div>
<div class="panel on" data-p="hash">&#x41F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x430;&#x440;&#x442;&#x435;&#x444;&#x430;&#x43A;&#x442;&#x430; &#x43F;&#x440;&#x438; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x435;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x43D;&#x435; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x442; &#x43D;&#x43E;&#x432;&#x44B;&#x435; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x433;&#x43E; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x44F; &#x444;&#x430;&#x439;&#x43B;&#x430;.</div>
<div class="panel" data-p="file">&#x41F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x434;&#x43B;&#x44F; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x43E; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x44B;&#x445; &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432; &#x43D;&#x430; read-write &#x442;&#x43E;&#x43C;&#x435;. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x43F;&#x440;&#x438; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x438; &#x438; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; &#x437;&#x430;&#x449;&#x438;&#x449;&#x451;&#x43D;&#x43D;&#x44B;&#x439; &#x444;&#x430;&#x439;&#x43B; &#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x43C;&#x44B;&#x43C;.</div>
<div class="panel" data-p="volume">&#x41F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x434;&#x43B;&#x44F; &#x446;&#x435;&#x43B;&#x43E;&#x433;&#x43E; read-only &#x43E;&#x431;&#x440;&#x430;&#x437;&#x430; &#x438;&#x43B;&#x438; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x430;. &#x42D;&#x442;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x443;&#x440;&#x43E;&#x432;&#x435;&#x43D;&#x44C;: &#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x44C; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x44F; &#x43E;&#x442;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x441;&#x44F; &#x43A; &#x431;&#x43B;&#x43E;&#x447;&#x43D;&#x43E;&#x43C;&#x443; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x443;, &#x430; &#x43D;&#x435; &#x43A; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;.</div>
<script>(function(){var r=document.getElementById('ks-tab-fsv4r2a');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-02-ac5eb089.webp" class="kg-image" alt="fs-verity &#x434;&#x43B;&#x44F; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM: &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x446;&#x435;&#x43B;&#x43E;&#x441;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x43D;&#x430; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/fs-verity-llm-model-weights-integrity-inline-02-ac5eb089.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/fs-verity-llm-model-weights-integrity-inline-02-ac5eb089.webp 1000w, https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-02-ac5eb089.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="infrastructure-gate">Infrastructure gate: kernel, &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432;&#x430;&#x44F; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430; &#x438; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; staging</h2>
<p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; &#x444;&#x430;&#x43A;&#x442;&#x43E;&#x432;, &#x430; &#x43D;&#x435; &#x441; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43A;&#x438; &#x43F;&#x430;&#x43A;&#x435;&#x442;&#x430;. &#x412; &#x44F;&#x434;&#x440;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x431;&#x44B;&#x442;&#x44C; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x430; &#x43E;&#x43F;&#x446;&#x438;&#x44F; <code>CONFIG_FS_VERITY</code>, &#x430; &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432;&#x430;&#x44F; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430; &#x2014; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;. &#x41F;&#x43E; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; &#x44F;&#x434;&#x440;&#x430; &#x44D;&#x442;&#x43E; ext4, f2fs &#x438; btrfs; ext4 &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; fs-verity &#x441; Linux 5.4, btrfs &#x2014; &#x441; 5.15. &#x414;&#x43B;&#x44F; ext4 &#x443; &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432;&#x43E;&#x439; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x44B; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; feature flag <code>verity</code>. &#x415;&#x433;&#x43E; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x437;&#x430;&#x434;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x438; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x438; &#x438;&#x43B;&#x438; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C; &#x447;&#x435;&#x440;&#x435;&#x437; <code>tune2fs -O verity</code>, &#x43D;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x44F;&#x44F; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x442;&#x43E;&#x43C;&#x430; &#x441;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x44B;&#x43C;&#x438; kernels &#x438; e2fsck, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x435;&#x451; &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x442;&#x44C; &#x432; &#x431;&#x435;&#x437;&#x434;&#x443;&#x43C;&#x43D;&#x44B;&#x439; copy-paste &#x434;&#x43B;&#x44F; production.</p>
<p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x43D;&#x44B;&#x439; layout &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; &#x442;&#x440;&#x438; &#x437;&#x43E;&#x43D;&#x44B;: download cache, writable staging &#x438; immutable revisions. Hub-&#x43A;&#x44D;&#x448; &#x443;&#x434;&#x43E;&#x431;&#x435;&#x43D; &#x434;&#x43B;&#x44F; &#x441;&#x435;&#x442;&#x438;, &#x43D;&#x43E; symlink-&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x430; &#x438; shared blobs &#x43F;&#x43B;&#x43E;&#x445;&#x43E; &#x43F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x44F;&#x442; &#x43D;&#x430; &#x440;&#x43E;&#x43B;&#x44C; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;&#x430;. &#x421;&#x43A;&#x430;&#x447;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; pinned commit &#x432; staging, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x442;&#x443;, &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x435; &#x444;&#x430;&#x439;&#x43B;&#x44B; &#x432; &#x43D;&#x43E;&#x432;&#x44B;&#x439; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x438; &#x43D;&#x430; fs-verity-capable volume &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; verity. &#x41A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433; <code>current</code> &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x430;&#x442;&#x43E;&#x43C;&#x430;&#x440;&#x43D;&#x43E;&#x439; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x43E;&#x439; &#x43D;&#x430; &#x443;&#x436;&#x435; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x44E;, &#x430; &#x43D;&#x435; &#x43C;&#x435;&#x441;&#x442;&#x43E;&#x43C;, &#x43A;&#x443;&#x434;&#x430; downloader &#x43F;&#x438;&#x448;&#x435;&#x442; &#x43F;&#x43E;&#x432;&#x435;&#x440;&#x445; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x44E;&#x449;&#x435;&#x439; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;.</p>
<p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x43B;&#x438; &#x43B;&#x438; &#x432;&#x44B; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432;&#x443;&#x44E; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x443; &#x43F;&#x43E;&#x434; model path? &#x412; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x435; &#x43F;&#x443;&#x442;&#x44C; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x435;&#x442;&#x44C; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;, &#x43D;&#x43E; &#x431;&#x44B;&#x442;&#x44C; overlayfs &#x438;&#x43B;&#x438; &#x441;&#x435;&#x442;&#x435;&#x432;&#x44B;&#x43C; mount. Gate &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x442;&#x44C; &#x43D;&#x430; host path, &#x433;&#x434;&#x435; &#x43B;&#x435;&#x436;&#x430;&#x442; &#x431;&#x430;&#x439;&#x442;&#x44B;, &#x430; &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x442;&#x43E;&#x442; &#x436;&#x435; inode &#x438;&#x437; launch context &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">check-fs-verity.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>set -euo pipefail
MODEL_ROOT=/srv/models
findmnt -no SOURCE,FSTYPE,OPTIONS &quot;$MODEL_ROOT&quot;
grep -E &apos;CONFIG_FS_VERITY=(y|m)&apos; /boot/config-$(uname -r)
sudo tune2fs -l &quot;$(findmnt -no SOURCE &quot;$MODEL_ROOT&quot;)&quot; | grep &apos;Filesystem features&apos;
fsverity --version
touch &quot;$MODEL_ROOT/.verity-probe&quot;
fsverity enable &quot;$MODEL_ROOT/.verity-probe&quot;
fsverity measure &quot;$MODEL_ROOT/.verity-probe&quot;</code></pre>

</div>
<p>Probe-&#x444;&#x430;&#x439;&#x43B; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435;, &#x447;&#x435;&#x43C; &#x43D;&#x430;&#x43B;&#x438;&#x447;&#x438;&#x435; &#x431;&#x438;&#x43D;&#x430;&#x440;&#x43D;&#x438;&#x43A;&#x430;: ioctl &#x434;&#x43E;&#x448;&#x451;&#x43B; &#x434;&#x43E; &#x43D;&#x443;&#x436;&#x43D;&#x43E;&#x439; &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432;&#x43E;&#x439; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x44B;, &#x434;&#x435;&#x440;&#x435;&#x432;&#x43E; &#x43F;&#x43E;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D;&#x43E;, digest &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x435;&#x442;&#x441;&#x44F;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x442;&#x435;&#x441;&#x442;&#x430; &#x444;&#x430;&#x439;&#x43B; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C;; &#x441;&#x43D;&#x44F;&#x442;&#x44C; verity &#x441; inode &#x43D;&#x435;&#x43B;&#x44C;&#x437;&#x44F;. &#x415;&#x441;&#x43B;&#x438; probe &#x43D;&#x435; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;, &#x43D;&#x435; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x43F;&#x440;&#x438;&#x432;&#x438;&#x43B;&#x435;&#x433;&#x438;&#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430; &#x43D;&#x430;&#x443;&#x433;&#x430;&#x434; &#x2014; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x438;&#x437;&#x443;&#x439;&#x442;&#x435; &#x441;&#x43B;&#x43E;&#x439;: kernel config, filesystem feature, mount type &#x438;&#x43B;&#x438; &#x43F;&#x443;&#x442;&#x44C;.</p>
<div class="ks-widget" id="ks-chk-prq8m1z"><h3>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43F;&#x435;&#x440;&#x435;&#x434; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43A;&#x43E;&#x439; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x438;</h3>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> CONFIG_FS_VERITY &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x451;&#x43D; &#x432; running kernel</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> Model path &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x43D;&#x430; ext4, f2fs &#x438;&#x43B;&#x438; btrfs</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> &#x414;&#x43B;&#x44F; ext4 &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D; filesystem feature verity</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> Probe enable &#x438; measure &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x438; &#x43D;&#x430; &#x442;&#x43E;&#x43C; &#x436;&#x435; mount</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> Staging &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x451;&#x43D; &#x43E;&#x442; immutable revisions</label>
<div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-prq8m1z');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-03-0439c8d7.webp" class="kg-image" alt="fs-verity &#x434;&#x43B;&#x44F; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM: &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x446;&#x435;&#x43B;&#x43E;&#x441;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x43D;&#x430; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/fs-verity-llm-model-weights-integrity-inline-03-0439c8d7.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/fs-verity-llm-model-weights-integrity-inline-03-0439c8d7.webp 1000w, https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-03-0439c8d7.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="pinned-download">&#x417;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;: pinned revision &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x43F;&#x43B;&#x430;&#x432;&#x430;&#x44E;&#x449;&#x435;&#x433;&#x43E; latest</h2>
<p>fs-verity &#x447;&#x435;&#x441;&#x442;&#x43D;&#x43E; &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x442; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x431;&#x430;&#x439;&#x442;&#x44B;, &#x434;&#x430;&#x436;&#x435; &#x43D;&#x435; &#x442;&#x435;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x432;&#x44B; &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x43B;&#x438;&#x441;&#x44C; &#x440;&#x430;&#x437;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x438;&#x434;&#x435;&#x43D;&#x442;&#x438;&#x447;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x434;&#x43E; <code>enable</code>. &#x412; Hugging Face Hub &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440; <code>revision</code> &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442; branch, tag &#x438;&#x43B;&#x438; commit hash, &#x43D;&#x43E; &#x434;&#x43B;&#x44F; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x433;&#x43E; rollout &#x43D;&#x443;&#x436;&#x435;&#x43D; commit hash. &#x412; &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; commit &#x440;&#x430;&#x441;&#x441;&#x43C;&#x430;&#x442;&#x440;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43A;&#x430;&#x43A; immutable revision, &#x430; <code>snapshot_download()</code> &#x443;&#x43C;&#x435;&#x435;&#x442; &#x444;&#x438;&#x43B;&#x44C;&#x442;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x444;&#x430;&#x439;&#x43B;&#x44B; &#x447;&#x435;&#x440;&#x435;&#x437; <code>allow_patterns</code> &#x438; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43E; &#x43D;&#x435;&#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x43C; offline snapshot.</p>
<p>&#x414;&#x43B;&#x44F; Safetensors &#x44D;&#x442;&#x43E; &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x443;&#x434;&#x43E;&#x431;&#x43D;&#x43E;: &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442; &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; pickle-&#x43A;&#x43E;&#x434;&#x430; &#x43F;&#x440;&#x438; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x439; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x435; &#x438; &#x440;&#x430;&#x441;&#x441;&#x447;&#x438;&#x442;&#x430;&#x43D; &#x43D;&#x430; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x435; tensor data. &#x41D;&#x43E; &#xAB;&#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442;&#xBB; &#x43D;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; &#xAB;&#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x430;&#x44F; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;&#xBB;. &#x41A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;, tokenizer, custom code &#x438; &#x441;&#x430;&#x43C;&#x438; tensor values &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x43F;&#x440;&#x438;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x44C; &#x438;&#x437; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x43E;&#x439; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x438;. &#x41D;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; <code>trust_remote_code=True</code> &#x431;&#x435;&#x437; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; review &#x438; pinning &#x43A;&#x43E;&#x434;&#x430;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">python</span><span class="ks-canonical-code-block__filename">download_model.py</span></div>
<pre class="ks-canonical-code-block__pre"><code>from huggingface_hub import snapshot_download

path = snapshot_download(
    repo_id=&quot;ORG/MODEL&quot;,
    revision=&quot;FULL_COMMIT_SHA&quot;,
    local_dir=&quot;/srv/models/staging/FULL_COMMIT_SHA&quot;,
    allow_patterns=[&quot;*.safetensors&quot;, &quot;*.json&quot;, &quot;tokenizer*&quot;],
)
print(path)</code></pre>

</div>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x43A;&#x430;&#x447;&#x438;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435;, &#x447;&#x442;&#x43E; staging &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x438;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x435; shards, index JSON &#x441;&#x441;&#x44B;&#x43B;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x438;&#x435; &#x444;&#x430;&#x439;&#x43B;&#x44B;, &#x430; &#x441;&#x432;&#x43E;&#x431;&#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x43C;&#x435;&#x441;&#x442;&#x430; &#x445;&#x432;&#x430;&#x442;&#x430;&#x435;&#x442; &#x438; &#x434;&#x43B;&#x44F; &#x43D;&#x43E;&#x432;&#x43E;&#x439; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x438;, &#x438; &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x435;&#x434;&#x44B;&#x434;&#x443;&#x449;&#x435;&#x439;. &#x42D;&#x442;&#x43E; &#x432;&#x430;&#x448; storage budget: &#x43C;&#x438;&#x43D;&#x438;&#x43C;&#x443;&#x43C; &#x434;&#x432;&#x435; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x435; &#x440;&#x430;&#x431;&#x43E;&#x447;&#x438;&#x435; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x438; &#x43F;&#x43B;&#x44E;&#x441; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x439; staging. &#x41D;&#x435; &#x43D;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x44D;&#x444;&#x444;&#x438;&#x446;&#x438;&#x435;&#x43D;&#x442; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C; &#x2014; sharding &#x438; auxiliary files &#x443; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x435;&#x439; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x430;&#x44E;&#x442;&#x441;&#x44F;.</p>
<p>&#x421;&#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x444;&#x430;&#x439;&#x43B;&#x44B; &#x432; &#x43D;&#x43E;&#x432;&#x44B;&#x439; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433; &#x447;&#x435;&#x440;&#x435;&#x437; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E;&#x435; &#x438;&#x43C;&#x44F; &#x43D;&#x430; &#x442;&#x43E;&#x43C; &#x436;&#x435; filesystem, &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; <code>sync</code>, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x430;&#x442;&#x43E;&#x43C;&#x430;&#x440;&#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x438;&#x43C;&#x435;&#x43D;&#x443;&#x439;&#x442;&#x435; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;. &#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x44C; verity metadata. &#x415;&#x441;&#x43B;&#x438; downloader &#x43F;&#x438;&#x448;&#x435;&#x442; &#x43D;&#x430;&#x43F;&#x440;&#x44F;&#x43C;&#x443;&#x44E; &#x432; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;, &#x433;&#x434;&#x435; &#x443;&#x436;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x451;&#x43D; fs-verity, &#x43F;&#x435;&#x440;&#x432;&#x430;&#x44F; &#x436;&#x435; &#x43F;&#x43E;&#x43F;&#x44B;&#x442;&#x43A;&#x430; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; shard &#x437;&#x430;&#x43A;&#x43E;&#x43D;&#x43E;&#x43C;&#x435;&#x440;&#x43D;&#x43E; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442; <code>EPERM</code>; &#x44D;&#x442;&#x43E; &#x437;&#x430;&#x449;&#x438;&#x442;&#x430;, &#x430; &#x43D;&#x435; &#x43F;&#x43E;&#x43B;&#x43E;&#x43C;&#x43A;&#x430;.</p><h2 id="enable-manifest">&#x412;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; fs-verity &#x438; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x439; manifest</h2>
<p>&#x41E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; <code>fsverity enable</code> &#x43D;&#x435;&#x43E;&#x431;&#x440;&#x430;&#x442;&#x438;&#x43C;&#x430; &#x434;&#x43B;&#x44F; inode. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x443;&#x431;&#x435;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C;, &#x447;&#x442;&#x43E; &#x444;&#x430;&#x439;&#x43B; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x442; &#x43D;&#x430; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x44C; &#x438; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; &#x43D;&#x435; &#x431;&#x443;&#x434;&#x435;&#x442; &#x43C;&#x435;&#x43D;&#x44F;&#x442;&#x44C;&#x441;&#x44F;. &#x414;&#x43B;&#x44F; LLM-&#x440;&#x435;&#x43F;&#x43E;&#x437;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x44F; &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; <code>*.safetensors</code>, &#x43D;&#x43E; &#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E;, tokenizer &#x438; index JSON, &#x435;&#x441;&#x43B;&#x438; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x44D;&#x442;&#x438; &#x444;&#x430;&#x439;&#x43B;&#x44B; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x44E;&#x442; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; loader. &#x421;&#x438;&#x43C;&#x432;&#x43E;&#x43B;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x435; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x431;&#x435;&#x441;&#x441;&#x43C;&#x44B;&#x441;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;: &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; verity &#x43D;&#x430; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x445; regular files.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">enable-model-verity.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>set -euo pipefail
REV=/srv/models/revisions/FULL_COMMIT_SHA
MANIFEST=/srv/model-manifests/FULL_COMMIT_SHA.fsverity

: &gt; &quot;$MANIFEST.tmp&quot;
find &quot;$REV&quot; -type f -print0 | sort -z | while IFS= read -r -d &apos;&apos; file; do
  fsverity enable &quot;$file&quot;
  digest=$(fsverity measure &quot;$file&quot; | awk &apos;{print $1}&apos;)
  rel=$(realpath --relative-to=&quot;$REV&quot; &quot;$file&quot;)
  printf &apos;%s  %s\n&apos; &quot;$digest&quot; &quot;$rel&quot; &gt;&gt; &quot;$MANIFEST.tmp&quot;
done
chmod 0444 &quot;$MANIFEST.tmp&quot;
mv &quot;$MANIFEST.tmp&quot; &quot;$MANIFEST&quot;</code></pre>

</div>
<p>Manifest &#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x432;&#x43D;&#x435; model volume &#x438; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x43A;&#x430;&#x43D;&#x430;&#x43B;: signed release artifact, &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x44B;&#x439; &#x440;&#x435;&#x43F;&#x43E;&#x437;&#x438;&#x442;&#x43E;&#x440;&#x438;&#x439; &#x441; review &#x438;&#x43B;&#x438; secret/config mechanism &#x441; &#x436;&#x451;&#x441;&#x442;&#x43A;&#x438;&#x43C;&#x438; &#x43F;&#x440;&#x430;&#x432;&#x430;&#x43C;&#x438;. &#x41E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x439; root-owned &#x444;&#x430;&#x439;&#x43B; &#x43D;&#x430; &#x442;&#x43E;&#x43C; &#x436;&#x435; writable &#x434;&#x438;&#x441;&#x43A;&#x435; &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x442; &#x43E;&#x442; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x43E;&#x441;&#x442;&#x435;&#x439;, &#x43D;&#x43E; &#x43D;&#x435; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; &#x441;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x43F;&#x440;&#x43E;&#x442;&#x438;&#x432; root-&#x43A;&#x43E;&#x43C;&#x43F;&#x440;&#x43E;&#x43C;&#x435;&#x442;&#x430;&#x446;&#x438;&#x438;.</p>
<p>&#x41D;&#x435; &#x43F;&#x443;&#x442;&#x430;&#x439;&#x442;&#x435; fs-verity digest &#x441; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x43C; SHA-256 &#x444;&#x430;&#x439;&#x43B;&#x430;. Digest &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x442; descriptor &#x438; &#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x44C; &#x434;&#x435;&#x440;&#x435;&#x432;&#x430; &#x41C;&#x435;&#x440;&#x43A;&#x43B;&#x430;; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x432;&#x44B;&#x432;&#x43E;&#x434; <code>fsverity measure</code> &#x441; &#x442;&#x430;&#x43A;&#x438;&#x43C; &#x436;&#x435; &#x442;&#x438;&#x43F;&#x43E;&#x43C; digest &#x438;&#x437; manifest. &#x425;&#x43E;&#x440;&#x43E;&#x448;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x443;&#x431;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x447;&#x442;&#x43E; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x441;&#x442;&#x44C;&#x44E;: &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x433;&#x43E; &#x444;&#x430;&#x439;&#x43B;&#x430; &#x438; &#x43F;&#x43E;&#x44F;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x43B;&#x438;&#x448;&#x43D;&#x435;&#x433;&#x43E; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x442;&#x44C; gate &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x43E;&#x439;.</p>
<p>&#x414;&#x43B;&#x44F; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x438;&#x445; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x435;&#x439; &#x441;&#x442;&#x43E;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x44C; &#x43F;&#x43E;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x435;&#x440;&#x435;&#x432;&#x430; &#x43F;&#x43B;&#x430;&#x442;&#x438;&#x442;&#x441;&#x44F; &#x43E;&#x434;&#x438;&#x43D; &#x440;&#x430;&#x437; &#x43F;&#x440;&#x438; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43A;&#x435; revision. &#x421;&#x43A;&#x440;&#x44B;&#x442;&#x430;&#x44F; metadata &#x437;&#x430;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442; &#x434;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43C;&#x435;&#x441;&#x442;&#x43E;; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x44F;&#x434;&#x440;&#x430; &#x43E;&#x446;&#x435;&#x43D;&#x438;&#x432;&#x430;&#x435;&#x442; &#x434;&#x435;&#x440;&#x435;&#x432;&#x43E; &#x434;&#x43B;&#x44F; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x438;&#x445; &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;&#x43D;&#x43E; &#x43A;&#x430;&#x43A; &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x443;&#x44E; &#x434;&#x43E;&#x43B;&#x44E; &#x43E;&#x442; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;&#x430;, &#x43D;&#x43E; &#x43F;&#x43B;&#x430;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; storage &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43F;&#x43E; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x43C;&#x443; <code>du</code> &#x43D;&#x430; &#x441;&#x432;&#x43E;&#x438;&#x445; shards, &#x430; &#x43D;&#x435; &#x43F;&#x43E; &#x447;&#x443;&#x436;&#x43E;&#x439; &#x446;&#x438;&#x444;&#x440;&#x435;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-04-6629dde9.webp" class="kg-image" alt="fs-verity &#x434;&#x43B;&#x44F; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM: &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x446;&#x435;&#x43B;&#x43E;&#x441;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x43D;&#x430; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/fs-verity-llm-model-weights-integrity-inline-04-6629dde9.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/fs-verity-llm-model-weights-integrity-inline-04-6629dde9.webp 1000w, https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-04-6629dde9.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="service-gate">Service gate: &#x43D;&#x435; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; inference &#x441; &#x43D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x44B;&#x43C;&#x438; &#x431;&#x430;&#x439;&#x442;&#x430;&#x43C;&#x438;</h2>
<p>&#x422;&#x435;&#x43F;&#x435;&#x440;&#x44C; &#x43D;&#x443;&#x436;&#x435;&#x43D; trusted userspace, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x441;&#x432;&#x44F;&#x436;&#x435;&#x442; path, revision &#x438; digest. &#x41C;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; verifier &#x447;&#x438;&#x442;&#x430;&#x435;&#x442; manifest, &#x443;&#x431;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x447;&#x442;&#x43E; &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#x43E;&#x441;&#x442;&#x430;&#x451;&#x442;&#x441;&#x44F; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; revision directory, &#x432;&#x44B;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; <code>fsverity measure</code>, &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x432;&#x430;&#x435;&#x442; digest &#x438; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x435;&#x43D;&#x443;&#x43B;&#x435;&#x432;&#x44B;&#x43C; &#x43A;&#x43E;&#x434;&#x43E;&#x43C; &#x43F;&#x440;&#x438; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x43C; &#x440;&#x430;&#x441;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x438;. &#x412;&#x430;&#x436;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; effective path &#x438;&#x437; &#x442;&#x43E;&#x433;&#x43E; &#x436;&#x435; namespace, &#x432; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x43C; &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442; inference service: host-&#x441;&#x43A;&#x440;&#x438;&#x43F;&#x442;, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x44E;&#x449;&#x438;&#x439; &#x43E;&#x434;&#x438;&#x43D; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;, &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440; &#x441; &#x434;&#x440;&#x443;&#x433;&#x438;&#x43C; bind mount.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">verify-model-verity.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>#!/usr/bin/env bash
set -euo pipefail
REV=${1:?revision directory}
MANIFEST=${2:?trusted manifest}

while read -r expected rel; do
  file=$(realpath -e &quot;$REV/$rel&quot;)
  case &quot;$file&quot; in &quot;$REV&quot;/*) ;; *) echo &quot;path escape: $rel&quot; &gt;&amp;2; exit 20;; esac
  actual=$(fsverity measure &quot;$file&quot; | awk &apos;{print $1}&apos;)
  test &quot;$actual&quot; = &quot;$expected&quot; || {
    echo &quot;digest mismatch: $rel&quot; &gt;&amp;2
    exit 21
  }
done &lt; &quot;$MANIFEST&quot;

echo &quot;fs-verity gate passed&quot;</code></pre>

</div>
<style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">ini</span><span class="ks-canonical-code-block__filename">llm-inference.service</span></div>
<pre class="ks-canonical-code-block__pre"><code>[Unit]
Description=LLM inference with fs-verity gate
After=local-fs.target network-online.target

[Service]
Type=simple
User=llm
Group=llm
ExecStartPre=/usr/local/libexec/verify-model-verity.sh /srv/models/current /srv/model-manifests/current.fsverity
ExecStart=/usr/local/bin/llm-server --model /srv/models/current
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target</code></pre>

</div>
<p>&#x415;&#x441;&#x43B;&#x438; <code>ExecStartPre</code> &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x43E;&#x439;, &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x43D;&#x435; &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442;. &#x42D;&#x442;&#x43E; failure-visible readiness: &#x431;&#x430;&#x43B;&#x430;&#x43D;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x449;&#x438;&#x43A; &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; endpoint, &#x430; alert &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x441;&#x43E;&#x434;&#x435;&#x440;&#x436;&#x430;&#x442;&#x44C; revision &#x438; &#x438;&#x43C;&#x44F; &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x43A;&#x43E;&#x43D;&#x444;&#x43B;&#x438;&#x43A;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x444;&#x430;&#x439;&#x43B;&#x430;, &#x43D;&#x43E; &#x43D;&#x435; &#x441;&#x435;&#x43A;&#x440;&#x435;&#x442;&#x44B; &#x438; &#x43D;&#x435; &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x435;&#x43D;&#x43D;&#x438;&#x439; manifest. &#x41D;&#x435; &#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x434; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x43E;&#x439; &#x43F;&#x440;&#x435;&#x444;&#x438;&#x43A;&#x441;, &#x438;&#x433;&#x43D;&#x43E;&#x440;&#x438;&#x440;&#x443;&#x44E;&#x449;&#x438;&#x439; exit code, &#x438;&#x43D;&#x430;&#x447;&#x435; gate &#x441;&#x442;&#x430;&#x43D;&#x435;&#x442; &#x434;&#x435;&#x43A;&#x43E;&#x440;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x44B;&#x43C;.</p>
<p>&#x41F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442;: &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x430;&#x44F; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x44F; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; verifier, &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442; &#x438; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x430;&#x435;&#x442; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; model identifier. &#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442;: &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x44F;&#x44F;, &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x430;&#x44F;, &#x43D;&#x43E; &#x43D;&#x435;&#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x430;&#x44F; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x44F; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x431;&#x44B;&#x442;&#x44C; &#x43E;&#x442;&#x432;&#x435;&#x440;&#x433;&#x43D;&#x443;&#x442;&#x430; &#x438;&#x437;-&#x437;&#x430; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x433;&#x43E; digest. &#x422;&#x430;&#x43A;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x435;&#x435; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430; &#x441; raw block corruption &#x43D;&#x430; production-&#x434;&#x438;&#x441;&#x43A;&#x435;.</p>
<div class="ks-widget" id="ks-sel-gat9p3x"><h3>&#x413;&#x434;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; gate?</h3>
<label>&#x421;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x439; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;</label><select data-s><option value="systemd">systemd &#x43D;&#x430; dedicated server</option><option value="container">&#x41A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440; &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; &#x443;&#x437;&#x43B;&#x435;</option><option value="k8s">Kubernetes rollout</option></select>
<div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-gat9p3x');if(!r)return;var m={"systemd":"Используйте ExecStartPre и проверяйте тот же host path, который получает основной процесс.","container":"Проверяйте bind source на host и повторно сверяйте revision внутри container namespace до readiness.","k8s":"Подготавливайте revision на узле, блокируйте readiness до проверки manifest и не смешивайте staging с рабочим volume."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-05-54e3633f.webp" class="kg-image" alt="fs-verity &#x434;&#x43B;&#x44F; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM: &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x446;&#x435;&#x43B;&#x43E;&#x441;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x43D;&#x430; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/fs-verity-llm-model-weights-integrity-inline-05-54e3633f.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/fs-verity-llm-model-weights-integrity-inline-05-54e3633f.webp 1000w, https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-05-54e3633f.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="application-gate">Application gate: &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;, &#x447;&#x442;&#x43E; &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x430; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x44D;&#x442;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;</h2>
<p>Infrastructure gate &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442;: &#xAB;&#x444;&#x430;&#x439;&#x43B;&#x44B; &#x438;&#x43C;&#x435;&#x44E;&#x442; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x44B;&#x435; digest &#x438; &#x431;&#x443;&#x434;&#x443;&#x442; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C;&#x441;&#x44F; &#x43F;&#x440;&#x438; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x438;&#xBB;. &#x41E;&#x43D; &#x43D;&#x435; &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442;: &#xAB;&#x441;&#x435;&#x440;&#x432;&#x435;&#x440; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x43B; &#x432;&#x441;&#x435; shards, &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x43B; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x439; tokenizer &#x438; &#x433;&#x43E;&#x442;&#x43E;&#x432; &#x43E;&#x431;&#x441;&#x43B;&#x443;&#x436;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B;&#xBB;. &#x414;&#x43B;&#x44F; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; application gate.</p>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x437;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; pinned identity &#x432; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x430;&#x445;: repository, &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; commit, manifest digest &#x438; software image digest. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x438;&#x439; smoke test, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x437;&#x430;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; loader &#x43F;&#x440;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x438; &#x432;&#x44B;&#x434;&#x430;&#x451;&#x442; &#x434;&#x435;&#x442;&#x435;&#x440;&#x43C;&#x438;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x439; &#x43F;&#x440;&#x438;&#x437;&#x43D;&#x430;&#x43A; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x438;. &#x42D;&#x442;&#x43E; &#x43D;&#x435; benchmark &#x43A;&#x430;&#x447;&#x435;&#x441;&#x442;&#x432;&#x430; &#x438; &#x43D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43D;&#x438;&#x435; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x445; &#x442;&#x43E;&#x43A;&#x435;&#x43D;&#x43E;&#x432; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x43C;&#x438; kernels; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x443;&#x44E; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x443;, &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x44B;&#x439; model ID, &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x438;&#x435; read errors &#x438; &#x431;&#x430;&#x437;&#x43E;&#x432;&#x44B;&#x439; inference response.</p>
<p>&#x41E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x430;. &#x41F;&#x43E;&#x434;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x435; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x443; <code>current</code> &#x43D;&#x430; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x443;&#x44E;, &#x43D;&#x43E; &#x43E;&#x442;&#x441;&#x443;&#x442;&#x441;&#x442;&#x432;&#x443;&#x44E;&#x449;&#x443;&#x44E; &#x432; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E;&#x43C; manifest &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x44E; &#x43D;&#x430; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x43E;&#x43C; &#x443;&#x437;&#x43B;&#x435;. Service gate &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A; &#x434;&#x43E; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; GPU. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x443; &#x438; &#x443;&#x431;&#x435;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C;, &#x447;&#x442;&#x43E; readiness &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x43B;&#x430;&#x441;&#x44C;. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x442;&#x435;&#x441;&#x442; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C;: &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x430;&#x435;&#x442; &#x43D;&#x435; &#xAB;&#x43B;&#x44E;&#x431;&#x43E;&#x439; &#x447;&#x438;&#x442;&#x430;&#x435;&#x43C;&#x44B;&#x439; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;&#xBB;, &#x430; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x443;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x443;&#x44E; identity.</p>
<p>&#x41D;&#x430;&#x43A;&#x43E;&#x43D;&#x435;&#x446;, &#x447;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; &#x432;&#x435;&#x441;&#x44C; &#x43D;&#x430;&#x431;&#x43E;&#x440; shards &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; canary &#x438;&#x43B;&#x438; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x443;&#x44E; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x443; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;. <code>fsverity measure</code> &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x439; digest, &#x43D;&#x43E; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x43F;&#x43E;&#x432;&#x440;&#x435;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x44B;&#x445; data blocks &#x43F;&#x440;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x440;&#x438; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x438;. &#x414;&#x43B;&#x44F; mmap-loader &#x44D;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; <code>SIGBUS</code>, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; supervisor &#x438; alerting &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x44B; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x430;&#x442;&#x44C; integrity incident &#x43E;&#x442; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x433;&#x43E; OOM.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">negative-gate-test.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>set -euo pipefail
sudo systemctl stop llm-inference
sudo ln -sfn /srv/models/revisions/UNAPPROVED_SHA /srv/models/current
if sudo systemctl start llm-inference; then
  echo &quot;ERROR: unapproved revision started&quot; &gt;&amp;2
  exit 1
fi
sudo ln -sfn /srv/models/revisions/APPROVED_SHA /srv/models/current
sudo systemctl start llm-inference
systemctl is-active --quiet llm-inference</code></pre>

</div>
<h2 id="rollout">Rollout &#x431;&#x435;&#x437; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x438;&#x441;&#x438;: canary, promotion &#x438; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x44B;&#x439; rollback</h2>
<p>&#x41D;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x437;&#x430;&#x449;&#x438;&#x449;&#x451;&#x43D;&#x43D;&#x443;&#x44E; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x44E; &#x43D;&#x430; &#x43C;&#x435;&#x441;&#x442;&#x435;. &#x41F;&#x440;&#x430;&#x432;&#x438;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x435;&#x434;&#x438;&#x43D;&#x438;&#x446;&#x430; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x2014; &#x43D;&#x43E;&#x432;&#x44B;&#x439; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433; &#x441; &#x43D;&#x43E;&#x432;&#x44B;&#x43C; commit &#x438; manifest. Pipeline &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x442;&#x430;&#x43A;: download &#x432; staging, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x442;&#x44B;, &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441; &#x43D;&#x430; &#x446;&#x435;&#x43B;&#x435;&#x432;&#x43E;&#x439; filesystem, <code>fsverity enable</code>, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x435; digest manifest, canary load, application tests &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; promotion &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x438; <code>current</code>.</p>
<p>Canary &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x441; &#x442;&#x43E;&#x433;&#x43E; &#x436;&#x435; &#x442;&#x438;&#x43F;&#x430; &#x434;&#x438;&#x441;&#x43A;&#x430; &#x438; &#x442;&#x435;&#x43C; &#x436;&#x435; runtime, &#x447;&#x442;&#x43E; production. &#x415;&#x441;&#x43B;&#x438; &#x43E;&#x43D; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;, &#x440;&#x430;&#x441;&#x43A;&#x430;&#x442;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; revision &#x43F;&#x43E; &#x443;&#x437;&#x43B;&#x430;&#x43C; &#x43F;&#x43E;&#x441;&#x442;&#x435;&#x43F;&#x435;&#x43D;&#x43D;&#x43E;, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x44F; &#x43F;&#x440;&#x435;&#x434;&#x44B;&#x434;&#x443;&#x449;&#x438;&#x439; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;. &#x421;&#x43C;&#x435;&#x43D;&#x430; symlink &#x430;&#x442;&#x43E;&#x43C;&#x430;&#x440;&#x43D;&#x430;, &#x43D;&#x43E; &#x443;&#x436;&#x435; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x44E;&#x449;&#x438;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x434;&#x435;&#x440;&#x436;&#x430;&#x442;&#x44C; &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x435; inode &#x441;&#x442;&#x430;&#x440;&#x43E;&#x439; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x438;; &#x44D;&#x442;&#x43E; &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x43E; &#x434;&#x43B;&#x44F; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x43E;&#x434;&#x43D;&#x430;&#x43A;&#x43E; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x44F;&#x432;&#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x44C; &#x438;&#x43B;&#x438; &#x434;&#x440;&#x435;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43D;&#x43E;&#x432;&#x430;&#x44F; identity &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x432;&#x441;&#x442;&#x443;&#x43F;&#x438;&#x43B;&#x430; &#x432; &#x441;&#x438;&#x43B;&#x443;.</p>
<p>Storage budget &#x437;&#x434;&#x435;&#x441;&#x44C; &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435; &#x43A;&#x440;&#x430;&#x441;&#x43E;&#x442;&#x44B; pipeline. &#x414;&#x435;&#x440;&#x436;&#x438;&#x442;&#x435; &#x440;&#x430;&#x431;&#x43E;&#x447;&#x443;&#x44E;, &#x43F;&#x440;&#x435;&#x434;&#x44B;&#x434;&#x443;&#x449;&#x443;&#x44E; &#x438; staging revision, &#x43F;&#x43E;&#x43A;&#x430; rollout &#x43D;&#x435; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x451;&#x43D;. &#x415;&#x441;&#x43B;&#x438; &#x43C;&#x435;&#x441;&#x442;&#x430; &#x43D;&#x435; &#x445;&#x432;&#x430;&#x442;&#x430;&#x435;&#x442;, &#x441;&#x431;&#x43E;&#x440;&#x449;&#x438;&#x43A; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; rollback target &#x432; &#x441;&#x430;&#x43C;&#x44B;&#x439; &#x43D;&#x435;&#x43F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x44F;&#x449;&#x438;&#x439; &#x43C;&#x43E;&#x43C;&#x435;&#x43D;&#x442;. &#x41F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x443; garbage collection &#x441;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43D;&#x435; &#x441; &#x432;&#x43E;&#x437;&#x440;&#x430;&#x441;&#x442;&#x43E;&#x43C; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;&#x430;, &#x430; &#x441; &#x444;&#x430;&#x43A;&#x442;&#x43E;&#x43C;, &#x447;&#x442;&#x43E; &#x43D;&#x438; &#x43E;&#x434;&#x438;&#x43D; process &#x43D;&#x435; &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; inode, revision &#x43D;&#x435; &#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; current/previous &#x438; rollout &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x442;.</p>
<p>&#x421; fs-verity rollback &#x43F;&#x440;&#x43E;&#x441;&#x442;: &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x430; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x443;&#x436;&#x435; &#x437;&#x430;&#x449;&#x438;&#x449;&#x451;&#x43D;&#x43D;&#x44B;&#x439; &#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x43C;&#x44B;&#x439; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;, verifier &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x441;&#x442;&#x430;&#x440;&#x44B;&#x439; manifest, &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x447;&#x435;&#x433;&#x43E; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x441;&#x43D;&#x43E;&#x432;&#x430; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; application gate. &#x41D;&#x435; &#x43D;&#x443;&#x436;&#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x43F;&#x438;&#x441;&#x44B;&#x432;&#x430;&#x442;&#x44C; &#x433;&#x438;&#x433;&#x430;&#x431;&#x430;&#x439;&#x442;&#x44B; &#x43F;&#x43E;&#x432;&#x435;&#x440;&#x445; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x433;&#x43E; &#x444;&#x430;&#x439;&#x43B;&#x430; &#x2014; &#x438; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x44D;&#x442;&#x43E; &#x441;&#x43E;&#x43A;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x432;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;.</p>
<div class="ks-widget" id="ks-tab-rol6n8c"><h3>&#x427;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x44D;&#x442;&#x430;&#x43F;&#x435; rollout?</h3>
<div class="tabs"><button type="button" class="tab-btn on" data-t="stage">Staging</button><button type="button" class="tab-btn" data-t="canary">Canary</button><button type="button" class="tab-btn" data-t="prod">Production</button></div>
<div class="panel on" data-p="stage">Pinned commit, &#x43F;&#x43E;&#x43B;&#x43D;&#x44B;&#x439; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432;, &#x441;&#x432;&#x43E;&#x431;&#x43E;&#x434;&#x43D;&#x43E;&#x435; &#x43C;&#x435;&#x441;&#x442;&#x43E;, &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x435; writers &#x438; &#x43D;&#x43E;&#x432;&#x44B;&#x439; manifest.</div>
<div class="panel" data-p="canary">fs-verity gate, &#x43F;&#x43E;&#x43B;&#x43D;&#x43E;&#x435; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x435; shards, model identity, smoke inference &#x438; &#x440;&#x430;&#x437;&#x43B;&#x438;&#x447;&#x438;&#x43C;&#x44B;&#x435; integrity errors.</div>
<div class="panel" data-p="prod">&#x41F;&#x43E;&#x448;&#x430;&#x433;&#x43E;&#x432;&#x44B;&#x439; drain, &#x430;&#x442;&#x43E;&#x43C;&#x430;&#x440;&#x43D;&#x430;&#x44F; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x430;, &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435; identity &#x43D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x443;&#x437;&#x43B;&#x435; &#x438; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;&#x43D;&#x44B;&#x439; rollback target.</div>
<script>(function(){var r=document.getElementById('ks-tab-rol6n8c');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-06-dd2a2cbb.webp" class="kg-image" alt="fs-verity &#x434;&#x43B;&#x44F; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM: &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x446;&#x435;&#x43B;&#x43E;&#x441;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x43D;&#x430; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/fs-verity-llm-model-weights-integrity-inline-06-dd2a2cbb.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/fs-verity-llm-model-weights-integrity-inline-06-dd2a2cbb.webp 1000w, https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-06-dd2a2cbb.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="incident-response">&#x427;&#x442;&#x43E; &#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x438; EIO, SIGBUS &#x438;&#x43B;&#x438; digest mismatch</h2>
<p>Integrity incident &#x43D;&#x435; &#x43B;&#x435;&#x447;&#x438;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x44B;&#x43C; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x43E;&#x43C; &#x432; &#x446;&#x438;&#x43A;&#x43B;&#x435;. &#x41F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x448;&#x430;&#x433; &#x2014; &#x443;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x443;&#x437;&#x435;&#x43B; &#x438;&#x437; &#x431;&#x430;&#x43B;&#x430;&#x43D;&#x441;&#x438;&#x440;&#x43E;&#x432;&#x43A;&#x438; &#x438; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x44C; evidence: revision, manifest digest, kernel version, filesystem, &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x44F; kernel log, exit status &#x438; &#x438;&#x43C;&#x44F; &#x444;&#x430;&#x439;&#x43B;&#x430;. &#x41D;&#x435; &#x43F;&#x44B;&#x442;&#x430;&#x439;&#x442;&#x435;&#x441;&#x44C; &#xAB;&#x43F;&#x43E;&#x447;&#x438;&#x43D;&#x438;&#x442;&#x44C;&#xBB; verity-file &#x447;&#x435;&#x440;&#x435;&#x437; <code>chmod</code> &#x438;&#x43B;&#x438; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x44C; &#x43F;&#x43E;&#x432;&#x435;&#x440;&#x445;: inode &#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x43C; &#x43F;&#x43E; &#x434;&#x438;&#x437;&#x430;&#x439;&#x43D;&#x443;.</p>
<p>&#x420;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;&#x44B;. <code>digest mismatch</code> &#x434;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x447;&#x430;&#x449;&#x435; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x443; path/inode, &#x43D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; manifest &#x438;&#x43B;&#x438; rollout &#x43D;&#x435; &#x442;&#x43E;&#x439; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x438;. <code>EIO</code> &#x432;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x44F; <code>read()</code> &#x438; <code>SIGBUS</code> &#x443; mmap-loader &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x44E;&#x442;, &#x447;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x431;&#x43B;&#x43E;&#x43A; &#x43D;&#x435; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x43B; &#x441; &#x434;&#x435;&#x440;&#x435;&#x432;&#x43E;&#x43C;. <code>EPERM</code> &#x43F;&#x440;&#x438; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x438; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; downloader &#x43F;&#x43E;&#x43F;&#x430;&#x43B; &#x432; immutable &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433;. &#x41E;&#x434;&#x438;&#x43D; &#x438; &#x442;&#x43E;&#x442; &#x436;&#x435; &#x430;&#x43B;&#x435;&#x440;&#x442; &#xAB;&#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x43D;&#x435; &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442;&#xBB; &#x441;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x442;&#x440;&#x438; &#x441;&#x43E;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x43D;&#x43E; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x445; runbook.</p>
<p>&#x412;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x43D;&#x43E;&#x432;&#x44B;&#x43C; inode. &#x417;&#x430;&#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x435; &#x442;&#x43E;&#x442; &#x436;&#x435; pinned commit &#x432; &#x447;&#x438;&#x441;&#x442;&#x44B;&#x439; staging, &#x441;&#x43D;&#x43E;&#x432;&#x430; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; upstream identity, &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x435;&#x441;&#x438;&#x442;&#x435; &#x444;&#x430;&#x439;&#x43B;&#x44B;, &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435; fs-verity &#x438; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x438;&#x442;&#x435; digest &#x441; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x43C; manifest. &#x415;&#x441;&#x43B;&#x438; digest &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x43B;, &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x435; &#x441;&#x441;&#x44B;&#x43B;&#x43A;&#x443; &#x438; &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x438;&#x442;&#x435; &#x43E;&#x431;&#x430; gate. &#x415;&#x441;&#x43B;&#x438; &#x43D;&#x435; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x43B;, &#x43D;&#x435; &#xAB;&#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; manifest &#x43F;&#x43E;&#x434; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x435; &#x431;&#x430;&#x439;&#x442;&#x44B;&#xBB; &#x2014; &#x44D;&#x442;&#x43E; &#x443;&#x43D;&#x438;&#x447;&#x442;&#x43E;&#x436;&#x430;&#x435;&#x442; &#x441;&#x43C;&#x44B;&#x441;&#x43B; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44F;. &#x42D;&#x441;&#x43A;&#x430;&#x43B;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443; &#x43A; &#x438;&#x441;&#x442;&#x43E;&#x447;&#x43D;&#x438;&#x43A;&#x443; &#x430;&#x440;&#x442;&#x435;&#x444;&#x430;&#x43A;&#x442;&#x430; &#x438;&#x43B;&#x438; pipeline.</p>
<p>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x439; &#x441;&#x43B;&#x43E;&#x439;. &#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43C;&#x43E;&#x433;&#x43B;&#x430; &#x432;&#x43E;&#x437;&#x43D;&#x438;&#x43A;&#x43D;&#x443;&#x442;&#x44C; &#x438;&#x437;-&#x437;&#x430; NVMe media error, &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438;, filesystem corruption &#x438;&#x43B;&#x438; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x447;&#x43D;&#x43E;&#x439; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438;. &#x41F;&#x43E;&#x441;&#x43C;&#x43E;&#x442;&#x440;&#x438;&#x442;&#x435; SMART/NVMe health &#x438; kernel logs, &#x43D;&#x43E; &#x43D;&#x435; &#x43E;&#x431;&#x44A;&#x44F;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x434;&#x438;&#x441;&#x43A; &#x432;&#x438;&#x43D;&#x43E;&#x432;&#x43D;&#x44B;&#x43C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x43C;&#x443; <code>EIO</code>. &#x418; &#x43D;&#x430;&#x43E;&#x431;&#x43E;&#x440;&#x43E;&#x442;, &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; rollback &#x43D;&#x435; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; incident: &#x43E;&#x43D; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;, &#x430; root cause analysis &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442;, &#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443; &#x431;&#x430;&#x439;&#x442;&#x44B; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438;&#x441;&#x44C;.</p>
<div class="ks-widget" id="ks-chk-inc3v7q"><h3>&#x427;&#x435;&#x43A;-&#x43B;&#x438;&#x441;&#x442; integrity incident</h3>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x423;&#x437;&#x435;&#x43B; &#x438;&#x441;&#x43A;&#x43B;&#x44E;&#x447;&#x451;&#x43D; &#x438;&#x437; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B; revision, manifest digest &#x438; kernel logs</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> &#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43A;&#x43B;&#x430;&#x441;&#x441;&#x438;&#x444;&#x438;&#x446;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x430; &#x43A;&#x430;&#x43A; mismatch, EIO/SIGBUS &#x438;&#x43B;&#x438; EPERM</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> &#x412;&#x43E;&#x441;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x43E; &#x432; &#x43D;&#x43E;&#x432;&#x43E;&#x43C; inode</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x41E;&#x431;&#x430; gate &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x438;</label>
<label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x44B; storage &#x438; rollout automation</label>
<div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-chk-inc3v7q');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-07-ae576477.webp" class="kg-image" alt="fs-verity &#x434;&#x43B;&#x44F; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM: &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x446;&#x435;&#x43B;&#x43E;&#x441;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x43D;&#x430; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435;" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/fs-verity-llm-model-weights-integrity-inline-07-ae576477.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/fs-verity-llm-model-weights-integrity-inline-07-ae576477.webp 1000w, https://kingservers.com/blog/content/images/2026/08/fs-verity-llm-model-weights-integrity-inline-07-ae576477.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="limits">&#x41E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x438; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x435; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x44B; &#x437;&#x430;&#x449;&#x438;&#x442;&#x44B;</h2>
<p>fs-verity &#x43D;&#x435; &#x448;&#x438;&#x444;&#x440;&#x443;&#x435;&#x442; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x438; &#x43D;&#x435; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x435;. &#x414;&#x43B;&#x44F; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x434;&#x435;&#x43D;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x43D;&#x443;&#x436;&#x43D;&#x44B; &#x43F;&#x440;&#x430;&#x432;&#x430; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430;, &#x438;&#x437;&#x43E;&#x43B;&#x44F;&#x446;&#x438;&#x44F; workload, encryption at rest &#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x432;&#x44B;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;. &#x41E;&#x431;&#x449;&#x443;&#x44E; threat model &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x441;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; &#x441;&#x43E; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x451;&#x439; &#x43E; <a href="https://kingservers.com/blog/bezopasnost-ai-sistem-zashchita-modeley-dannykh-v-oblake/">&#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x438; AI-&#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;</a>. Safetensors &#x443;&#x43C;&#x435;&#x43D;&#x44C;&#x448;&#x430;&#x435;&#x442; &#x440;&#x438;&#x441;&#x43A; &#x43D;&#x435;&#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x439; &#x434;&#x435;&#x441;&#x435;&#x440;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438;, &#x43D;&#x43E; &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C; &#x43F;&#x440;&#x43E;&#x438;&#x441;&#x445;&#x43E;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x438; digest.</p>
<p>&#x41C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C; &#x442;&#x430;&#x43A;&#x436;&#x435; &#x43D;&#x435; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x438;&#x437;&#x438;&#x440;&#x443;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C;. &#x41F;&#x435;&#x440;&#x432;&#x43E;&#x435; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E;-&#x43F;&#x440;&#x435;&#x436;&#x43D;&#x435;&#x43C;&#x443; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; NVMe, page cache &#x438; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x435;&#x439; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438;. &#x415;&#x441;&#x43B;&#x438; integrity rollout &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x43B; &#x441; I/O storm, &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x431;&#x435;&#x437;&#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x438; resource control: &#x440;&#x435;&#x43A;&#x43E;&#x43C;&#x435;&#x43D;&#x434;&#x430;&#x446;&#x438;&#x438; &#x43F;&#x43E; cgroup v2 &#x438; systemd &#x441;&#x43E;&#x431;&#x440;&#x430;&#x43D;&#x44B; &#x432; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B;&#x435; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/io-isolation-llm-cgroup-v2-systemd/">I/O-&#x438;&#x437;&#x43E;&#x43B;&#x44F;&#x446;&#x438;&#x44E; LLM-&#x443;&#x437;&#x43B;&#x430;</a>. &#x421;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435;, &#x447;&#x442;&#x43E; gate &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x438;&#x43B; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x435; &#x431;&#x430;&#x439;&#x442;&#x44B;, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; model load time &#x438; latency.</p>
<p>&#x414;&#x43B;&#x44F; read-only &#x43E;&#x431;&#x440;&#x430;&#x437;&#x430; &#x446;&#x435;&#x43B;&#x43E;&#x433;&#x43E; &#x443;&#x437;&#x43B;&#x430; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x43F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x438;&#x442; dm-verity. &#x414;&#x43B;&#x44F; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x43D;&#x43E;&#x439; &#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x438; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x440;&#x430;&#x441;&#x441;&#x43C;&#x43E;&#x442;&#x440;&#x435;&#x442;&#x44C; IMA appraisal &#x438;&#x43B;&#x438; IPE; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; &#x44F;&#x434;&#x440;&#x430; IPE &#x443;&#x43C;&#x435;&#x435;&#x442; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x432;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x430; <code>fsverity_digest</code> &#x438; <code>fsverity_signature</code>, &#x43D;&#x43E; &#x44D;&#x442;&#x43E; &#x443;&#x436;&#x435; kernel-enforced policy &#x441; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C;&#x44E; &#x440;&#x430;&#x437;&#x432;&#x435;&#x440;&#x442;&#x44B;&#x432;&#x430;&#x43D;&#x438;&#x44F;. &#x414;&#x43B;&#x44F; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x433;&#x43E; inference service trusted manifest &#x438; &#x441;&#x442;&#x440;&#x43E;&#x433;&#x438;&#x439; pre-start verifier &#x447;&#x430;&#x441;&#x442;&#x43E; &#x434;&#x430;&#x44E;&#x442; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x43F;&#x43E;&#x43D;&#x44F;&#x442;&#x43D;&#x44B;&#x439; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x448;&#x430;&#x433;.</p>
<p>&#x41D;&#x430;&#x43A;&#x43E;&#x43D;&#x435;&#x446;, &#x43D;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x439;&#x442;&#x435; &#x433;&#x43B;&#x43E;&#x431;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; <code>fs.verity.require_signatures=1</code> &#x431;&#x435;&#x437; &#x438;&#x43D;&#x432;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438;. &#x41E;&#x43D; &#x442;&#x440;&#x435;&#x431;&#x443;&#x435;&#x442; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x43D;&#x44B;&#x445; verity-&#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432; &#x438; &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x441;&#x435;&#x440;&#x442;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x442;&#x43E;&#x432; &#x432; keyring. &#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x432; boot-time key provisioning &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43D;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; &#x432;&#x441;&#x435; consumers. &#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; userspace gate, &#x43F;&#x440;&#x43E;&#x442;&#x435;&#x441;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; rotation &#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x439; &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x442;&#x43E;&#x43C; &#x440;&#x435;&#x448;&#x430;&#x439;&#x442;&#x435;, &#x43D;&#x443;&#x436;&#x43D;&#x430; &#x43B;&#x438; &#x432;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43D;&#x43D;&#x430;&#x44F; signature enforcement.</p>
<div class="ks-widget" id="ks-sel-lim5k2d"><h3>&#x41A;&#x430;&#x43A;&#x43E;&#x439; &#x440;&#x438;&#x441;&#x43A; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x43C; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x43C;?</h3>
<label>&#x413;&#x43B;&#x430;&#x432;&#x43D;&#x430;&#x44F; &#x443;&#x433;&#x440;&#x43E;&#x437;&#x430;</label><select data-s><option value="bytes">&#x41F;&#x43E;&#x434;&#x43C;&#x435;&#x43D;&#x430; &#x438;&#x43B;&#x438; &#x43F;&#x43E;&#x440;&#x447;&#x430; &#x432;&#x435;&#x441;&#x43E;&#x432;</option><option value="secret">&#x41A;&#x440;&#x430;&#x436;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;</option><option value="image">&#x41F;&#x43E;&#x434;&#x43C;&#x435;&#x43D;&#x430; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x430;</option><option value="load">&#x428;&#x442;&#x43E;&#x440;&#x43C; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x438; I/O</option></select>
<div class="out" data-o></div><script>(function(){var r=document.getElementById('ks-sel-lim5k2d');if(!r)return;var m={"bytes":"Используйте fs-verity плюс доверенный manifest и application gate.","secret":"Добавьте шифрование, строгие ACL, workload isolation и контроль экспорта.","image":"Рассмотрите dm-verity или signed immutable image для всего read-only окружения.","load":"Отделите integrity от производительности: page cache, FS-Cache и I/O resource control."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><h2 id="zaklyuchenie">&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x438;&#x442;&#x43E;&#x433;</h2>
<p>fs-verity &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x43D;&#x435; &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443;, &#x447;&#x442;&#x43E; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x435;&#x449;&#x451; &#x43E;&#x434;&#x438;&#x43D; hash &#x432; pipeline. &#x41E;&#x43D; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#x432;&#x435;&#x441;&#x43E;&#x432;&#x44B;&#x435; &#x444;&#x430;&#x439;&#x43B;&#x44B; &#x432; &#x43D;&#x435;&#x438;&#x437;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x43C;&#x44B;&#x435; &#x43E;&#x431;&#x44A;&#x435;&#x43A;&#x442;&#x44B;, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x435; &#x44F;&#x434;&#x440;&#x43E;&#x43C; &#x43F;&#x440;&#x438; &#x447;&#x442;&#x435;&#x43D;&#x438;&#x438;, &#x438; &#x434;&#x430;&#x451;&#x442; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x44B;&#x439; digest &#x434;&#x43B;&#x44F; identity gate. &#x41D;&#x43E; &#x43D;&#x430;&#x441;&#x442;&#x43E;&#x44F;&#x449;&#x430;&#x44F; &#x437;&#x430;&#x449;&#x438;&#x442;&#x430; &#x43F;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x432; &#x441;&#x432;&#x44F;&#x437;&#x43A;&#x435;: pinned upstream revision, &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; staging, &#x434;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x439; manifest, pre-start verifier, application smoke test &#x438; rollback &#x43D;&#x430; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x43F;&#x43E;&#x434;&#x433;&#x43E;&#x442;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; inode.</p>
<p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; canary-&#x443;&#x437;&#x43B;&#x430; &#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; model revision. &#x41F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; filesystem probe-&#x444;&#x430;&#x439;&#x43B;&#x43E;&#x43C;, &#x437;&#x430;&#x449;&#x438;&#x442;&#x438;&#x442;&#x435; &#x432;&#x441;&#x435; shards &#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E;, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x439; &#x441; &#x43D;&#x435;&#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x43E;&#x439; &#x440;&#x435;&#x432;&#x438;&#x437;&#x438;&#x435;&#x439;, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x43F;&#x43E;&#x43B;&#x43D;&#x443;&#x44E; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x443;. &#x41A;&#x43E;&#x433;&#x434;&#x430; &#x43E;&#x431;&#x430; gate &#x443;&#x441;&#x442;&#x43E;&#x439;&#x447;&#x438;&#x432;&#x43E; &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x44F;&#x442;, &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x435; &#x441;&#x445;&#x435;&#x43C;&#x443; &#x43D;&#x430; &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; GPU-&#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x438; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; alerts &#x434;&#x43B;&#x44F; mismatch, EIO &#x438; SIGBUS.</p>
<p>&#x422;&#x430;&#x43A; &#x432;&#x44B; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x435; &#x43D;&#x435; &#x430;&#x431;&#x441;&#x442;&#x440;&#x430;&#x43A;&#x442;&#x43D;&#x443;&#x44E; &#xAB;&#x437;&#x430;&#x449;&#x438;&#x442;&#x443; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;&#xBB;, &#x430; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x435; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x43E;&#x435; &#x441;&#x432;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E;: inference &#x43B;&#x438;&#x431;&#x43E; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x441; &#x443;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x44B;&#x43C;&#x438; &#x431;&#x430;&#x439;&#x442;&#x430;&#x43C;&#x438;, &#x43B;&#x438;&#x431;&#x43E; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x430;&#x432;&#x43B;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x434;&#x43E; &#x43F;&#x440;&#x438;&#x451;&#x43C;&#x430; &#x442;&#x440;&#x430;&#x444;&#x438;&#x43A;&#x430;. &#x414;&#x43B;&#x44F; production &#x44D;&#x442;&#x43E; &#x43A;&#x443;&#x434;&#x430; &#x446;&#x435;&#x43D;&#x43D;&#x435;&#x435; &#x442;&#x438;&#x445;&#x43E;&#x439; &#x43D;&#x430;&#x434;&#x435;&#x436;&#x434;&#x44B;, &#x447;&#x442;&#x43E; &#x43A;&#x430;&#x442;&#x430;&#x43B;&#x43E;&#x433; &#x43D;&#x430; NVMe &#x43D;&#x438;&#x43A;&#x442;&#x43E; &#x43D;&#x435; &#x442;&#x440;&#x43E;&#x433;&#x430;&#x43B;.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item><item><title><![CDATA[Pinned memory и memlock для LLM inference: production-runbook]]></title><description><![CDATA[Практический runbook по pinned host memory и RLIMIT_MEMLOCK для LLM inference: диагностика, Docker/systemd, vLLM offload, метрики, canary и rollback.]]></description><link>https://kingservers.com/blog/pinned-memory-memlock-llm-inference/</link><guid isPermaLink="false">6a9487f3aff2afac25354bc3</guid><category><![CDATA[GPU]]></category><dc:creator><![CDATA[Андрей Минин, автор блога]]></dc:creator><pubDate>Sun, 30 Aug 2026 19:56:13 GMT</pubDate><media:content url="https://kingservers.com/blog/content/images/2026/08/pinned-memory-memlock-llm-hero-5364397a.webp" medium="image"/><content:encoded><![CDATA[<div data-ks-component="table-of-contents" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.text-fragment-toc{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border-left:4px solid #60A5FA;padding:24px 20px;margin:40px 0;border-radius:8px;font-size:16px;line-height:1.7;color:#1F2937}
.text-fragment-toc h2{font-size:20px;font-weight:700;color:#0F172A;margin-bottom:16px}
.text-fragment-toc ul{list-style:none;padding:0;margin:0}
.text-fragment-toc li{margin-bottom:10px}
.text-fragment-toc a{text-decoration:none;color:#2563EB;font-weight:500;transition:color .2s;word-break:break-word}
.text-fragment-toc a:hover{color:#1E40AF}
</style>
<div class="text-fragment-toc"><h2>&#x41E;&#x433;&#x43B;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435;</h2><ul>
<li><a href="#symptoms">&#x41A;&#x43E;&#x433;&#x434;&#x430; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x43C;&#x430;&#x441;&#x43A;&#x438;&#x440;&#x443;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x434; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443; GPU</a></li>
<li><a href="#pinned-vs-pageable">&#x427;&#x442;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; pinned memory &#x2014; &#x438; &#x447;&#x435;&#x433;&#x43E; &#x43E;&#x43D;&#x430; &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442;</a></li>
<li><a href="#baseline">Baseline: &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x43B;&#x438;&#x43C;&#x438;&#x442;, &#x43F;&#x440;&#x430;&#x432;&#x430; &#x438; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; locked &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B;</a></li>
<li><a href="#containers">Docker &#x438; Compose: &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x439; ulimit &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x43B;&#x438;&#x448;&#x43D;&#x435;&#x439; capability</a></li>
<li><a href="#systemd">systemd: &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x443; &#x432; unit &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; effective state</a></li>
<li><a href="#vllm-offload">vLLM offload: &#x433;&#x434;&#x435; pinned memory &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x447;&#x430;&#x441;&#x442;&#x44C;&#x44E; data path</a></li>
<li><a href="#application-probe">Application gate: &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; PyTorch transfer &#x438; &#x441;&#x430;&#x43C; inference</a></li>
<li><a href="#observability">&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;: &#x441;&#x432;&#x44F;&#x437;&#x430;&#x442;&#x44C; VmLck &#x441; latency &#x438; memory pressure</a></li>
<li><a href="#rollout">Rollout: &#x434;&#x432;&#x430; gate, canary &#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430;</a></li>
<li><a href="#mistakes">&#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;: unlimited, &#x43E;&#x434;&#x438;&#x43D; benchmark &#x438; &#x43D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; &#x441;&#x43B;&#x43E;&#x439;</a></li>
<li><a href="#conclusion">&#x418;&#x442;&#x43E;&#x433;: memlock &#x2014; &#x44D;&#x442;&#x43E; &#x431;&#x44E;&#x434;&#x436;&#x435;&#x442;, &#x430; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x438;</a></li>
</ul></div>

</div>LLM-&#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x432;&#x438;&#x434;&#x438;&#x442; GPU &#x438; &#x441;&#x442;&#x430;&#x440;&#x442;&#x443;&#x435;&#x442; &#x431;&#x435;&#x437; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A;, &#x43D;&#x43E; CPU offload &#x432;&#x43D;&#x435;&#x437;&#x430;&#x43F;&#x43D;&#x43E; &#x442;&#x43E;&#x440;&#x43C;&#x43E;&#x437;&#x438;&#x442;, &#x430; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x440;&#x435;&#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x438;&#x434;&#x451;&#x442; &#x440;&#x44B;&#x432;&#x43A;&#x430;&#x43C;&#x438;. &#x41F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x430; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43D;&#x435; &#x432; CUDA &#x438; &#x43D;&#x435; &#x432; PCIe, &#x430; &#x432; &#x441;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x43C;&#x430;&#x43B;&#x435;&#x43D;&#x44C;&#x43A;&#x43E;&#x43C; RLIMIT_MEMLOCK: &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x43D;&#x435; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x44C; host RAM &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x435;&#x434;&#x441;&#x43A;&#x430;&#x437;&#x443;&#x435;&#x43C;&#x44B;&#x445; &#x430;&#x441;&#x438;&#x43D;&#x445;&#x440;&#x43E;&#x43D;&#x43D;&#x44B;&#x445; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x447;. &#x420;&#x430;&#x437;&#x431;&#x435;&#x440;&#x451;&#x43C;, &#x43A;&#x430;&#x43A; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x438;&#x442;&#x44C; pinned memory, &#x437;&#x430;&#x434;&#x430;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x439; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x432; Docker &#x438;&#x43B;&#x438; systemd &#x438; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x447;&#x435;&#x440;&#x435;&#x437; &#x434;&#x432;&#x430; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x44B;&#x445; gate. &#x412; &#x43A;&#x43E;&#x43D;&#x446;&#x435; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x435;&#x442;&#x441;&#x44F; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x439; rollback, &#x430; &#x43D;&#x435; &#x432;&#x435;&#x447;&#x43D;&#x44B;&#x439; memlock=unlimited.<div data-ks-component="infrastructure-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
.cpu-final {
  font-family: 'Avenir Next Cyr', sans-serif;
  font-size: 16px;
  color: #1F2937;
  line-height: 1.6;
  margin: 40px 0;
  padding: 24px 28px;
  background-color: #F0F9FF;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

.cpu-final h3 {
  font-size: 18px;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 16px;
}

.cpu-final ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-top: 16px;
  margin-bottom: 0;
}

.cpu-final ul li {
  margin-bottom: 10px;
}

.cpu-final ul li::marker {
  color: #1e90ff;
}
</style>

<div class="cpu-final">
  <h3>&#x413;&#x43E;&#x442;&#x43E;&#x432;&#x44B; &#x43F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x43D;&#x443;&#x44E; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x443;?</h3>

  <img src="https://kingservers.com/blog/content/images/2026/08/pinned-memory-memlock-llm-hero-5364397a.webp" alt="Pinned memory &#x438; memlock &#x434;&#x43B;&#x44F; LLM inference: production-runbook"><p>&#x412; King Servers &#x43C;&#x44B; &#x43F;&#x440;&#x435;&#x434;&#x43B;&#x430;&#x433;&#x430;&#x435;&#x43C; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x44B; &#x43A;&#x430;&#x43A; &#x43D;&#x430; AMD EPYC, &#x442;&#x430;&#x43A; &#x438; &#x43D;&#x430; Intel Xeon, &#x441; &#x433;&#x438;&#x431;&#x43A;&#x438;&#x43C;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44F;&#x43C;&#x438; &#x43F;&#x43E;&#x434; &#x43B;&#x44E;&#x431;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438; &#x2014; &#x43E;&#x442; &#x432;&#x438;&#x440;&#x442;&#x443;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; &#x438; &#x432;&#x435;&#x431;-&#x445;&#x43E;&#x441;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x434;&#x43E; S3-&#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449; &#x438; &#x43A;&#x43B;&#x430;&#x441;&#x442;&#x435;&#x440;&#x43E;&#x432; &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;.</p>

  <ul>
    <li>S3-&#x441;&#x43E;&#x432;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x43C;&#x43E;&#x435; &#x445;&#x440;&#x430;&#x43D;&#x438;&#x43B;&#x438;&#x449;&#x435; &#x434;&#x43B;&#x44F; &#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x43D;&#x44B;&#x445; &#x43A;&#x43E;&#x43F;&#x438;&#x439;</li>
    <li>&#x41F;&#x430;&#x43D;&#x435;&#x43B;&#x44C; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F;, API, &#x43C;&#x430;&#x441;&#x448;&#x442;&#x430;&#x431;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;</li>
    <li>&#x41F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x43A;&#x443; 24/7 &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x449;&#x44C; &#x432; &#x432;&#x44B;&#x431;&#x43E;&#x440;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;</li>
  </ul>
</div>

</div><div data-ks-component="registration-form" data-ks-version="1.0.0" data-ks-canonical="true">
<!-- Подключение Tailwind CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">

<!-- Модальное окно результата -->
<div id="responseModal" class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40">
  <div class="bg-white rounded-xl shadow-xl max-w-sm w-full p-6 text-center">
    <h3 id="responseTitle" class="text-lg font-semibold mb-2">&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</h3>
    <p id="responseText" class="text-sm text-gray-700 whitespace-pre-wrap break-words">...</p>
    <button onclick="document.getElementById(&apos;responseModal&apos;).classList.add(&apos;hidden&apos;)" class="mt-4 bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 text-sm">
      &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;
    </button>
  </div>
</div>

<!-- Форма регистрации -->
<section style="background-color: #ffffff; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border-radius: 28px; max-width: 420px; margin: 24px auto; padding: 16px 20px; font-family: &apos;Avenir Next Cyr&apos;, sans-serif;">
  <h2 class="text-3xl font-extrabold mb-2 text-center text-black">&#x421;&#x43E;&#x437;&#x434;&#x430;&#x439;&#x442;&#x435; &#x430;&#x43A;&#x43A;&#x430;&#x443;&#x43D;&#x442;</h2>
  <p class="text-center mb-6 text-blue-900 text-sm">&#x411;&#x44B;&#x441;&#x442;&#x440;&#x430;&#x44F; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x434;&#x43B;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x430; &#x43A; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x435;</p>

  <form id="registerForm" class="space-y-4">
    <input type="email" name="email" placeholder="&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <input type="password" name="pass" placeholder="&#x41F;&#x440;&#x438;&#x434;&#x443;&#x43C;&#x430;&#x439;&#x442;&#x435; &#x43F;&#x430;&#x440;&#x43E;&#x43B;&#x44C;" class="w-full py-3 px-4 rounded-xl border border-blue-200 focus:outline-none focus:ring-2 focus:ring-blue-500 text-sm placeholder-gray-400" required>

    <label class="flex items-center text-xs gap-2 text-gray-700" style="line-height: 1.4;">
      <input type="checkbox" required checked class="rounded border-gray-300 focus:ring-blue-500">
      <span>&#x42F; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x435;&#x43D; &#x441; <a href="https://kingservers24x7.com/wp-content/uploads/2022/07/policy.pdf?ref=kingservers.com" style="color: #1e90ff; text-decoration: underline; font-weight: 500;">&#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x43E;&#x439; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;</a></span>
    </label>

    <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 rounded-xl text-sm tracking-wide transition shadow-md">
      &#x417;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;&#x441;&#x44F;
    </button>
  </form>
</section>

<script>
  async function sha256(message) {
    const msgBuffer = new TextEncoder().encode(message);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    const hashArray = Array.from(new Uint8Array(hashBuffer));
    return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
  }

  document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault();

    const form = e.target;
    const email = form.email.value.trim();
    const pass = form.pass.value.trim();
    const lang = 'ru';
    const type = 'register';

    const hash = await sha256(email + pass + lang + type);

    const payload = JSON.stringify({
      email,
      pass,
      lang,
      type,
      hash
    });

    fetch('https://control.king-servers.com/includes/api/wp/register.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: payload
    })
    .then(async response => {
      const text = await response.text();
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      if (!response.ok || text.includes('error') || !text.trim()) {
        let parsed;
        try {
          parsed = JSON.parse(text);
        } catch (_) {
          parsed = { responseText: text };
        }

        const errorText = parsed.responseText || parsed.message || text || 'Сервер вернул ошибку';
        title.textContent = 'Ошибка при регистрации';
        message.textContent = errorText;
      } else {
        let successMsg;
        try {
          const parsedSuccess = JSON.parse(text);
          successMsg = parsedSuccess.responseText === 'Success' ? 'Ваш аккаунт успешно создан. Добро пожаловать!' : parsedSuccess.responseText || 'Регистрация прошла успешно';
        } catch (_) {
          successMsg = 'Регистрация прошла успешно';
        }
        title.textContent = 'Успешно';
        message.textContent = successMsg;
      } 

      modal.classList.remove('hidden');
    })
    .catch(error => {
      const modal = document.getElementById('responseModal');
      const title = document.getElementById('responseTitle');
      const message = document.getElementById('responseText');

      title.textContent = 'Ошибка при регистрации';
      message.textContent = error.message || 'Произошла ошибка при отправке формы.';
      modal.classList.remove('hidden');
    });
  });
</script>

</div><h2 id="symptoms">&#x41A;&#x43E;&#x433;&#x434;&#x430; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x43C;&#x430;&#x441;&#x43A;&#x438;&#x440;&#x443;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x434; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443; GPU</h2>
<p>&#x421;&#x435;&#x440;&#x432;&#x438;&#x441; LLM &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x431;&#x435;&#x437; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A;, GPU &#x432;&#x438;&#x434;&#x435;&#x43D;, &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x43F;&#x43E;&#x43C;&#x435;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x432;&#x438;&#x434;&#x435;&#x43E;&#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x2014; &#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x440;&#x435;&#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x438;&#x434;&#x451;&#x442; &#x440;&#x44B;&#x432;&#x43A;&#x430;&#x43C;&#x438;, CPU &#x437;&#x430;&#x433;&#x440;&#x443;&#x436;&#x435;&#x43D; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435;&#x43C;, &#x430; &#x440;&#x435;&#x436;&#x438;&#x43C; offload &#x432;&#x43D;&#x435;&#x437;&#x430;&#x43F;&#x43D;&#x43E; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x435;&#x435;. &#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x430;&#x44F; &#x440;&#x435;&#x430;&#x43A;&#x446;&#x438;&#x44F; &#x2014; &#x438;&#x441;&#x43A;&#x430;&#x442;&#x44C; &#x43D;&#x435;&#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x432; CUDA, PCIe &#x438;&#x43B;&#x438; &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x435;. &#x41E;&#x434;&#x43D;&#x430;&#x43A;&#x43E; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x430; &#x43D;&#x435;&#x440;&#x435;&#x434;&#x43A;&#x43E; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x432;&#x44B;&#x448;&#x435;: &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x43D;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x44C; &#x43D;&#x443;&#x436;&#x43D;&#x44B;&#x439; &#x43E;&#x431;&#x44A;&#x451;&#x43C; host RAM, &#x43F;&#x43E;&#x442;&#x43E;&#x43C;&#x443; &#x447;&#x442;&#x43E; &#x435;&#x433;&#x43E; <code>RLIMIT_MEMLOCK</code> &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x441;&#x44F; &#x43D;&#x430; &#x43C;&#x430;&#x43B;&#x435;&#x43D;&#x44C;&#x43A;&#x43E;&#x43C; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x438;.</p><p>Pinned, &#x438;&#x43B;&#x438; page-locked, memory &#x2014; &#x44D;&#x442;&#x43E; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x439; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x44F;&#x434;&#x440;&#x43E; &#x43D;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x44B;&#x433;&#x440;&#x443;&#x437;&#x438;&#x442;&#x44C; &#x438;&#x43B;&#x438; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x441;&#x442;&#x438;&#x442;&#x44C; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x43C; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43E;&#x43C;. CUDA &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x442;&#x430;&#x43A;&#x43E;&#x439; &#x431;&#x443;&#x444;&#x435;&#x440; &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x435;&#x434;&#x441;&#x43A;&#x430;&#x437;&#x443;&#x435;&#x43C;&#x44B;&#x445; DMA-&#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x447; &#x438; &#x430;&#x441;&#x438;&#x43D;&#x445;&#x440;&#x43E;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x43C;&#x435;&#x436;&#x434;&#x443; CPU &#x438; GPU. &#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; <a href="https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/understanding-memory.html?ref=kingservers.com">CUDA Programming Guide</a> &#x43F;&#x440;&#x44F;&#x43C;&#x43E; &#x443;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;: page-locked &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x44C; &#x43D;&#x443;&#x436;&#x43D;&#x430; &#x434;&#x43B;&#x44F; asynchronous copies, &#x430; <code>cudaHostRegister()</code> &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x44C; &#x443;&#x436;&#x435; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D;.</p><p>&#x41D;&#x43E; &#x441;&#x430;&#x43C;&#x430; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C; pinning &#x435;&#x449;&#x451; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x442;&#x430;&#x43B;&#x43E; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x435;&#x435;. &#x412; &#x43F;&#x440;&#x43E;&#x434;&#x435; &#x43D;&#x443;&#x436;&#x43D;&#x44B; &#x434;&#x432;&#x430; &#x43D;&#x435;&#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x43C;&#x44B;&#x445; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x430;. Infrastructure gate &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; &#x43B;&#x438;&#x43C;&#x438;&#x442;, &#x43F;&#x440;&#x430;&#x432;&#x430; &#x438; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43E;&#x431;&#x44A;&#x451;&#x43C; locked memory. Application gate &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x435; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438;: &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x445;&#x43E;&#x43B;&#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430;, TTFT, p95 &#x438;&#x43B;&#x438; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x44C; offload-&#x43F;&#x443;&#x442;&#x438;. &#x415;&#x441;&#x43B;&#x438; &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x43E;&#x442;&#x432;&#x435;&#x442; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439;, &#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x442;&#x44C; memlock &#x434;&#x430;&#x43B;&#x44C;&#x448;&#x435; &#x431;&#x435;&#x441;&#x441;&#x43C;&#x44B;&#x441;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;: &#x443;&#x437;&#x43A;&#x43E;&#x435; &#x43C;&#x435;&#x441;&#x442;&#x43E; &#x443;&#x436;&#x435; &#x432; storage, NUMA, PCIe, CPU preprocessing &#x438;&#x43B;&#x438; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x438; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;.</p><p>&#x41C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43F;&#x43E;&#x441;&#x432;&#x44F;&#x449;&#x451;&#x43D; &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x44D;&#x442;&#x43E;&#x439; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x435;. &#x41E;&#x43D; &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x443; <a href="https://kingservers.com/blog/nvidia-xid-gpu-incident-response/">NVIDIA Xid</a> &#x438; &#x43D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x435;&#x442; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x44F;. &#x417;&#x430;&#x434;&#x430;&#x447;&#x430; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x43D;&#x435;&#x435;: &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; pinned memory &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x44B;&#x43C; &#x440;&#x435;&#x441;&#x443;&#x440;&#x441;&#x43E;&#x43C;, &#x437;&#x430;&#x434;&#x430;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x439; &#x431;&#x44E;&#x434;&#x436;&#x435;&#x442; &#x432; Docker &#x438;&#x43B;&#x438; systemd &#x438; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x432;&#x43E;&#x441;&#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x43C;&#x44B;&#x439; rollback.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/pinned-memory-data-path-inline-01-f2691dc1.webp" class="kg-image" alt="Pinned memory &#x438; memlock &#x434;&#x43B;&#x44F; LLM inference: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/pinned-memory-data-path-inline-01-f2691dc1.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/pinned-memory-data-path-inline-01-f2691dc1.webp 1000w, https://kingservers.com/blog/content/images/2026/08/pinned-memory-data-path-inline-01-f2691dc1.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="pinned-vs-pageable">&#x427;&#x442;&#x43E; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; pinned memory &#x2014; &#x438; &#x447;&#x435;&#x433;&#x43E; &#x43E;&#x43D;&#x430; &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442;</h2>
<p>&#x41E;&#x431;&#x44B;&#x447;&#x43D;&#x430;&#x44F; pageable memory &#x443;&#x434;&#x43E;&#x431;&#x43D;&#x430; &#x44F;&#x434;&#x440;&#x443;: &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x449;&#x430;&#x442;&#x44C; &#x438; &#x43F;&#x440;&#x438; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x43E;&#x441;&#x442;&#x438; &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x442;&#x44C; &#x432; swap. &#x414;&#x43B;&#x44F; &#x43F;&#x435;&#x440;&#x435;&#x434;&#x430;&#x447;&#x438; &#x43D;&#x430; &#x434;&#x438;&#x441;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x439; GPU &#x434;&#x440;&#x430;&#x439;&#x432;&#x435;&#x440;&#x443; &#x447;&#x430;&#x441;&#x442;&#x43E; &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x43F;&#x440;&#x43E;&#x43C;&#x435;&#x436;&#x443;&#x442;&#x43E;&#x447;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x439; &#x431;&#x443;&#x444;&#x435;&#x440;. &#x412; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x435; &#x43B;&#x43E;&#x433;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x43F;&#x443;&#x442;&#x44C; &#xAB;&#x442;&#x435;&#x43D;&#x437;&#x43E;&#x440; &#x438;&#x437; RAM &#x432; GPU&#xBB; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x442;&#x44C; &#x434;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x438; &#x441;&#x438;&#x43D;&#x445;&#x440;&#x43E;&#x43D;&#x438;&#x437;&#x430;&#x446;&#x438;&#x44E;. Pinned memory &#x443;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; &#x44D;&#x442;&#x443; &#x43D;&#x435;&#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x451;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C;: &#x444;&#x438;&#x437;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x435; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x43E;&#x441;&#x442;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x43C;&#x435;&#x441;&#x442;&#x435;, &#x438; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; DMA-&#x430;&#x434;&#x440;&#x435;&#x441;.</p><p>&#x42D;&#x442;&#x43E; &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x432;&#x430;&#x436;&#x43D;&#x43E;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x445;&#x43E;&#x447;&#x435;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x43A;&#x440;&#x44B;&#x442;&#x44C; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x432;&#x44B;&#x447;&#x438;&#x441;&#x43B;&#x435;&#x43D;&#x438;&#x435;&#x43C; &#x447;&#x435;&#x440;&#x435;&#x437; <code>cudaMemcpyAsync()</code>. &#x412; <a href="https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html?ref=kingservers.com">CUDA Best Practices Guide</a> NVIDIA &#x441;&#x432;&#x44F;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x430;&#x441;&#x438;&#x43D;&#x445;&#x440;&#x43E;&#x43D;&#x43D;&#x44B;&#x435; transfers &#x441; page-locked host memory, &#x43D;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442;: pinning &#x2014; &#x442;&#x44F;&#x436;&#x451;&#x43B;&#x430;&#x44F; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F;, &#x430; &#x447;&#x440;&#x435;&#x437;&#x43C;&#x435;&#x440;&#x43D;&#x44B;&#x439; &#x43E;&#x431;&#x44A;&#x451;&#x43C; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x451;&#x43D;&#x43D;&#x44B;&#x445; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x443;&#x445;&#x443;&#x434;&#x448;&#x438;&#x442;&#x44C; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x443; &#x432;&#x441;&#x435;&#x439; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x44B;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#xAB;unlimited&#xBB; &#x43D;&#x435; &#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x442;&#x44E;&#x43D;&#x438;&#x43D;&#x433;&#x43E;&#x43C;. &#x42D;&#x442;&#x43E; &#x43E;&#x442;&#x43A;&#x430;&#x437; &#x43E;&#x442; &#x431;&#x44E;&#x434;&#x436;&#x435;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x434;&#x435;&#x444;&#x438;&#x446;&#x438;&#x442;&#x43D;&#x43E;&#x433;&#x43E; &#x440;&#x435;&#x441;&#x443;&#x440;&#x441;&#x430;.</p><p>&#x41F;&#x440;&#x435;&#x434;&#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440; &#x441; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x438;&#x43C;&#x438; inference-worker. &#x41E;&#x434;&#x438;&#x43D; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x44F;&#x435;&#x442; &#x432;&#x435;&#x441;&#x43E;&#x432;&#x44B;&#x435; &#x431;&#x443;&#x444;&#x435;&#x440;&#x44B;, &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x2014; CPU KV cache, &#x442;&#x440;&#x435;&#x442;&#x438;&#x439; &#x433;&#x43E;&#x442;&#x43E;&#x432;&#x438;&#x442; &#x43C;&#x443;&#x43B;&#x44C;&#x442;&#x438;&#x43C;&#x43E;&#x434;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x432;&#x445;&#x43E;&#x434;&#x44B;. &#x41A;&#x430;&#x436;&#x434;&#x44B;&#x439; &#x43F;&#x43E; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x440;&#x430;&#x437;&#x443;&#x43C;&#x43D;&#x43E;, &#x43D;&#x43E; &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x43E;&#x43D;&#x438; &#x43E;&#x442;&#x43D;&#x438;&#x43C;&#x430;&#x44E;&#x442; &#x443; &#x44F;&#x434;&#x440;&#x430; &#x441;&#x432;&#x43E;&#x431;&#x43E;&#x434;&#x443; reclaim. &#x41F;&#x440;&#x438; &#x432;&#x441;&#x43F;&#x43B;&#x435;&#x441;&#x43A;&#x435; file cache &#x438;&#x43B;&#x438; sidecar-&#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x432;&#x43E;&#x437;&#x43D;&#x438;&#x43A;&#x430;&#x435;&#x442; memory pressure, &#x445;&#x43E;&#x442;&#x44F; <code>free</code> &#x435;&#x449;&#x451; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x443;&#x44E; RAM. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x43B;&#x438; &#x43B;&#x438; &#x432;&#x44B;, &#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x432; <code>VmLck</code>, &#x430; &#x43D;&#x435; &#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x437;&#x430;&#x440;&#x435;&#x437;&#x435;&#x440;&#x432;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B;?</p><p>Pinned memory &#x43D;&#x435; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x44F;&#x435;&#x442; GPU kernels, &#x43D;&#x435; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; NVMe &#x438; &#x43D;&#x435; &#x443;&#x432;&#x435;&#x43B;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x43F;&#x443;&#x441;&#x43A;&#x43D;&#x443;&#x44E; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43D;&#x43E;&#x441;&#x442;&#x44C; PCIe. &#x41E;&#x43D;&#x430; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x430;&#x435;&#x442; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x439; &#x443;&#x447;&#x430;&#x441;&#x442;&#x43E;&#x43A; host&#x2194;device transfer. &#x415;&#x441;&#x43B;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x446;&#x435;&#x43B;&#x438;&#x43A;&#x43E;&#x43C; &#x436;&#x438;&#x432;&#x451;&#x442; &#x432; VRAM &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x438; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B; &#x43F;&#x43E;&#x447;&#x442;&#x438; &#x43D;&#x435; &#x434;&#x432;&#x438;&#x433;&#x430;&#x44E;&#x442; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; CPU, &#x43F;&#x440;&#x438;&#x440;&#x43E;&#x441;&#x442; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x43D;&#x435;&#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x44B;&#x43C;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x444;&#x43E;&#x440;&#x43C;&#x443;&#x43B;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x433;&#x438;&#x43F;&#x43E;&#x442;&#x435;&#x437;&#x443;: &#x43A;&#x430;&#x43A;&#x43E;&#x439; &#x431;&#x443;&#x444;&#x435;&#x440; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F;, &#x432; &#x43A;&#x430;&#x43A;&#x43E;&#x439; &#x444;&#x430;&#x437;&#x435; &#x43E;&#x43D; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x435;&#x442;&#x441;&#x44F; &#x438; &#x43A;&#x430;&#x43A;&#x430;&#x44F; &#x43F;&#x440;&#x438;&#x43A;&#x43B;&#x430;&#x434;&#x43D;&#x430;&#x44F; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x430; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x430; &#x43E;&#x442;&#x440;&#x435;&#x430;&#x433;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;.</p><style>
.ks-widget{font-family:'Avenir Next Cyr',sans-serif;background:#F9FAFB;border:1px solid #BFDBFE;border-radius:12px;padding:18px 20px;margin:20px 0;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.ks-widget h3{font-size:17px;font-weight:700;color:#0F172A;margin:0 0 10px}
.ks-widget .tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.ks-widget .tab-btn{border:1px solid #CBD5E1;background:#fff;color:#1F2937;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}
.ks-widget .tab-btn.on{background:#2563EB;color:#fff;border-color:#1E40AF}
.ks-widget .panel{display:none;font-size:15px;color:#374151;line-height:1.65}
.ks-widget .panel.on{display:block}
.ks-widget label{display:block;font-size:13px;color:#4B5563;margin:10px 0 4px;font-weight:500}
.ks-widget select{max-width:420px;width:100%;padding:8px 10px;border:1px solid #CBD5E1;border-radius:8px;font-size:15px;box-sizing:border-box}
.ks-widget .out{font-weight:600;color:#2563EB;margin-top:10px;font-size:15px;white-space:pre-wrap;line-height:1.5}
</style><div class="ks-widget" id="ks-sel-mem8k2p"><h3>&#x41D;&#x443;&#x436;&#x435;&#x43D; &#x43B;&#x438; &#x432;&#x430;&#x43C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; memlock?</h3>
<label>&#x421;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x439;</label><select data-s><option value="plain">&#x41C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x446;&#x435;&#x43B;&#x438;&#x43A;&#x43E;&#x43C; &#x432; VRAM</option><option value="weights">Weight offload &#x432; CPU RAM</option><option value="kv">KV cache offload</option><option value="unknown">&#x41F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x43D;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43E;</option></select>
<div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-sel-mem8k2p');if(!r)return;var m={"plain":"Сначала проверьте фактический VmLck: большой лимит может не понадобиться.","weights":"Бюджет считайте от объёма реально закрепляемых весов плюс измеренный запас, а не от всей RAM.","kv":"Проверяйте пиковый locked memory при рабочей concurrency и длинном контексте.","unknown":"Не открывайте unlimited: запустите probe и canary, затем задайте конечный лимит."};function u(){r.querySelector('[data-o]').textContent=m[r.querySelector('[data-s]').value]||'';}r.querySelector('[data-s]').onchange=u;u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/memlock-linux-gate-inline-02-7d708cdb.webp" class="kg-image" alt="Pinned memory &#x438; memlock &#x434;&#x43B;&#x44F; LLM inference: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/memlock-linux-gate-inline-02-7d708cdb.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/memlock-linux-gate-inline-02-7d708cdb.webp 1000w, https://kingservers.com/blog/content/images/2026/08/memlock-linux-gate-inline-02-7d708cdb.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="baseline">Baseline: &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x43B;&#x438;&#x43C;&#x438;&#x442;, &#x43F;&#x440;&#x430;&#x432;&#x430; &#x438; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; locked &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B;</h2>
<p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x434;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; unit-&#x444;&#x430;&#x439;&#x43B;&#x43E;&#x432; &#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x43D;&#x44B;&#x445; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x43E;&#x432;. &#x421;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; soft &#x438; hard limit &#x438;&#x437; &#x442;&#x43E;&#x433;&#x43E; &#x436;&#x435; &#x43E;&#x43A;&#x440;&#x443;&#x436;&#x435;&#x43D;&#x438;&#x44F;, &#x433;&#x434;&#x435; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442; inference-&#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;. &#x417;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x432; &#x432;&#x430;&#x448;&#x435;&#x439; SSH-&#x441;&#x435;&#x441;&#x441;&#x438;&#x438; &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; Docker, Podman &#x438;&#x43B;&#x438; systemd service: &#x43A;&#x430;&#x436;&#x434;&#x44B;&#x439; launcher &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; &#x441;&#x43E;&#x431;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43D;&#x44B;&#x439; rlimit. Linux &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442; <code>RLIMIT_MEMLOCK</code> &#x43A;&#x430;&#x43A; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x43E; &#x431;&#x430;&#x439;&#x442;&#x43E;&#x432;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x435; &#x43D;&#x435;&#x43F;&#x440;&#x438;&#x432;&#x438;&#x43B;&#x435;&#x433;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x44C; &#x432; RAM; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x43E;&#x43A;&#x440;&#x443;&#x433;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x43E; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;&#x443; &#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B;. &#x42D;&#x442;&#x43E; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x43E;&#x43F;&#x438;&#x441;&#x430;&#x43D;&#x43E; &#x432; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; <a href="https://man7.org/linux/man-pages/man2/getrlimit.2.html?ref=kingservers.com">&#x441;&#x442;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x435; getrlimit(2)</a>.</p><p>&#x421;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x43D;&#x430;&#x431;&#x43E;&#x440; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434; &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x443;. &#x41E;&#x43D; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x439; &#x43E;&#x431;&#x43E;&#x43B;&#x43E;&#x447;&#x43A;&#x438;, &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x433;&#x43E; PID &#x438; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x43E;&#x431;&#x44A;&#x451;&#x43C; locked pages. &#x417;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x43D;&#x430; canary-&#x443;&#x437;&#x43B;&#x435; &#x43F;&#x43E;&#x434; &#x442;&#x435;&#x43C; &#x436;&#x435; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x435;&#x43C; &#x438; &#x447;&#x435;&#x440;&#x435;&#x437; &#x442;&#x43E;&#x442; &#x436;&#x435; launcher, &#x447;&#x442;&#x43E; &#x438; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">bash</span><span class="ks-canonical-code-block__filename">memlock-baseline.sh</span></div>
<pre class="ks-canonical-code-block__pre"><code>set -euo pipefail
ulimit -Sl
ulimit -Hl
grep -i &quot;Max locked memory&quot; /proc/self/limits

pid=&quot;$(pgrep -n -f &apos;vllm|python.*serve&apos;)&quot;
grep -E &apos;^(Name|VmRSS|VmLck|VmSwap):&apos; &quot;/proc/$pid/status&quot;
grep -E &apos;^(Rss|Locked|Swap):&apos; &quot;/proc/$pid/smaps_rollup&quot;

systemctl show llm-inference.service   -p LimitMEMLOCK -p LimitMEMLOCKSoft -p MemoryCurrent -p MemoryMax</code></pre>
<div class="ks-canonical-code-block__caption">Read-only baseline &#x434;&#x43B;&#x44F; memlock</div>
</div>
<p><code>VmLck</code> &#x43E;&#x442;&#x432;&#x435;&#x447;&#x430;&#x435;&#x442; &#x43D;&#x430; &#x443;&#x437;&#x43A;&#x438;&#x439; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;: &#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x443;&#x436;&#x435; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x43B; &#x447;&#x435;&#x440;&#x435;&#x437; &#x43C;&#x435;&#x445;&#x430;&#x43D;&#x438;&#x437;&#x43C;&#x44B; &#x441;&#x435;&#x43C;&#x435;&#x439;&#x441;&#x442;&#x432;&#x430; <code>mlock</code>. &#x41E;&#x43D; &#x43D;&#x435; &#x440;&#x430;&#x432;&#x435;&#x43D; RSS, CPU offload budget &#x438;&#x43B;&#x438; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440;&#x443; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;. &#x415;&#x441;&#x43B;&#x438; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x451;&#x442; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; worker-&#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x43E;&#x432;, &#x441;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x43F;&#x43E; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C;&#x443; PID; &#x43E;&#x434;&#x438;&#x43D; master &#x441; &#x43D;&#x443;&#x43B;&#x451;&#x43C; &#x43D;&#x435; &#x438;&#x441;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x442; &#x434;&#x435;&#x441;&#x44F;&#x442;&#x43A;&#x438; &#x433;&#x438;&#x433;&#x430;&#x431;&#x430;&#x439;&#x442; &#x432; &#x434;&#x43E;&#x447;&#x435;&#x440;&#x43D;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x435;.</p><p>&#x414;&#x43B;&#x44F; infrastructure gate &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x435;&#x449;&#x451; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x44B;&#x439; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442;. &#x41F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x43E; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x44F;&#x442;&#x44C; &#x431;&#x443;&#x444;&#x435;&#x440; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x440;&#x430;&#x437;&#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x431;&#x44E;&#x434;&#x436;&#x435;&#x442;&#x430; &#x438; &#x43F;&#x440;&#x435;&#x434;&#x441;&#x43A;&#x430;&#x437;&#x443;&#x435;&#x43C;&#x43E; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x442;&#x44C; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x443; &#x43F;&#x440;&#x438; &#x43F;&#x43E;&#x43F;&#x44B;&#x442;&#x43A;&#x435; &#x432;&#x44B;&#x439;&#x442;&#x438; &#x437;&#x430; soft limit. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x442;&#x435;&#x441;&#x442; &#x43E;&#x431;&#x43D;&#x430;&#x440;&#x443;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x44B;&#x439; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x43B; <code>CAP_IPC_LOCK</code> &#x438; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438; &#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x439; rlimit. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#xAB;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#xBB;, &#x43D;&#x43E; &#x438; &#xAB;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442;&#xBB;.</p><p>&#x41D;&#x435; &#x434;&#x435;&#x43B;&#x430;&#x439;&#x442;&#x435; &#x432;&#x44B;&#x432;&#x43E;&#x434; &#x43F;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x43C;&#x443; cold start: page cache, lazy imports &#x438; JIT-&#x43A;&#x43E;&#x43C;&#x43F;&#x438;&#x43B;&#x44F;&#x446;&#x438;&#x44F; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x44E;&#x442;&#x441;&#x44F; &#x441; transfer time. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; baseline-&#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x44E;, &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x43E;&#x432; &#x43F;&#x440;&#x438;&#x43A;&#x43B;&#x430;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x430;, kernel/driver version &#x438; digest &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x43D;&#x43E;&#x433;&#x43E; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x430;. &#x42D;&#x442;&#x430; &#x434;&#x438;&#x441;&#x446;&#x438;&#x43F;&#x43B;&#x438;&#x43D;&#x430; &#x43E;&#x442;&#x43B;&#x438;&#x447;&#x430;&#x435;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x438;&#x435; &#x43E;&#x442; &#x443;&#x434;&#x430;&#x447;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x44F;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">python</span><span class="ks-canonical-code-block__filename">mlock_probe.py</span></div>
<pre class="ks-canonical-code-block__pre"><code>import ctypes
import errno
import mmap
import resource
import sys

size = int(sys.argv[1])
soft, hard = resource.getrlimit(resource.RLIMIT_MEMLOCK)
print({&quot;requested&quot;: size, &quot;soft&quot;: soft, &quot;hard&quot;: hard})

buf = mmap.mmap(-1, size)
address = ctypes.addressof(ctypes.c_char.from_buffer(buf))
libc = ctypes.CDLL(None, use_errno=True)

rc = libc.mlock(ctypes.c_void_p(address), ctypes.c_size_t(size))
if rc != 0:
    code = ctypes.get_errno()
    raise OSError(code, errno.errorcode.get(code, &quot;mlock failed&quot;))

print(&quot;mlock: PASS&quot;)
libc.munlock(ctypes.c_void_p(address), ctypes.c_size_t(size))</code></pre>
<div class="ks-canonical-code-block__caption">&#x41F;&#x43E;&#x43B;&#x43E;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x438; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; probe &#x434;&#x43B;&#x44F; RLIMIT_MEMLOCK</div>
</div>
<figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/docker-memlock-container-inline-03-b130b6f0.webp" class="kg-image" alt="Pinned memory &#x438; memlock &#x434;&#x43B;&#x44F; LLM inference: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/docker-memlock-container-inline-03-b130b6f0.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/docker-memlock-container-inline-03-b130b6f0.webp 1000w, https://kingservers.com/blog/content/images/2026/08/docker-memlock-container-inline-03-b130b6f0.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="containers">Docker &#x438; Compose: &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x439; ulimit &#x432;&#x43C;&#x435;&#x441;&#x442;&#x43E; &#x43B;&#x438;&#x448;&#x43D;&#x435;&#x439; capability</h2>
<p>&#x412; Docker &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430; &#x438; <code>memlock</code> &#x440;&#x435;&#x448;&#x430;&#x44E;&#x442; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x437;&#x430;&#x434;&#x430;&#x447;&#x438;. <code>--memory</code> &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442; &#x43E;&#x431;&#x449;&#x438;&#x439; &#x43E;&#x431;&#x44A;&#x451;&#x43C; memory cgroup, &#x430; <code>--ulimit memlock</code> &#x437;&#x430;&#x434;&#x430;&#x451;&#x442; process rlimit. &#x41C;&#x43E;&#x436;&#x43D;&#x43E; &#x438;&#x43C;&#x435;&#x442;&#x44C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; <code>--memory</code> &#x438; &#x432;&#x441;&#x451; &#x440;&#x430;&#x432;&#x43D;&#x43E; &#x43F;&#x430;&#x434;&#x430;&#x442;&#x44C; &#x43D;&#x430; &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; pinned allocation. &#x41E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x430;&#x44F; &#x43A;&#x43E;&#x43C;&#x431;&#x438;&#x43D;&#x430;&#x446;&#x438;&#x44F; &#x435;&#x449;&#x451; &#x43E;&#x43F;&#x430;&#x441;&#x43D;&#x435;&#x435;: &#x432;&#x44B;&#x441;&#x43E;&#x43A;&#x438;&#x439; memlock &#x43F;&#x440;&#x438; &#x442;&#x435;&#x441;&#x43D;&#x43E;&#x43C; cgroup-&#x431;&#x44E;&#x434;&#x436;&#x435;&#x442;&#x435; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x44C; &#x43F;&#x440;&#x438;&#x431;&#x43B;&#x438;&#x436;&#x435;&#x43D;&#x438;&#x435; OOM.</p><p>&#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; <a href="https://docs.docker.com/reference/cli/docker/container/run?ref=kingservers.com">&#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x44F; docker container run</a> &#x43F;&#x435;&#x440;&#x435;&#x447;&#x438;&#x441;&#x43B;&#x44F;&#x435;&#x442; <code>memlock</code> &#x43A;&#x430;&#x43A; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; locked-in-memory address space. Compose &#x43F;&#x43E;&#x434;&#x434;&#x435;&#x440;&#x436;&#x438;&#x432;&#x430;&#x435;&#x442; soft/hard mapping &#x447;&#x435;&#x440;&#x435;&#x437; <a href="https://docs.docker.com/reference/compose-file/services/?ref=kingservers.com#ulimits">services.ulimits</a>. &#x417;&#x430;&#x434;&#x430;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x43E;, &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x435;&#x43D;&#x43D;&#x43E;&#x435; &#x438;&#x437; peak <code>VmLck</code> &#x43D;&#x430; canary, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; &#x44D;&#x43A;&#x441;&#x43F;&#x43B;&#x443;&#x430;&#x442;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x44B;&#x439; &#x437;&#x430;&#x43F;&#x430;&#x441;. &#x41D;&#x435; &#x43A;&#x43E;&#x43F;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; 8 GiB &#x438;&#x437; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;&#x430;, &#x435;&#x441;&#x43B;&#x438; &#x432;&#x430;&#x448; offload &#x431;&#x443;&#x444;&#x435;&#x440; &#x440;&#x430;&#x432;&#x435;&#x43D; 40 GiB, &#x438; &#x43D;&#x435; &#x441;&#x442;&#x430;&#x432;&#x44C;&#x442;&#x435; unlimited &#x43D;&#x430; &#x443;&#x437;&#x43B;&#x435; &#x441; &#x43D;&#x435;&#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x438;&#x43C;&#x438; &#x430;&#x440;&#x435;&#x43D;&#x434;&#x430;&#x442;&#x43E;&#x440;&#x430;&#x43C;&#x438;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">yaml</span><span class="ks-canonical-code-block__filename">compose.yaml</span></div>
<pre class="ks-canonical-code-block__pre"><code>services:
  inference:
    image: registry.example/vllm@sha256:PINNED_DIGEST
    gpus: all
    ulimits:
      memlock:
        soft: 8589934592
        hard: 8589934592
    mem_limit: 48g
    security_opt:
      - no-new-privileges:true
    command:
      - vllm
      - serve
      - /models/current</code></pre>
<div class="ks-canonical-code-block__caption">Finite memlock &#x432; Docker Compose</div>
</div>
<p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; <code>docker compose up -d</code> &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; baseline-&#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434;&#x44B; &#x447;&#x435;&#x440;&#x435;&#x437; <code>docker exec</code>. &#x415;&#x441;&#x43B;&#x438; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x43F;&#x43E;-&#x43F;&#x440;&#x435;&#x436;&#x43D;&#x435;&#x43C;&#x443; &#x432;&#x438;&#x434;&#x435;&#x43D; &#x441;&#x442;&#x430;&#x440;&#x44B;&#x439; &#x43B;&#x438;&#x43C;&#x438;&#x442;, &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440; &#x43C;&#x43E;&#x433; &#x43D;&#x435; &#x431;&#x44B;&#x442;&#x44C; &#x43F;&#x435;&#x440;&#x435;&#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;, &#x430; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x437;&#x430;&#x43F;&#x443;&#x449;&#x435;&#x43D;. &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; <code>docker inspect</code>, digest &#x43E;&#x431;&#x440;&#x430;&#x437;&#x430; &#x438; effective <code>/proc/1/limits</code>. Configuration-as-code &#x431;&#x435;&#x437; effective-state &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x442; &#x43D;&#x435;&#x43F;&#x440;&#x438;&#x44F;&#x442;&#x43D;&#x443;&#x44E; &#x441;&#x435;&#x440;&#x443;&#x44E; &#x437;&#x43E;&#x43D;&#x443;.</p><p>Capability <code>IPC_LOCK</code> &#x434;&#x430;&#x451;&#x442; &#x43F;&#x440;&#x430;&#x432;&#x43E;, &#x441;&#x432;&#x44F;&#x437;&#x430;&#x43D;&#x43D;&#x43E;&#x435; &#x441; memory locking. &#x41D;&#x43E; <a href="https://man7.org/linux/man-pages/man2/munlock.2.html?ref=kingservers.com">mlock(2)</a> &#x43E;&#x442;&#x43C;&#x435;&#x447;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x432;&#x438;&#x43B;&#x435;&#x433;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x441; <code>CAP_IPC_LOCK</code> &#x43D;&#x435; &#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; <code>RLIMIT_MEMLOCK</code> &#x442;&#x430;&#x43A; &#x436;&#x435;, &#x43A;&#x430;&#x43A; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x439;. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x439;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x439; ulimit &#x431;&#x435;&#x437; capability. &#x414;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; capability &#x43B;&#x438;&#x448;&#x44C; &#x442;&#x43E;&#x433;&#x434;&#x430;, &#x43A;&#x43E;&#x433;&#x434;&#x430; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x430;&#x44F; &#x431;&#x438;&#x431;&#x43B;&#x438;&#x43E;&#x442;&#x435;&#x43A;&#x430; &#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x44C; &#x443;&#x433;&#x440;&#x43E;&#x437; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x442;&#x440;&#x435;&#x431;&#x443;&#x44E;&#x442; &#x435;&#x451;, &#x438; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435;, &#x447;&#x442;&#x43E; &#x432;&#x44B; &#x43D;&#x435; &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44F;&#x43B;&#x438; &#x432;&#x435;&#x440;&#x445;&#x43D;&#x44E;&#x44E; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443;.</p><div class="ks-widget" id="ks-tab-run4m9q"><h3>&#x413;&#x434;&#x435; &#x437;&#x430;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; &#x43B;&#x438;&#x43C;&#x438;&#x442;</h3>
<div class="tabs"><button type="button" class="tab-btn on" data-t="shell">Shell</button><button type="button" class="tab-btn" data-t="docker">Docker</button><button type="button" class="tab-btn" data-t="systemd">systemd</button></div>
<div class="panel on" data-p="shell">&#x41F;&#x43E;&#x434;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x434;&#x43B;&#x44F; &#x434;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x438; &#x440;&#x430;&#x437;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x442;&#x435;&#x441;&#x442;&#x430;. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x43D;&#x43E;&#x432;&#x43E;&#x433;&#x43E; &#x432;&#x445;&#x43E;&#x434;&#x430; &#x438;&#x43B;&#x438; &#x440;&#x435;&#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C;&#x441;&#x44F;.</div><div class="panel" data-p="docker">&#x424;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; soft/hard ulimit &#x432; &#x434;&#x435;&#x43A;&#x43B;&#x430;&#x440;&#x430;&#x446;&#x438;&#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430; &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x435;&#x433;&#x43E; &#x438;&#x437;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430;.</div><div class="panel" data-p="systemd">&#x414;&#x43B;&#x44F; &#x43F;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430; &#x437;&#x430;&#x434;&#x430;&#x432;&#x430;&#x439;&#x442;&#x435; LimitMEMLOCK &#x432; unit override &#x438; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x439;&#x442;&#x435; EffectiveLimit &#x43F;&#x43E;&#x441;&#x43B;&#x435; restart.</div>
<script>(function(){var r=document.getElementById('ks-tab-run4m9q');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/systemd-memlock-layers-inline-04-aa611e70.webp" class="kg-image" alt="Pinned memory &#x438; memlock &#x434;&#x43B;&#x44F; LLM inference: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/systemd-memlock-layers-inline-04-aa611e70.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/systemd-memlock-layers-inline-04-aa611e70.webp 1000w, https://kingservers.com/blog/content/images/2026/08/systemd-memlock-layers-inline-04-aa611e70.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="systemd">systemd: &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x443; &#x432; unit &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; effective state</h2>
<p>&#x414;&#x43B;&#x44F; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430; &#x431;&#x435;&#x437; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430; rlimit &#x43B;&#x443;&#x447;&#x448;&#x435; &#x434;&#x435;&#x440;&#x436;&#x430;&#x442;&#x44C; &#x440;&#x44F;&#x434;&#x43E;&#x43C; &#x441; &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x43C;&#x438; production-&#x43E;&#x433;&#x440;&#x430;&#x43D;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x44F;&#x43C;&#x438;. Drop-in &#x43F;&#x435;&#x440;&#x435;&#x436;&#x438;&#x432;&#x451;&#x442; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; package unit &#x438; &#x431;&#x443;&#x434;&#x435;&#x442; &#x432;&#x438;&#x434;&#x435;&#x43D; &#x432; &#x440;&#x435;&#x432;&#x44C;&#x44E;. <code>LimitMEMLOCK=</code> &#x437;&#x430;&#x434;&#x430;&#x451;&#x442; soft &#x438; hard limit &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430;; &#x435;&#x441;&#x43B;&#x438; &#x43D;&#x443;&#x436;&#x43D;&#x44B; &#x440;&#x430;&#x437;&#x43D;&#x44B;&#x435; &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F;, systemd &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x435;&#x442; &#x43F;&#x430;&#x440;&#x443; <code>soft:hard</code>. &#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43E;&#x431;&#x44F;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B; <code>daemon-reload</code> &#x438; restart: &#x443;&#x436;&#x435; &#x437;&#x430;&#x43F;&#x443;&#x449;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x43D;&#x435; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x443;&#x435;&#x442; &#x43D;&#x43E;&#x432;&#x44B;&#x439; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;.</p><p>&#x420;&#x430;&#x437;&#x43C;&#x435;&#x440; &#x441;&#x447;&#x438;&#x442;&#x430;&#x439;&#x442;&#x435; &#x43E;&#x442; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x433;&#x43E; &#x43F;&#x438;&#x43A;&#x430;. &#x414;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;, worker &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x43E; &#x434;&#x435;&#x440;&#x436;&#x438;&#x442; 5,6 GiB locked pages &#x43D;&#x430; &#x446;&#x435;&#x43B;&#x435;&#x432;&#x43E;&#x439; concurrency, &#x430; &#x43F;&#x440;&#x438; reload &#x43A;&#x440;&#x430;&#x442;&#x43A;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432;&#x44B;&#x448;&#x435;. &#x412;&#x44B; &#x432;&#x44B;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442;&#x435; finite budget, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x439; &#x43F;&#x43E;&#x43A;&#x440;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x44B;&#x439; reload, &#x43D;&#x43E; &#x43D;&#x435; &#x43F;&#x43E;&#x437;&#x432;&#x43E;&#x43B;&#x44F;&#x435;&#x442; &#x43E;&#x434;&#x43D;&#x43E;&#x43C;&#x443; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x443; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x44C; &#x432;&#x441;&#x44E; RAM. &#x42D;&#x442;&#x43E; &#x43D;&#x435; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x444;&#x43E;&#x440;&#x43C;&#x443;&#x43B;&#x430;: &#x43D;&#x430; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x43C; backend &#x438;&#x43B;&#x438; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x44F; allocator &#x43F;&#x440;&#x43E;&#x444;&#x438;&#x43B;&#x44C; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x441;&#x44F;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">ini</span><span class="ks-canonical-code-block__filename">llm-inference.service.d/20-memlock.conf</span></div>
<pre class="ks-canonical-code-block__pre"><code>[Service]
LimitMEMLOCK=8G
MemoryHigh=44G
MemoryMax=48G
NoNewPrivileges=yes</code></pre>
<div class="ks-canonical-code-block__caption">systemd drop-in &#x434;&#x43B;&#x44F; finite memlock</div>
</div>
<p>&#x417;&#x430;&#x442;&#x435;&#x43C; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x441;&#x440;&#x430;&#x437;&#x443; &#x442;&#x440;&#x438; &#x441;&#x43B;&#x43E;&#x44F;: <code>systemctl show</code>, <code>/proc/$PID/limits</code> &#x438; <code>VmLck</code>. &#x41F;&#x435;&#x440;&#x432;&#x44B;&#x439; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; &#x434;&#x435;&#x43A;&#x43B;&#x430;&#x440;&#x430;&#x446;&#x438;&#x44E; manager, &#x432;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x2014; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x439; process limit, &#x442;&#x440;&#x435;&#x442;&#x438;&#x439; &#x2014; &#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x435; &#x43F;&#x43E;&#x442;&#x440;&#x435;&#x431;&#x43B;&#x435;&#x43D;&#x438;&#x435;. &#x417;&#x435;&#x43B;&#x451;&#x43D;&#x44B;&#x43C; infrastructure gate &#x441;&#x447;&#x438;&#x442;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x438;&#x445; &#x441;&#x43E;&#x433;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x43F;&#x43B;&#x44E;&#x441; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x44B;&#x439; probe &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x431;&#x44E;&#x434;&#x436;&#x435;&#x442;&#x430;.</p><p><code>MemoryHigh</code> &#x438; <code>MemoryMax</code> &#x437;&#x434;&#x435;&#x441;&#x44C; &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442; memlock. &#x41E;&#x43D;&#x438; &#x437;&#x430;&#x434;&#x430;&#x44E;&#x442; &#x43E;&#x431;&#x449;&#x443;&#x44E; &#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x443; cgroup &#x438; &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x430;&#x44E;&#x442; &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x444;&#x43B;&#x438;&#x43A;&#x442; &#x43C;&#x435;&#x436;&#x434;&#x443; pinned buffer, RSS, page cache &#x438; sidecar-&#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430;&#x43C;&#x438;. &#x418;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x442;&#x430;&#x43A;&#x43E;&#x439; &#x43A;&#x43E;&#x43D;&#x444;&#x43B;&#x438;&#x43A;&#x442; &#x447;&#x430;&#x441;&#x442;&#x43E; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x43A;&#x430;&#x43A; &#xAB;GPU &#x43E;&#x442;&#x432;&#x430;&#x43B;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x434; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x43E;&#x439;&#xBB;, &#x445;&#x43E;&#x442;&#x44F; &#x443;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x441;&#x442;&#x432;&#x43E; &#x438;&#x441;&#x43F;&#x440;&#x430;&#x432;&#x43D;&#x43E;. &#x414;&#x43B;&#x44F; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x445; I/O-&#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43E;&#x43A; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x43E; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x439;&#x442;&#x438; runbook &#x43F;&#x43E; <a href="https://kingservers.com/blog/io-isolation-llm-cgroup-v2-systemd/">cgroup v2 &#x438; systemd &#x43D;&#x430; LLM-&#x443;&#x437;&#x43B;&#x435;</a>.</p><p>Rollback &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x431;&#x44B;&#x442;&#x44C; &#x441;&#x43A;&#x443;&#x447;&#x43D;&#x44B;&#x43C;: &#x432;&#x435;&#x440;&#x43D;&#x443;&#x442;&#x44C; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x439; drop-in, &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x44C; reload/restart &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x44C; baseline. &#x41D;&#x435; &#x43E;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x439; <code>LimitMEMLOCK=infinity</code> &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x440;&#x430;&#x441;&#x441;&#x43B;&#x435;&#x434;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x44F; &#x2014; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x43F;&#x430;&#x440;&#x430;&#x43C;&#x435;&#x442;&#x440;&#x44B; &#x438;&#x43C;&#x435;&#x44E;&#x442; &#x43F;&#x440;&#x438;&#x432;&#x44B;&#x447;&#x43A;&#x443; &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x430;&#x440;&#x445;&#x438;&#x442;&#x435;&#x43A;&#x442;&#x443;&#x440;&#x43E;&#x439;.</p><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/vllm-cpu-offload-inline-05-81a8594d.webp" class="kg-image" alt="Pinned memory &#x438; memlock &#x434;&#x43B;&#x44F; LLM inference: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/vllm-cpu-offload-inline-05-81a8594d.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/vllm-cpu-offload-inline-05-81a8594d.webp 1000w, https://kingservers.com/blog/content/images/2026/08/vllm-cpu-offload-inline-05-81a8594d.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="vllm-offload">vLLM offload: &#x433;&#x434;&#x435; pinned memory &#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x441;&#x44F; &#x447;&#x430;&#x441;&#x442;&#x44C;&#x44E; data path</h2>
<p>&#x414;&#x43B;&#x44F; LLM inference pinned memory &#x43E;&#x441;&#x43E;&#x431;&#x435;&#x43D;&#x43D;&#x43E; &#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x430; &#x432; &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x44F;&#x445;, &#x433;&#x434;&#x435; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x43F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x430;&#x44E;&#x442; &#x445;&#x43E;&#x434;&#x438;&#x442;&#x44C; &#x43C;&#x435;&#x436;&#x434;&#x443; host RAM &#x438; GPU &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;. &#x42D;&#x442;&#x43E; weight offload &#x438; CPU KV-cache offload. &#x412; &#x430;&#x43A;&#x442;&#x443;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x446;&#x438;&#x438; vLLM &#x43A;&#x43E;&#x434; offloader &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x442; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x43E;&#x441;&#x442;&#x44C; pinning &#x438; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; override <code>VLLM_WEIGHT_OFFLOADING_DISABLE_PIN_MEMORY</code>; &#x43D;&#x430; unified-memory &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430;&#x445; &#x432;&#x440;&#x43E;&#x434;&#x435; GH200 pinning &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x440;&#x430;&#x441;&#x445;&#x43E;&#x434;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43E;&#x431;&#x449;&#x438;&#x439; memory budget &#x438;&#x43D;&#x430;&#x447;&#x435;, &#x43F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; &#x442;&#x430;&#x43C; &#x435;&#x433;&#x43E; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C;. &#x42D;&#x442;&#x43E; &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x438;&#x439; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440; &#x442;&#x43E;&#x433;&#x43E;, &#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443; &#x43E;&#x434;&#x438;&#x43D; &#x440;&#x435;&#x446;&#x435;&#x43F;&#x442; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442;&#x441;&#x44F; &#x43D;&#x430; &#x43B;&#x44E;&#x431;&#x443;&#x44E; &#x430;&#x440;&#x445;&#x438;&#x442;&#x435;&#x43A;&#x442;&#x443;&#x440;&#x443;.</p><p>CPU KV offload &#x432; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x439; &#x432;&#x435;&#x442;&#x43A;&#x435; vLLM &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x443;&#x435;&#x442; mmap-&#x440;&#x435;&#x433;&#x438;&#x43E;&#x43D; &#x447;&#x435;&#x440;&#x435;&#x437; <code>cudaHostRegister</code>, &#x430; &#x43F;&#x440;&#x438; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x43E;&#x43C; pinning &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442; &#x43E; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x43C; &#x443;&#x445;&#x443;&#x434;&#x448;&#x435;&#x43D;&#x438;&#x438; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438;. &#x42D;&#x442;&#x438; &#x434;&#x435;&#x442;&#x430;&#x43B;&#x438; &#x432;&#x438;&#x434;&#x43D;&#x44B; &#x432; &#x43E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; API reference &#x434;&#x43B;&#x44F; <a href="https://docs.vllm.ai/en/stable/api/vllm/v1/kv_offload/cpu/gpu_worker/?ref=kingservers.com">CPU offload worker</a>. &#x41E;&#x434;&#x43D;&#x430;&#x43A;&#x43E; offload-&#x43A;&#x43E;&#x434; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x43E; &#x440;&#x430;&#x437;&#x432;&#x438;&#x432;&#x430;&#x435;&#x442;&#x441;&#x44F;. &#x417;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44E; vLLM &#x438; container digest, &#x441;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; flags &#x447;&#x435;&#x440;&#x435;&#x437; <code>vllm serve --help</code> &#x438;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x432; &#x432;&#x430;&#x448;&#x435;&#x43C; &#x43E;&#x431;&#x440;&#x430;&#x437;&#x435; &#x438; &#x43C;&#x430;&#x440;&#x43A;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x43F;&#x443;&#x442;&#x438; &#x432; change record.</p><p>Application gate &#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x441;&#x44F; &#x432;&#x43E;&#x43A;&#x440;&#x443;&#x433; &#x432;&#x430;&#x448;&#x435;&#x433;&#x43E; &#x440;&#x430;&#x431;&#x43E;&#x447;&#x435;&#x433;&#x43E; &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x44F;, &#x430; &#x43D;&#x435; synthetic copy alone. &#x414;&#x43B;&#x44F; weight offload &#x438;&#x437;&#x43C;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435; cold start, TTFT &#x43F;&#x435;&#x440;&#x432;&#x43E;&#x433;&#x43E; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x430; &#x438; steady-state p95. &#x414;&#x43B;&#x44F; KV offload &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44C;&#x442;&#x435; &#x434;&#x43B;&#x438;&#x43D;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x438; concurrency, &#x43F;&#x440;&#x438; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x445; CPU cache &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442;&#x441;&#x44F;. &#x41F;&#x430;&#x440;&#x430;&#x43B;&#x43B;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x441;&#x43D;&#x438;&#x43C;&#x430;&#x439;&#x442;&#x435; <code>VmLck</code>, PCIe traffic, CPU utilization &#x438; memory pressure. &#x415;&#x441;&#x43B;&#x438; pinned allocation &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;, &#x43D;&#x43E; TTFT &#x43D;&#x435; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x430;&#x435;&#x442;&#x441;&#x44F;, infrastructure gate &#x443;&#x436;&#x435; &#x43D;&#x435; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x44B;&#x439; &#x43F;&#x43E;&#x434;&#x43E;&#x437;&#x440;&#x435;&#x432;&#x430;&#x435;&#x43C;&#x44B;&#x439;.</p><p>&#x421;&#x440;&#x430;&#x432;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x43D;&#x43E; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x442;&#x44C; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x44C;: &#x442;&#x43E;&#x442; &#x436;&#x435; image &#x438; model revision, &#x43D;&#x43E; offload &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x451;&#x43D; &#x43B;&#x438;&#x431;&#x43E; pinning &#x432;&#x44B;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D; &#x434;&#x43E;&#x43A;&#x443;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x44B;&#x43C; override. &#x412;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x43F;&#x440;&#x438;&#x43A;&#x43B;&#x430;&#x434;&#x43D;&#x43E;&#x439; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438; &#x43A; baseline &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x430;&#x435;&#x442; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x44C;. &#x415;&#x441;&#x43B;&#x438; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x430; &#x43D;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F;, &#x432;&#x44B;, &#x432;&#x435;&#x440;&#x43E;&#x44F;&#x442;&#x43D;&#x43E;, &#x438;&#x437;&#x43C;&#x435;&#x440;&#x438;&#x43B;&#x438; page cache, JIT &#x438;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x435;&#x432; tokenizer, &#x430; &#x43D;&#x435; pinned data path.</p><div class="ks-widget" id="ks-chk-vll7d3x"><h3>Application gate &#x434;&#x43B;&#x44F; offload</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x412;&#x435;&#x440;&#x441;&#x438;&#x44F; vLLM &#x438; &#x43E;&#x431;&#x440;&#x430;&#x437; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x43B;&#x435;&#x43D;&#x44B;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> Pinned allocation &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> VmLck &#x440;&#x430;&#x441;&#x442;&#x451;&#x442; &#x432; &#x43E;&#x436;&#x438;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x43C; &#x434;&#x438;&#x430;&#x43F;&#x430;&#x437;&#x43E;&#x43D;&#x435;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> TTFT &#x438; p95 &#x438;&#x437;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x44B; &#x43D;&#x430; canary</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441; &#x431;&#x435;&#x437; offload</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> &#x415;&#x441;&#x442;&#x44C; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x44B;&#x439; rollback</label><div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-chk-vll7d3x');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/memlock-observability-inline-06-074a6f61.webp" class="kg-image" alt="Pinned memory &#x438; memlock &#x434;&#x43B;&#x44F; LLM inference: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/memlock-observability-inline-06-074a6f61.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/memlock-observability-inline-06-074a6f61.webp 1000w, https://kingservers.com/blog/content/images/2026/08/memlock-observability-inline-06-074a6f61.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="application-probe">Application gate: &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; PyTorch transfer &#x438; &#x441;&#x430;&#x43C; inference</h2>
<p>&#x41D;&#x438;&#x437;&#x43A;&#x43E;&#x443;&#x440;&#x43E;&#x432;&#x43D;&#x435;&#x432;&#x44B;&#x439; <code>mlock</code> probe &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442; &#x43F;&#x43E;&#x43B;&#x438;&#x442;&#x438;&#x43A;&#x443; Linux, &#x43D;&#x43E; &#x43D;&#x435; &#x438;&#x43D;&#x442;&#x435;&#x433;&#x440;&#x430;&#x446;&#x438;&#x44E; CUDA allocator. &#x412;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x442;&#x435;&#x441;&#x442; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x442;&#x43E;&#x442; &#x436;&#x435; framework, &#x447;&#x442;&#x43E; &#x438; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;. &#x412; PyTorch &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x44C; pinned tensor &#x438; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x44C; non-blocking copy. &#x41E;&#x444;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; <a href="https://docs.pytorch.org/tutorials/intermediate/pinmem_nonblock.html?ref=kingservers.com">PyTorch tutorial</a> &#x43F;&#x440;&#x435;&#x434;&#x443;&#x43F;&#x440;&#x435;&#x436;&#x434;&#x430;&#x435;&#x442; &#x43E; &#x432;&#x430;&#x436;&#x43D;&#x43E;&#x439; &#x43B;&#x43E;&#x432;&#x443;&#x448;&#x43A;&#x435;: &#x440;&#x443;&#x447;&#x43D;&#x43E;&#x439; &#x432;&#x44B;&#x437;&#x43E;&#x432; <code>pin_memory()</code> &#x432; &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x43D;&#x43E;&#x43C; Python-&#x43F;&#x43E;&#x442;&#x43E;&#x43A;&#x435; &#x441;&#x430;&#x43C; &#x431;&#x43B;&#x43E;&#x43A;&#x438;&#x440;&#x443;&#x435;&#x442; host &#x438; &#x438;&#x43D;&#x43E;&#x433;&#x434;&#x430; &#x434;&#x435;&#x43B;&#x430;&#x435;&#x442; &#x43F;&#x443;&#x442;&#x44C; &#x43C;&#x435;&#x434;&#x43B;&#x435;&#x43D;&#x43D;&#x435;&#x435;. &#x417;&#x43D;&#x430;&#x447;&#x438;&#x442;, &#x446;&#x435;&#x43B;&#x44C; smoke test &#x2014; &#x43A;&#x43E;&#x440;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E;&#x441;&#x442;&#x44C; allocation &#x438; async API, &#x430; &#x43D;&#x435; &#x43E;&#x431;&#x435;&#x449;&#x430;&#x43D;&#x438;&#x435; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x44F;.</p><style>
.ks-canonical-code-block{font-family:'Avenir Next Cyr',sans-serif;margin:18px 0;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ks-canonical-code-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:#111827;border-bottom:1px solid #1e293b}
.ks-canonical-code-block__language{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.ks-canonical-code-block__filename{font-size:12px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace}
.ks-canonical-code-block__pre{margin:0;padding:16px 18px;overflow:auto;max-width:100%;background:#0f172a}
.ks-canonical-code-block__pre code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:13px;line-height:1.6;color:#e2e8f0;white-space:pre;word-break:normal}
.ks-canonical-code-block__caption{padding:10px 16px 14px;font-size:13px;line-height:1.5;color:#94a3b8;background:#111827;border-top:1px solid #1e293b}
@media (max-width:640px){.ks-canonical-code-block__pre{padding:14px}.ks-canonical-code-block__pre code{font-size:12px}}
</style>
<div class="ks-canonical-code-block" data-ks-component="code-block">
<div class="ks-canonical-code-block__meta"><span class="ks-canonical-code-block__language">python</span><span class="ks-canonical-code-block__filename">torch_pinned_probe.py</span></div>
<pre class="ks-canonical-code-block__pre"><code>import os
import resource
import torch

size_mib = int(os.environ.get(&quot;PIN_TEST_MIB&quot;, &quot;256&quot;))
soft, hard = resource.getrlimit(resource.RLIMIT_MEMLOCK)
print({&quot;memlock_soft&quot;: soft, &quot;memlock_hard&quot;: hard, &quot;test_mib&quot;: size_mib})

host = torch.empty(size_mib * 1024 * 1024, dtype=torch.uint8, pin_memory=True)
assert host.is_pinned()

device = host.to(&quot;cuda&quot;, non_blocking=True)
torch.cuda.synchronize()
print({&quot;pinned&quot;: host.is_pinned(), &quot;device&quot;: str(device.device), &quot;status&quot;: &quot;PASS&quot;})</code></pre>
<div class="ks-canonical-code-block__caption">CUDA smoke test &#x434;&#x43B;&#x44F; pinned host allocation</div>
</div>
<p>&#x417;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x435; probe &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; production-&#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430; &#x434;&#x43E; &#x441;&#x442;&#x430;&#x440;&#x442;&#x430; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x430; &#x438;&#x43B;&#x438; &#x432; &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x43C; canary &#x441; &#x442;&#x435;&#x43C; &#x436;&#x435; runtime. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x443;&#x432;&#x435;&#x43B;&#x438;&#x447;&#x44C;&#x442;&#x435; <code>PIN_TEST_MIB</code> &#x43D;&#x435;&#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x432;&#x44B;&#x448;&#x435; finite soft limit &#x438; &#x443;&#x431;&#x435;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C;, &#x447;&#x442;&#x43E; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442;. &#x41D;&#x435; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x439;&#x442;&#x435; &#x437;&#x430;&#x432;&#x435;&#x434;&#x43E;&#x43C;&#x43E; &#x43E;&#x433;&#x440;&#x43E;&#x43C;&#x43D;&#x44B;&#x439; allocation &#x43D;&#x430; &#x43E;&#x431;&#x449;&#x435;&#x43C; &#x443;&#x437;&#x43B;&#x435;: &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443; &#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x438;&#x440;&#x443;&#x435;&#x43C;&#x43E;, &#x43D;&#x435; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x432;&#x430;&#x44F; memory incident.</p><p>&#x422;&#x440;&#x435;&#x442;&#x438;&#x439; &#x443;&#x440;&#x43E;&#x432;&#x435;&#x43D;&#x44C; &#x2014; &#x441;&#x430;&#x43C; inference. &#x421;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D;&#x430;&#x43A;&#x43E;&#x432;&#x44B;&#x435; model files &#x438; tokenizer, &#x441;&#x431;&#x440;&#x43E;&#x441;&#x44C;&#x442;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x442;&#x435; &#x43A;&#x44D;&#x448;&#x438;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x432;&#x445;&#x43E;&#x434;&#x44F;&#x442; &#x432; &#x441;&#x446;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x439;, &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x442;&#x435; &#x441;&#x435;&#x440;&#x438;&#x44E; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;. &#x41D;&#x435; &#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x443;&#x439;&#x442;&#x435; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x43D;&#x442;&#x44B; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x44F;: &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442; &#x437;&#x430;&#x432;&#x438;&#x441;&#x438;&#x442; &#x43E;&#x442; PCIe topology, NUMA-locality, &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442;&#x430; weights &#x438; &#x434;&#x43E;&#x43B;&#x438; transfers &#x432; &#x43A;&#x440;&#x438;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x43C; &#x43F;&#x443;&#x442;&#x438;. &#x41F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x435;&#x435; &#x437;&#x430;&#x43F;&#x438;&#x441;&#x430;&#x442;&#x44C; decision: &#x43F;&#x440;&#x438; &#x43A;&#x430;&#x43A;&#x43E;&#x43C; offload budget p95 &#x443;&#x43B;&#x443;&#x447;&#x448;&#x438;&#x43B;&#x441;&#x44F;, &#x441;&#x43A;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; <code>VmLck</code> &#x44D;&#x442;&#x43E; &#x441;&#x442;&#x43E;&#x438;&#x43B;&#x43E; &#x438; &#x43A;&#x430;&#x43A;&#x43E;&#x439; &#x437;&#x430;&#x43F;&#x430;&#x441; &#x43E;&#x441;&#x442;&#x430;&#x43B;&#x441;&#x44F; &#x434;&#x43E; <code>MemoryHigh</code>.</p><p>&#x415;&#x441;&#x43B;&#x438; &#x445;&#x43E;&#x43B;&#x43E;&#x434;&#x43D;&#x44B;&#x439; &#x441;&#x442;&#x430;&#x440;&#x442; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x43A;&#x43E;&#x439; &#x432;&#x435;&#x441;&#x43E;&#x432; &#x441; registry, memlock &#x43D;&#x430;&#x447;&#x43D;&#x451;&#x442; &#x432;&#x43B;&#x438;&#x44F;&#x442;&#x44C; &#x441;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x43F;&#x43E;&#x437;&#x434;&#x43D;&#x43E;. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x441;&#x43D;&#x430;&#x447;&#x430;&#x43B;&#x430; &#x43E;&#x43F;&#x442;&#x438;&#x43C;&#x438;&#x437;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; model distribution &#x438; &#x43B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; NVMe-&#x43A;&#x44D;&#x448;; &#x43F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442; &#x435;&#x441;&#x442;&#x44C; &#x432; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x435; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/kesh-vesov-llm-oci-nvme-kubernetes/">OCI-&#x430;&#x440;&#x442;&#x435;&#x444;&#x430;&#x43A;&#x442;&#x44B; &#x438; &#x43A;&#x44D;&#x448; &#x432;&#x435;&#x441;&#x43E;&#x432; LLM &#x43D;&#x430; NVMe</a>. &#x42D;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440; &#x43C;&#x438;&#x433;&#x440;&#x430;&#x446;&#x438;&#x438; bottleneck: &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x435;&#x43D;&#x438;&#x44F; storage pinned transfer &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x441;&#x442;&#x430;&#x442;&#x44C; &#x437;&#x430;&#x43C;&#x435;&#x442;&#x435;&#x43D;, &#x43D;&#x43E; &#x434;&#x43E; &#x43D;&#x435;&#x433;&#x43E; &#x2014; &#x43D;&#x435;&#x442;.</p><h2 id="observability">&#x41D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x430;&#x435;&#x43C;&#x43E;&#x441;&#x442;&#x44C;: &#x441;&#x432;&#x44F;&#x437;&#x430;&#x442;&#x44C; VmLck &#x441; latency &#x438; memory pressure</h2>
<p>&#x41E;&#x434;&#x438;&#x43D; &#x433;&#x440;&#x430;&#x444;&#x438;&#x43A; locked memory &#x43C;&#x430;&#x43B;&#x43E; &#x447;&#x442;&#x43E; &#x43E;&#x431;&#x44A;&#x44F;&#x441;&#x43D;&#x44F;&#x435;&#x442;. &#x421;&#x43E;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x442;&#x440;&#x438; &#x440;&#x44F;&#x434;&#x430;. &#x41D;&#x430; process layer &#x43D;&#x443;&#x436;&#x43D;&#x44B; <code>VmLck</code>, RSS, swap &#x438; restart count. &#x41D;&#x430; cgroup/host layer &#x2014; <code>memory.current</code>, <code>memory.events</code>, PSI memory &#x438; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x430;&#x44F; RAM. &#x41D;&#x430; application layer &#x2014; cold-start duration, TTFT, p50/p95, &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x438; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; allocation. &#x422;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x440;&#x44F;&#x434;&#x43E;&#x432; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x430;&#x435;&#x442; &#x43B;&#x438; pinning &#x438;&#x43B;&#x438; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E; &#x437;&#x430;&#x431;&#x438;&#x440;&#x430;&#x435;&#x442; reclaimable memory.</p><p>&#x41F;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x430;&#x43B;&#x435;&#x440;&#x442; &#x43B;&#x443;&#x447;&#x448;&#x435; &#x441;&#x442;&#x440;&#x43E;&#x438;&#x442;&#x44C; &#x43D;&#x435; &#x43D;&#x430; &#x430;&#x431;&#x441;&#x43E;&#x43B;&#x44E;&#x442;&#x43D;&#x43E;&#x43C; &#xAB;VmLck &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x435; X&#xBB;, &#x430; &#x43D;&#x430; &#x43E;&#x442;&#x43D;&#x43E;&#x448;&#x435;&#x43D;&#x438;&#x438; &#x43A; &#x443;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x451;&#x43D;&#x43D;&#x43E;&#x43C;&#x443; budget &#x438; &#x441;&#x43E;&#x441;&#x435;&#x434;&#x43D;&#x438;&#x445; &#x441;&#x438;&#x43C;&#x43F;&#x442;&#x43E;&#x43C;&#x430;&#x445;. &#x41D;&#x430;&#x43F;&#x440;&#x438;&#x43C;&#x435;&#x440;: locked pages &#x43F;&#x440;&#x438;&#x431;&#x43B;&#x438;&#x437;&#x438;&#x43B;&#x438;&#x441;&#x44C; &#x43A; finite limit, &#x432; &#x43B;&#x43E;&#x433;&#x430;&#x445; &#x43F;&#x43E;&#x44F;&#x432;&#x438;&#x43B;&#x438;&#x441;&#x44C; allocation failures, &#x430; TTFT &#x432;&#x44B;&#x440;&#x43E;&#x441;. &#x41E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B; &#x43D;&#x443;&#x436;&#x435;&#x43D; &#x434;&#x43B;&#x44F; &#x43F;&#x440;&#x43E;&#x442;&#x438;&#x432;&#x43E;&#x43F;&#x43E;&#x43B;&#x43E;&#x436;&#x43D;&#x43E;&#x439; &#x441;&#x438;&#x442;&#x443;&#x430;&#x446;&#x438;&#x438;: <code>VmLck</code> &#x441;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x435;&#x43D;, &#x43D;&#x43E; memory PSI &#x438; <code>memory.events</code> &#x440;&#x430;&#x441;&#x442;&#x443;&#x442;. &#x422;&#x43E;&#x433;&#x434;&#x430; &#x443;&#x432;&#x435;&#x43B;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435; memlock &#x443;&#x445;&#x443;&#x434;&#x448;&#x438;&#x442; &#x441;&#x438;&#x442;&#x443;&#x430;&#x446;&#x438;&#x44E;.</p><p>&#x412; multi-worker &#x430;&#x440;&#x445;&#x438;&#x442;&#x435;&#x43A;&#x442;&#x443;&#x440;&#x435; &#x44D;&#x43A;&#x441;&#x43F;&#x43E;&#x440;&#x442;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; PID labels &#x43E;&#x441;&#x442;&#x43E;&#x440;&#x43E;&#x436;&#x43D;&#x43E;: &#x43E;&#x43D;&#x438; &#x43C;&#x435;&#x43D;&#x44F;&#x44E;&#x442;&#x441;&#x44F; &#x43F;&#x43E;&#x441;&#x43B;&#x435; restart. &#x421;&#x442;&#x430;&#x431;&#x438;&#x43B;&#x44C;&#x43D;&#x435;&#x435; &#x441;&#x43E;&#x431;&#x438;&#x440;&#x430;&#x442;&#x44C; &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x43F;&#x43E; cgroup &#x441;&#x435;&#x440;&#x432;&#x438;&#x441;&#x430; &#x438;&#x43B;&#x438; &#x430;&#x433;&#x440;&#x435;&#x433;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x44B; &#x43F;&#x43E; unit/container identity. &#x41F;&#x440;&#x438; canary rollout &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x438;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x43E;&#x43D;&#x43D;&#x44B;&#x439; fingerprint: image digest, CUDA driver, vLLM version, memlock soft/hard &#x438; offload flags. &#x411;&#x435;&#x437; &#x43D;&#x435;&#x433;&#x43E; &#x441;&#x440;&#x430;&#x432;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x447;&#x435;&#x440;&#x435;&#x437; &#x43D;&#x435;&#x434;&#x435;&#x43B;&#x44E; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; &#x430;&#x440;&#x445;&#x435;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44E;.</p><p>&#x41D;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; locked host memory &#x441; GPU framebuffer metrics. DCGM &#x438; <code>nvidia-smi</code> &#x43F;&#x43E;&#x43A;&#x430;&#x436;&#x443;&#x442; VRAM &#x438; &#x441;&#x43E;&#x441;&#x442;&#x43E;&#x44F;&#x43D;&#x438;&#x435; GPU, &#x43D;&#x43E; &#x43D;&#x435; &#x437;&#x430;&#x43C;&#x435;&#x43D;&#x44F;&#x442; <code>/proc/$PID/status</code>. &#x410;&#x43D;&#x430;&#x43B;&#x43E;&#x433;&#x438;&#x447;&#x43D;&#x43E;, &#x432;&#x44B;&#x441;&#x43E;&#x43A;&#x438;&#x439; GPU utilization &#x43D;&#x435; &#x434;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x447;&#x442;&#x43E; data path &#x43E;&#x43F;&#x442;&#x438;&#x43C;&#x430;&#x43B;&#x435;&#x43D;: &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x434;&#x435;&#x440;&#x436;&#x430;&#x442;&#x44C; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438;&#x442;&#x435;&#x43B;&#x44C; &#x437;&#x430;&#x43D;&#x44F;&#x442;&#x44B;&#x43C; &#x43F;&#x440;&#x438; &#x43F;&#x43B;&#x43E;&#x445;&#x43E;&#x43C; TTFT.</p><div class="ks-widget" id="ks-tab-obs2n6c"><h3>&#x41A;&#x430;&#x43A; &#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x441;&#x438;&#x433;&#x43D;&#x430;&#x43B;</h3>
<div class="tabs"><button type="button" class="tab-btn on" data-t="limit">&#x41B;&#x438;&#x43C;&#x438;&#x442; &#x43C;&#x430;&#x43B;</button><button type="button" class="tab-btn" data-t="pressure">RAM &#x434;&#x430;&#x432;&#x438;&#x442;</button><button type="button" class="tab-btn" data-t="app">&#x42D;&#x444;&#x444;&#x435;&#x43A;&#x442;&#x430; &#x43D;&#x435;&#x442;</button></div>
<div class="panel on" data-p="limit">Pinned allocation &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442;, &#x430; VmLck &#x443;&#x43F;&#x438;&#x440;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x432; soft limit: &#x443;&#x432;&#x435;&#x43B;&#x438;&#x447;&#x438;&#x432;&#x430;&#x439;&#x442;&#x435; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x439; &#x431;&#x44E;&#x434;&#x436;&#x435;&#x442; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x438; &#x43E;&#x431;&#x44A;&#x451;&#x43C;&#x430;.</div><div class="panel" data-p="pressure">VmLck &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C;, &#x43D;&#x43E; memory.events &#x438; swap &#x440;&#x430;&#x441;&#x442;&#x443;&#x442;: &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x443;&#x436;&#x435; &#x432; &#x43E;&#x431;&#x449;&#x435;&#x43C; &#x431;&#x44E;&#x434;&#x436;&#x435;&#x442;&#x435; RAM &#x438;&#x43B;&#x438; cgroup.</div><div class="panel" data-p="app">Infrastructure gate &#x437;&#x435;&#x43B;&#x451;&#x43D;&#x44B;&#x439;, &#x430; TTFT &#x43D;&#x435; &#x43C;&#x435;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F;: bottleneck, &#x432;&#x435;&#x440;&#x43E;&#x44F;&#x442;&#x43D;&#x43E;, &#x43F;&#x435;&#x440;&#x435;&#x435;&#x445;&#x430;&#x43B; &#x432; storage, CPU, PCIe &#x438;&#x43B;&#x438; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x44C;.</div>
<script>(function(){var r=document.getElementById('ks-tab-obs2n6c');if(!r)return;var btns=[].slice.call(r.querySelectorAll('[data-t]'));var panels=[].slice.call(r.querySelectorAll('[data-p]'));function show(k){btns.forEach(function(b){b.classList.toggle('on',b.getAttribute('data-t')===k)});panels.forEach(function(p){p.classList.toggle('on',p.getAttribute('data-p')===k)});}btns.forEach(function(b){b.onclick=function(){show(b.getAttribute('data-t'));};});})();</script></div><h2 id="rollout">Rollout: &#x434;&#x432;&#x430; gate, canary &#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430;</h2>
<p>&#x41D;&#x430;&#x447;&#x438;&#x43D;&#x430;&#x439;&#x442;&#x435; &#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; worker &#x43D;&#x430; &#x43E;&#x434;&#x43D;&#x43E;&#x43C; GPU-&#x443;&#x437;&#x43B;&#x435;. &#x417;&#x430;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435; baseline &#x43F;&#x440;&#x438; &#x442;&#x435;&#x43A;&#x443;&#x449;&#x435;&#x43C; memlock, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x443;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x435; finite limit, &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x44B;&#x439; &#x434;&#x43B;&#x44F; &#x438;&#x437;&#x43C;&#x435;&#x440;&#x435;&#x43D;&#x43D;&#x43E;&#x433;&#x43E; &#x431;&#x443;&#x444;&#x435;&#x440;&#x430;. Infrastructure gate: effective soft/hard &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x430;&#x44E;&#x442; &#x441; &#x434;&#x435;&#x43A;&#x43B;&#x430;&#x440;&#x430;&#x446;&#x438;&#x435;&#x439;, positive probe &#x43F;&#x440;&#x43E;&#x445;&#x43E;&#x434;&#x438;&#x442;, negative probe &#x432;&#x44B;&#x448;&#x435; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B; &#x43F;&#x430;&#x434;&#x430;&#x435;&#x442;, <code>VmLck</code> &#x43D;&#x435; &#x43F;&#x440;&#x435;&#x432;&#x44B;&#x448;&#x430;&#x435;&#x442; &#x431;&#x44E;&#x434;&#x436;&#x435;&#x442;. Application gate: &#x43D;&#x430; &#x442;&#x43E;&#x439; &#x436;&#x435; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; &#x438; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x435; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x438;&#x43B;&#x430;&#x441;&#x44C; &#x437;&#x430;&#x440;&#x430;&#x43D;&#x435;&#x435; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x430;&#x44F; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x430; &#x431;&#x435;&#x437; &#x440;&#x43E;&#x441;&#x442;&#x430; &#x43E;&#x448;&#x438;&#x431;&#x43E;&#x43A; &#x438; memory pressure.</p><p>&#x41F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x43D;&#x443;&#x436;&#x435;&#x43D; counterfactual. &#x412;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x435;&#x436;&#x43D;&#x438;&#x439; memlock &#x438;&#x43B;&#x438; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435; offload/pinning &#x43D;&#x430; &#x442;&#x43E;&#x43C; &#x436;&#x435; canary &#x438; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x438; &#x43A; baseline. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x448;&#x430;&#x433; &#x43A;&#x430;&#x436;&#x435;&#x442;&#x441;&#x44F; &#x43B;&#x438;&#x448;&#x43D;&#x438;&#x43C;, &#x43F;&#x43E;&#x43A;&#x430; &#x43D;&#x435; &#x432;&#x44B;&#x44F;&#x441;&#x43D;&#x44F;&#x435;&#x442;&#x441;&#x44F;, &#x447;&#x442;&#x43E; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x435;&#x43B;&#x441;&#x44F; page cache &#x438;&#x43B;&#x438; &#x437;&#x430;&#x432;&#x435;&#x440;&#x448;&#x438;&#x43B;&#x430;&#x441;&#x44C; JIT-&#x43A;&#x43E;&#x43C;&#x43F;&#x438;&#x43B;&#x44F;&#x446;&#x438;&#x44F;. &#x41A;&#x43E;&#x43D;&#x442;&#x440;&#x444;&#x430;&#x43A;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x430;&#x44F; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x437;&#x430;&#x449;&#x438;&#x449;&#x430;&#x435;&#x442; &#x43E;&#x442; &#x43B;&#x43E;&#x436;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x438;&#x447;&#x438;&#x43D;&#x43D;&#x43E;&#x441;&#x442;&#x438;.</p><p>&#x420;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x439;&#x442;&#x435; rollout &#x43F;&#x43E;&#x441;&#x442;&#x435;&#x43F;&#x435;&#x43D;&#x43D;&#x43E;: &#x43E;&#x434;&#x438;&#x43D; worker, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43E;&#x434;&#x438;&#x43D; &#x443;&#x437;&#x435;&#x43B;, &#x437;&#x430;&#x442;&#x435;&#x43C; &#x43D;&#x435;&#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x430;&#x44F; &#x434;&#x43E;&#x43B;&#x44F; &#x43F;&#x443;&#x43B;&#x430;. &#x41D;&#x430; &#x43A;&#x430;&#x436;&#x434;&#x43E;&#x43C; &#x448;&#x430;&#x433;&#x435; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x439;&#x442;&#x435;, &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x435;&#x445;&#x430;&#x43B; &#x43B;&#x438; bottleneck. &#x411;&#x43E;&#x43B;&#x435;&#x435; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x44B;&#x439; CPU&#x2192;GPU transfer &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x43E;&#x434;&#x43D;&#x44F;&#x442;&#x44C; &#x43D;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x443; &#x43D;&#x430; NVMe, CPU allocator &#x438;&#x43B;&#x438; frontend queue. &#x41B;&#x43E;&#x43A;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x443;&#x43B;&#x443;&#x447;&#x448;&#x438;&#x432; &#x43E;&#x434;&#x438;&#x43D; &#x441;&#x447;&#x451;&#x442;&#x447;&#x438;&#x43A;, &#x43B;&#x435;&#x433;&#x43A;&#x43E; &#x443;&#x445;&#x443;&#x434;&#x448;&#x438;&#x442;&#x44C; end-to-end p95.</p><p>Rollback &#x2014; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x43E;&#x432;&#x43E;&#x433;&#x43E; offload &#x440;&#x435;&#x436;&#x438;&#x43C;&#x430; &#x438;&#x43B;&#x438; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x442; &#x43F;&#x440;&#x435;&#x434;&#x44B;&#x434;&#x443;&#x449;&#x435;&#x433;&#x43E; finite limit &#x438; image digest. &#x41E;&#x43D; &#x43D;&#x435; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x442;&#x440;&#x435;&#x431;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x432;&#x44B;&#x434;&#x430;&#x447;&#x438; &#x43D;&#x43E;&#x432;&#x44B;&#x445; capabilities &#x438;&#x43B;&#x438; &#x440;&#x443;&#x447;&#x43D;&#x43E;&#x439; &#x43F;&#x440;&#x430;&#x432;&#x43A;&#x438; &#x432;&#x43D;&#x443;&#x442;&#x440;&#x438; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x430;. &#x414;&#x43B;&#x44F; rootless GPU-&#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x439;&#x43D;&#x435;&#x440;&#x43E;&#x432; &#x434;&#x435;&#x440;&#x436;&#x438;&#x442;&#x435; device access &#x43E;&#x442;&#x434;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43E;&#x442; memory policy; &#x43C;&#x430;&#x442;&#x435;&#x440;&#x438;&#x430;&#x43B; &#x43F;&#x440;&#x43E; <a href="https://kingservers.com/blog/nvidia-cdi-rootless-gpu-inference/">NVIDIA CDI &#x438; rootless inference</a> &#x43F;&#x43E;&#x43A;&#x430;&#x437;&#x44B;&#x432;&#x430;&#x435;&#x442;, &#x43A;&#x430;&#x43A; &#x43D;&#x435; &#x441;&#x43C;&#x435;&#x448;&#x438;&#x432;&#x430;&#x442;&#x44C; &#x44D;&#x442;&#x438; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x44B;.</p><div class="ks-widget" id="ks-chk-roll5p8"><h3>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x43A;&#x430; &#x43F;&#x435;&#x440;&#x435;&#x434; rollout</h3><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="0"> &#x421;&#x43D;&#x44F;&#x442; baseline &#x431;&#x435;&#x437; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; memlock</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="1"> &#x41B;&#x438;&#x43C;&#x438;&#x442; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x439; &#x438; &#x43D;&#x438;&#x436;&#x435; &#x43E;&#x431;&#x449;&#x435;&#x433;&#x43E; RAM-&#x431;&#x44E;&#x434;&#x436;&#x435;&#x442;&#x430;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="2"> Canary &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x435;&#x442; production concurrency</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="3"> &#x415;&#x441;&#x442;&#x44C; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442; &#x432;&#x44B;&#x448;&#x435; &#x43B;&#x438;&#x43C;&#x438;&#x442;&#x430;</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="4"> &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;&#x44B; memory pressure &#x438; swap</label><label style="display:flex;gap:8px;margin:5px 0;font-size:13px;color:#374151"><input type="checkbox" data-c="5"> Rollback &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x435;&#x43D;, &#x430; &#x43D;&#x435; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43E;&#x43F;&#x438;&#x441;&#x430;&#x43D;</label><div class="out" data-o></div>
<script>(function(){var r=document.getElementById('ks-chk-roll5p8');if(!r)return;var c=[].slice.call(r.querySelectorAll('[data-c]'));function u(){var n=c.filter(function(x){return x.checked}).length;r.querySelector('[data-o]').textContent=n+'/'+c.length+(n>=Math.ceil(c.length*0.85)?' — готово к следующему шагу':' — проверьте оставшиеся пункты');}c.forEach(function(x){x.onchange=u});u();})();</script></div><figure class="kg-card kg-image-card"><img src="https://kingservers.com/blog/content/images/2026/08/memlock-rollout-gates-inline-07-9f0e3e69.webp" class="kg-image" alt="Pinned memory &#x438; memlock &#x434;&#x43B;&#x44F; LLM inference: production-runbook" loading="lazy" width="1376" height="768" srcset="https://kingservers.com/blog/content/images/size/w600/2026/08/memlock-rollout-gates-inline-07-9f0e3e69.webp 600w, https://kingservers.com/blog/content/images/size/w1000/2026/08/memlock-rollout-gates-inline-07-9f0e3e69.webp 1000w, https://kingservers.com/blog/content/images/2026/08/memlock-rollout-gates-inline-07-9f0e3e69.webp 1376w" sizes="(min-width: 720px) 720px"></figure><h2 id="mistakes">&#x422;&#x438;&#x43F;&#x438;&#x447;&#x43D;&#x44B;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;: unlimited, &#x43E;&#x434;&#x438;&#x43D; benchmark &#x438; &#x43D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; &#x441;&#x43B;&#x43E;&#x439;</h2>
<p>&#x41F;&#x435;&#x440;&#x432;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x2014; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x438;&#x442;&#x44C; <code>memlock=-1</code> &#x438;&#x43B;&#x438; <code>LimitMEMLOCK=infinity</code>, &#x443;&#x432;&#x438;&#x434;&#x435;&#x442;&#x44C; &#x438;&#x441;&#x447;&#x435;&#x437;&#x43D;&#x43E;&#x432;&#x435;&#x43D;&#x438;&#x435; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438; &#x438; &#x43E;&#x431;&#x44A;&#x44F;&#x432;&#x438;&#x442;&#x44C; &#x43F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x443; &#x440;&#x435;&#x448;&#x451;&#x43D;&#x43D;&#x43E;&#x439;. &#x41D;&#x430; dedicated single-tenant &#x443;&#x437;&#x43B;&#x435; &#x44D;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x43F;&#x440;&#x43E;&#x439;&#x442;&#x438; &#x43D;&#x435;&#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x43E;, &#x43D;&#x43E; &#x432; &#x43E;&#x431;&#x449;&#x435;&#x43C; &#x43F;&#x443;&#x43B;&#x435; &#x43E;&#x434;&#x438;&#x43D; worker &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x430;&#x435;&#x442; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x437;&#x430;&#x43A;&#x440;&#x435;&#x43F;&#x438;&#x442;&#x44C; &#x441;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; RAM. &#x414;&#x438;&#x430;&#x433;&#x43D;&#x43E;&#x441;&#x442;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x438;&#x439; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442; &#x434;&#x43E;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x43C; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; &#x438;&#x437;&#x43E;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x43D;&#x43E;&#x43C; canary &#x438; &#x434;&#x43E;&#x43B;&#x436;&#x435;&#x43D; &#x437;&#x430;&#x43A;&#x43E;&#x43D;&#x447;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x43C; &#x431;&#x44E;&#x434;&#x436;&#x435;&#x442;&#x43E;&#x43C;.</p><p>&#x412;&#x442;&#x43E;&#x440;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x2014; &#x43E;&#x434;&#x43D;&#x43E;&#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x438;&#x442;&#x44C; <code>IPC_LOCK</code>, &#x43F;&#x43E;&#x434;&#x43D;&#x44F;&#x442;&#x44C; ulimit, &#x443;&#x432;&#x435;&#x43B;&#x438;&#x447;&#x438;&#x442;&#x44C; <code>--memory</code> &#x438; &#x43E;&#x431;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C; vLLM. &#x415;&#x441;&#x43B;&#x438; &#x441;&#x435;&#x440;&#x432;&#x438;&#x441; &#x43E;&#x436;&#x438;&#x43B;, &#x432;&#x44B; &#x43D;&#x435; &#x437;&#x43D;&#x430;&#x435;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443;. &#x41C;&#x435;&#x43D;&#x44F;&#x439;&#x442;&#x435; &#x43E;&#x434;&#x438;&#x43D; &#x441;&#x43B;&#x43E;&#x439; &#x437;&#x430; &#x440;&#x430;&#x437;, &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x439;&#x442;&#x435; effective state &#x438; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x44F;&#x439;&#x442;&#x435; &#x43E;&#x442;&#x440;&#x438;&#x446;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x439; &#x442;&#x435;&#x441;&#x442;. Capability &#x43D;&#x435; &#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x441;&#x438;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43E;&#x43C; &#x43F;&#x440;&#x43E;&#x438;&#x437;&#x432;&#x43E;&#x434;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x438;; &#x44D;&#x442;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435; privilege boundary.</p><p>&#x422;&#x440;&#x435;&#x442;&#x44C;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x2014; &#x441;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x440;&#x430;&#x437;&#x43C;&#x435;&#x440; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438; memlock-&#x431;&#x44E;&#x434;&#x436;&#x435;&#x442;&#x43E;&#x43C;. &#x412;&#x435;&#x441;&#x43E;&#x432;&#x44B;&#x435; shards &#x43C;&#x43E;&#x433;&#x443;&#x442; &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x432; VRAM, pageable RAM, mmap, page cache &#x438;&#x43B;&#x438; pinned region; KV cache &#x436;&#x438;&#x432;&#x451;&#x442; &#x43F;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; &#x441;&#x445;&#x435;&#x43C;&#x435;. &#x418;&#x441;&#x442;&#x438;&#x43D;&#x430; &#x2014; peak <code>VmLck</code> &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x43E;&#x439; &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E;&#x434; &#x446;&#x435;&#x43B;&#x435;&#x432;&#x44B;&#x43C; workload. &#x414;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x44F;&#x439;&#x442;&#x435; &#x437;&#x430;&#x43F;&#x430;&#x441; &#x43D;&#x430; reload &#x438; allocator fragmentation &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x43D;&#x430;&#x431;&#x43B;&#x44E;&#x434;&#x435;&#x43D;&#x438;&#x44F;, &#x43D;&#x435; &#x43F;&#x43E; &#x43C;&#x430;&#x433;&#x438;&#x447;&#x435;&#x441;&#x43A;&#x43E;&#x43C;&#x443; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x43D;&#x442;&#x443;.</p><p>&#x427;&#x435;&#x442;&#x432;&#x451;&#x440;&#x442;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x2014; benchmark &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43D;&#x430; synthetic tensor. &#x41E;&#x43D; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x435;&#x43D; &#x434;&#x43B;&#x44F; smoke test DMA-&#x43F;&#x443;&#x442;&#x438;, &#x43D;&#x43E; &#x43D;&#x435; &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x435;&#x442; tokenizer, scheduler, batching, storage &#x438; queueing. &#x424;&#x438;&#x43D;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x440;&#x438;&#x43D;&#x438;&#x43C;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43F;&#x43E; application gate. &#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x43B;&#x438; &#x43B;&#x438; &#x432;&#x44B; &#x434;&#x43B;&#x438;&#x43D;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43A;&#x441;&#x442;, &#x43F;&#x430;&#x440;&#x430;&#x43B;&#x43B;&#x435;&#x43B;&#x44C;&#x43D;&#x44B;&#x435; &#x437;&#x430;&#x43F;&#x440;&#x43E;&#x441;&#x44B; &#x438; cold restart, &#x438;&#x43B;&#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43E;&#x434;&#x438;&#x43D; &#x442;&#x451;&#x43F;&#x43B;&#x44B;&#x439; prompt?</p><p>&#x41F;&#x44F;&#x442;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x2014; &#x437;&#x430;&#x431;&#x44B;&#x442;&#x44C; &#x43E;&#x431; &#x430;&#x440;&#x445;&#x438;&#x442;&#x435;&#x43A;&#x442;&#x443;&#x440;&#x435; &#x43F;&#x430;&#x43C;&#x44F;&#x442;&#x438;. &#x41D;&#x430; unified-memory &#x43F;&#x43B;&#x430;&#x442;&#x444;&#x43E;&#x440;&#x43C;&#x435; pinning &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x438;&#x43C;&#x435;&#x442;&#x44C; &#x434;&#x440;&#x443;&#x433;&#x43E;&#x439; trade-off; vLLM &#x43F;&#x440;&#x44F;&#x43C;&#x43E; &#x43F;&#x440;&#x435;&#x434;&#x443;&#x441;&#x43C;&#x430;&#x442;&#x440;&#x438;&#x432;&#x430;&#x435;&#x442; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x435;&#x433;&#x43E; &#x43E;&#x442;&#x43A;&#x43B;&#x44E;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x43B;&#x44F; weight offload. &#x41D;&#x430; multi-socket &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;&#x435; remote NUMA allocation &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431;&#x43D;&#x430; &#x441;&#x44A;&#x435;&#x441;&#x442;&#x44C; &#x432;&#x44B;&#x433;&#x43E;&#x434;&#x443; &#x43E;&#x442; pinning. &#x41F;&#x43E;&#x44D;&#x442;&#x43E;&#x43C;&#x443; version lock, topology check &#x438; canary &#x432;&#x430;&#x436;&#x43D;&#x435;&#x435; &#x443;&#x43D;&#x438;&#x432;&#x435;&#x440;&#x441;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x439; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438;.</p><h2 id="conclusion">&#x418;&#x442;&#x43E;&#x433;: memlock &#x2014; &#x44D;&#x442;&#x43E; &#x431;&#x44E;&#x434;&#x436;&#x435;&#x442;, &#x430; &#x43D;&#x435; &#x43F;&#x435;&#x440;&#x435;&#x43A;&#x43B;&#x44E;&#x447;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x441;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x438;</h2>
<p>Pinned memory &#x43F;&#x43E;&#x43C;&#x43E;&#x433;&#x430;&#x435;&#x442; &#x442;&#x430;&#x43C;, &#x433;&#x434;&#x435; LLM inference &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x43E;&#x441;&#x438;&#x442; &#x437;&#x430;&#x43C;&#x435;&#x442;&#x43D;&#x44B;&#x435; &#x43E;&#x431;&#x44A;&#x451;&#x43C;&#x44B; &#x43C;&#x435;&#x436;&#x434;&#x443; host RAM &#x438; GPU: &#x43F;&#x440;&#x438; weight offload, CPU KV-cache offload &#x438; &#x430;&#x441;&#x438;&#x43D;&#x445;&#x440;&#x43E;&#x43D;&#x43D;&#x44B;&#x445; staging-&#x43F;&#x430;&#x439;&#x43F;&#x43B;&#x430;&#x439;&#x43D;&#x430;&#x445;. &#x41D;&#x43E; &#x43F;&#x43E;&#x43B;&#x435;&#x437;&#x43D;&#x44B;&#x439; &#x44D;&#x444;&#x444;&#x435;&#x43A;&#x442; &#x43F;&#x43E;&#x44F;&#x432;&#x43B;&#x44F;&#x435;&#x442;&#x441;&#x44F; &#x43D;&#x435; &#x43E;&#x442; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x433;&#x43E; &#x447;&#x438;&#x441;&#x43B;&#x430; &#x432; <code>ulimit</code>, &#x430; &#x43E;&#x442; &#x441;&#x43E;&#x432;&#x43F;&#x430;&#x434;&#x435;&#x43D;&#x438;&#x44F; &#x447;&#x435;&#x442;&#x44B;&#x440;&#x451;&#x445; &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x438;&#x439;: &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; &#x438;&#x441;&#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x443;&#x435;&#x442; page-locked buffers, &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441; &#x438;&#x43C;&#x435;&#x435;&#x442; &#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x44B;&#x439; &#x43B;&#x438;&#x43C;&#x438;&#x442;, &#x443;&#x437;&#x435;&#x43B; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x44F;&#x435;&#x442; &#x437;&#x430;&#x43F;&#x430;&#x441; &#x43E;&#x431;&#x44B;&#x447;&#x43D;&#x43E;&#x439; RAM, &#x430; &#x43F;&#x440;&#x438;&#x43A;&#x43B;&#x430;&#x434;&#x43D;&#x430;&#x44F; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x430; &#x440;&#x435;&#x430;&#x433;&#x438;&#x440;&#x443;&#x435;&#x442; &#x43D;&#x430; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x435;.</p><p>&#x41D;&#x430;&#x434;&#x451;&#x436;&#x43D;&#x44B;&#x439; runbook &#x43A;&#x43E;&#x440;&#x43E;&#x442;&#x43A;&#x43E; &#x432;&#x44B;&#x433;&#x43B;&#x44F;&#x434;&#x438;&#x442; &#x442;&#x430;&#x43A;: &#x441;&#x43D;&#x438;&#x43C;&#x438;&#x442;&#x435; baseline &#x438;&#x437; &#x440;&#x435;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x433;&#x43E; launcher, &#x434;&#x43E;&#x43A;&#x430;&#x436;&#x438;&#x442;&#x435; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x443; &#x447;&#x435;&#x440;&#x435;&#x437; positive/negative probe, &#x437;&#x430;&#x434;&#x430;&#x439;&#x442;&#x435; finite memlock &#x432; Docker &#x438;&#x43B;&#x438; systemd, &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; <code>VmLck</code> &#x432;&#x43C;&#x435;&#x441;&#x442;&#x435; &#x441; cgroup pressure &#x438; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x438;&#x442;&#x435; canary application test. &#x417;&#x430;&#x442;&#x435;&#x43C; &#x432;&#x435;&#x440;&#x43D;&#x438;&#x442;&#x435; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x443; &#x43D;&#x430;&#x437;&#x430;&#x434; &#x438; &#x443;&#x431;&#x435;&#x434;&#x438;&#x442;&#x435;&#x441;&#x44C;, &#x447;&#x442;&#x43E; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x430; &#x432;&#x43E;&#x437;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442;&#x441;&#x44F; &#x43A; baseline. &#x42D;&#x442;&#x43E; &#x43F;&#x440;&#x435;&#x432;&#x440;&#x430;&#x449;&#x430;&#x435;&#x442; &#xAB;&#x43A;&#x430;&#x436;&#x435;&#x442;&#x441;&#x44F;, &#x441;&#x442;&#x430;&#x43B;&#x43E; &#x431;&#x44B;&#x441;&#x442;&#x440;&#x435;&#x435;&#xBB; &#x432; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x435;&#x43C;&#x43E;&#x435; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43D;&#x43E;&#x435; &#x440;&#x435;&#x448;&#x435;&#x43D;&#x438;&#x435;.</p><p>&#x41D;&#x430;&#x447;&#x43D;&#x438;&#x442;&#x435; &#x441; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; worker &#x438; &#x43E;&#x434;&#x43D;&#x43E;&#x439; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;. &#x417;&#x430;&#x43F;&#x438;&#x448;&#x438;&#x442;&#x435; image digest, &#x432;&#x435;&#x440;&#x441;&#x438;&#x438; CUDA/vLLM, offload flags, peak locked memory &#x438; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x443;&#x44E; &#x43C;&#x435;&#x442;&#x440;&#x438;&#x43A;&#x443;. &#x415;&#x441;&#x43B;&#x438; &#x432;&#x44B;&#x44F;&#x441;&#x43D;&#x438;&#x442;&#x441;&#x44F;, &#x447;&#x442;&#x43E; bottleneck &#x43B;&#x435;&#x436;&#x438;&#x442; &#x432; NVMe, NUMA &#x438;&#x43B;&#x438; &#x43E;&#x447;&#x435;&#x440;&#x435;&#x434;&#x438;, &#x44D;&#x442;&#x43E; &#x442;&#x43E;&#x436;&#x435; &#x445;&#x43E;&#x440;&#x43E;&#x448;&#x438;&#x439; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;: &#x432;&#x44B; &#x43E;&#x441;&#x442;&#x430;&#x43D;&#x43E;&#x432;&#x438;&#x43B;&#x438; &#x431;&#x435;&#x441;&#x43A;&#x43E;&#x43D;&#x435;&#x447;&#x43D;&#x43E;&#x435; &#x443;&#x432;&#x435;&#x43B;&#x438;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x440;&#x438;&#x432;&#x438;&#x43B;&#x435;&#x433;&#x438;&#x439; &#x438; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x43B;&#x438; &#x441;&#x43B;&#x435;&#x434;&#x443;&#x44E;&#x449;&#x438;&#x439; &#x43A;&#x43E;&#x43D;&#x43A;&#x440;&#x435;&#x442;&#x43D;&#x44B;&#x439; &#x44D;&#x43A;&#x441;&#x43F;&#x435;&#x440;&#x438;&#x43C;&#x435;&#x43D;&#x442;.</p><p>&#x414;&#x43B;&#x44F; production LLM &#x432;&#x430;&#x436;&#x43D;&#x430; &#x43D;&#x435; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x430;&#x44F; &#x441;&#x432;&#x43E;&#x431;&#x43E;&#x434;&#x430; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x430;, &#x430; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;&#x430;&#x44F; &#x433;&#x440;&#x430;&#x43D;&#x438;&#x446;&#x430;. &#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x442;&#x435; &#x435;&#x451; &#x43D;&#x430; canary, &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43D;&#x438;&#x442;&#x435; checklist &#x438; &#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43F;&#x43E;&#x441;&#x43B;&#x435; &#x44D;&#x442;&#x43E;&#x433;&#x43E; &#x440;&#x430;&#x441;&#x448;&#x438;&#x440;&#x44F;&#x439;&#x442;&#x435; rollout &#x43D;&#x430; GPU-&#x43F;&#x443;&#x43B; &#x438;&#x43B;&#x438; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x439; &#x441;&#x435;&#x440;&#x432;&#x435;&#x440;.</p><div data-ks-component="consultation-cta" data-ks-version="1.0.0" data-ks-canonical="true">
<style>
@media (max-width: 640px) {
  .cta-button-mobile {
    padding: 12px 20px !important;
    font-size: 16px !important;
    border-radius: 8px !important;
    max-width: 90% !important;
  }
}
</style>

<div style="width: 100%; margin: 40px 0; position: relative;">
  <a href="https://control.king-servers.com/submitticket.php?step=2&amp;deptid=18&amp;ref=kingservers.com" class="cta-button-mobile" style="
        display: block;
        width: fit-content;
        margin: 0 auto;
        padding: 15px 35px;
        font-size: 18px;
        font-weight: bold;
        color: #ffffff;
        background-color: #1e90ff;
        border: 2px solid #005bb5;
        border-radius: 10px;
        text-decoration: none;
        text-align: center;
        transition: all 0.3s ease;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
     " onmouseover="this.style.backgroundColor=&apos;#005bb5&apos;; this.style.borderColor=&apos;#003f7f&apos;; this.style.transform=&apos;scale(1.05)&apos;; this.style.boxShadow=&apos;0 6px 12px rgba(0,0,0,0.3)&apos;" onmouseout="this.style.backgroundColor=&apos;#1e90ff&apos;; this.style.borderColor=&apos;#005bb5&apos;; this.style.transform=&apos;scale(1)&apos;; this.style.boxShadow=&apos;0 4px 8px rgba(0,0,0,0.2)&apos;">
    &#x1F680; &#x41F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43D;&#x441;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x446;&#x438;&#x44E;
  </a>
</div>

</div>]]></content:encoded></item></channel></rss>