1
0
wiki/Technology/OperatingSystem/Virtualization/2.KVM虚拟化/7.-KVM-系统监控.html

362 lines
478 KiB
HTML
Raw Normal View History

2024-09-06 17:53:58 +08:00
<!DOCTYPE html>
<html lang="zh"><head><title>7. KVM 系统监控</title><meta charset="utf-8"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=IBM Plex Mono&amp;family=Noto Serif Simplified Chinese:wght@400;700&amp;family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&amp;display=swap"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="7. KVM 系统监控"/><meta property="og:description" content="本文介绍了KVM虚拟化环境中的系统监控强调了监控的重要性并详细探讨了使用virsh、virt-top、top、htop、iotop和iftop等工具进行资源监控和性能优化的方法。."/><meta property="og:image" content="https://wiki.7wate.com/static/og-image.png"/><meta property="og:width" content="1200"/><meta property="og:height" content="675"/><link rel="icon" href="../../../../static/icon.png"/><meta name="description" content="本文介绍了KVM虚拟化环境中的系统监控强调了监控的重要性并详细探讨了使用virsh、virt-top、top、htop、iotop和iftop等工具进行资源监控和性能优化的方法。."/><meta name="generator" content="Quartz"/><link href="../../../../index.css" rel="stylesheet" type="text/css" spa-preserve/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.css" rel="stylesheet" type="text/css" spa-preserve/><script src="../../../../prescript.js" type="application/javascript" spa-preserve></script><script type="application/javascript" spa-preserve>const fetchData = fetch("../../../../static/contentIndex.json").then(data => data.json())</script></head><body data-slug="Technology/OperatingSystem/Virtualization/2.KVM虚拟化/7.-KVM-系统监控"><div id="quartz-root" class="page"><div id="quartz-body"><div class="left sidebar"><h2 class="page-title"><a href="../../../..">🪴 X·Eden</a></h2><div class="spacer mobile-only"></div><div class="search"><button class="search-button" id="search-button"><p>搜索</p><svg role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.9 19.7"><title>Search</title><g class="search-path" fill="none"><path stroke-linecap="square" d="M18.5 18.3l-5.4-5.4"></path><circle cx="8" cy="8" r="7"></circle></g></svg></button><div id="search-container"><div id="search-space"><input autocomplete="off" id="search-bar" name="search" type="text" aria-label="搜索些什么" placeholder="搜索些什么"/><div id="search-layout" data-preview="true"></div></div></div></div><button class="darkmode" id="darkmode"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="dayIcon" x="0px" y="0px" viewBox="0 0 35 35" style="enable-background:new 0 0 35 35" xml:space="preserve" aria-label="暗色模式"><title>暗色模式</title><path d="M6,17.5C6,16.672,5.328,16,4.5,16h-3C0.672,16,0,16.672,0,17.5 S0.672,19,1.5,19h3C5.328,19,6,18.328,6,17.5z M7.5,26c-0.414,0-0.789,0.168-1.061,0.439l-2,2C4.168,28.711,4,29.086,4,29.5 C4,30.328,4.671,31,5.5,31c0.414,0,0.789-0.168,1.06-0.44l2-2C8.832,28.289,9,27.914,9,27.5C9,26.672,8.329,26,7.5,26z M17.5,6 C18.329,6,19,5.328,19,4.5v-3C19,0.672,18.329,0,17.5,0S16,0.672,16,1.5v3C16,5.328,16.671,6,17.5,6z M27.5,9 c0.414,0,0.789-0.168,1.06-0.439l2-2C30.832,6.289,31,5.914,31,5.5C31,4.672,30.329,4,29.5,4c-0.414,0-0.789,0.168-1.061,0.44 l-2,2C26.168,6.711,26,7.086,26,7.5C26,8.328,26.671,9,27.5,9z M6.439,8.561C6.711,8.832,7.086,9,7.5,9C8.328,9,9,8.328,9,7.5 c0-0.414-0.168-0.789-0.439-1.061l-2-2C6.289,4.168,5.914,4,5.5,4C4.672,4,4,4.672,4,5.5c0,0.414,0.168,0.789,0.439,1.06 L6.439,8.561z M33.5,16h-3c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5h3c0.828,0,1.5-0.672,1.5-1.5S34.328,16,33.5,16z M28.561,26.439C28.289,26.168,27.914,26,27.5,26c-0.828,0-1.5,0.672-1.5,1.5c0,0.414,0.168,0.789,0.439,1.06l2,2 C28.711,30.832,29.086,31,29.5,31c0.828,0,1.5-0.672,1.5-1.5c0-0.414-0.168-0.789-0.439-1.061L28.561,26.439z M17.5,29 c-0.829,0-1.5,0.672-1.5,1.5v3c0,0
<p>在 KVMKernel-based Virtual Machine虚拟化环境中监控是确保系统稳定性、性能优化和故障排查的重要手段。本文将探讨监控的必要性、基本原则以及常用的监控工具。</p>
<h3 id="为什么需要监控">为什么需要监控?<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#为什么需要监控" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<ul>
<li><strong>确保系统稳定性</strong>
<ul>
<li>通过监控系统资源使用情况和性能指标,可以及时发现潜在的问题,防止系统崩溃或服务中断。</li>
<li>实时监控有助于预防性维护,提前识别并解决硬件或软件故障。</li>
</ul>
</li>
<li><strong>优化性能</strong>
<ul>
<li>监控数据提供了关于资源使用的详细信息,帮助管理员优化虚拟机配置和资源分配,以提高整体系统性能。</li>
<li>通过性能趋势分析,可以发现并消除系统瓶颈,提升用户体验。</li>
</ul>
</li>
<li><strong>故障排查</strong>
<ul>
<li>监控日志和性能指标记录了系统运行的详细信息,帮助管理员快速定位和解决故障。</li>
<li>实时报警功能可以在问题发生时立即通知管理员,减少故障排除时间和系统停机时间。</li>
</ul>
</li>
<li><strong>容量规划</strong>
<ul>
<li>监控资源使用趋势和增长情况,有助于进行合理的容量规划,确保系统在未来增长中仍能稳定运行。</li>
<li>提前规划资源扩展,避免资源不足导致的性能下降。</li>
</ul>
</li>
</ul>
<h3 id="监控的基本原则">监控的基本原则<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#监控的基本原则" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<div class="table-container"><table><thead><tr><th>原则</th><th>详细内容</th></tr></thead><tbody><tr><td><strong>全面覆盖</strong></td><td>监控系统应覆盖所有关键组件,包括 CPU、内存、磁盘、网络等资源以及虚拟机和宿主机的状态。 监控范围还应包括应用层面的性能指标,以全面掌握系统运行状况。</td></tr><tr><td><strong>实时性</strong></td><td>监控系统应提供实时的数据采集和报警功能,确保在问题发生时能够立即响应。 实时监控有助于快速发现和解决突发问题,减少对业务的影响。</td></tr><tr><td><strong>历史记录</strong></td><td>监控系统应保存历史数据,便于进行趋势分析和性能基线建立。 历史记录有助于识别长期趋势和周期性问题,进行有效的容量规划和性能优化。</td></tr><tr><td><strong>报警机制</strong></td><td>监控系统应具备灵活的报警机制,根据预定义的阈值触发报警,通知管理员采取措施。 报警应支持多种通知方式(如邮件、短信、即时通讯工具),确保及时传达信息。</td></tr><tr><td><strong>可视化展示</strong></td><td>监控数据应通过可视化的方式展示,便于管理员直观了解系统状态和性能指标。 可视化工具(如仪表盘、图表)有助于快速识别问题和进行数据分析。</td></tr></tbody></table></div>
<h3 id="常用的监控工具">常用的监控工具<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#常用的监控工具" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<div class="table-container"><table><thead><tr><th>工具</th><th>概述</th><th>特点</th></tr></thead><tbody><tr><td><strong>Prometheus</strong></td><td>Prometheus 是一款开源的系统监控和报警工具,特别适用于云原生和容器化环境。</td><td>高效的数据采集和存储强大的查询语言PromQL灵活的报警机制丰富的可视化支持如 Grafana</td></tr><tr><td><strong>Grafana</strong></td><td>Grafana 是一款开源的可视化和分析平台,用于展示和监控系统数据。</td><td>支持多种数据源(如 Prometheus、InfluxDB、Elasticsearch强大的仪表盘和图表功能灵活的报警和通知机制。</td></tr><tr><td><strong>Zabbix</strong></td><td>Zabbix 是一款开源的企业级监控解决方案,适用于大规模分布式系统的监控。</td><td>全面的监控功能,灵活的报警机制,强大的数据可视化和报告生成能力,广泛的社区支持。</td></tr><tr><td><strong>Nagios</strong></td><td>Nagios 是一款经典的开源监控工具,广泛应用于 IT 基础设施的监控。</td><td>灵活的插件机制,支持多种监控对象,可靠的报警和通知功能,丰富的社区插件。</td></tr><tr><td><strong>Collectd</strong></td><td>Collectd 是一款轻量级的系统统计收集工具,用于收集和传输系统性能数据。</td><td>高效的数据采集,多种插件支持,灵活的数据输出选项(如写入 InfluxDB、Graphite</td></tr><tr><td><strong>Telegraf</strong></td><td>Telegraf 是一个开源的服务器代理,用于收集和发送指标数据,作为 TICKTelegraf, InfluxDB, Chronograf, Kapacitor堆栈的一部分。</td><td>插件驱动的架构,支持多种输入和输出插件,易于集成和扩展。</td></tr></tbody></table></div>
<h2 id="使用内置工具监控">使用内置工具监控<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#使用内置工具监控" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<p>KVMKernel-based Virtual Machine环境中内置的监控工具如 <code>virsh</code><code>virt-top</code> 提供了便捷的虚拟机监控方法,帮助管理员实时了解虚拟机的运行状态和资源使用情况。本文将详细介绍如何使用 <code>virsh</code><code>virt-top</code> 进行监控。</p>
<h3 id="使用-virsh-进行监控">使用 <code>virsh</code> 进行监控<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#使用-virsh-进行监控" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p><code>virsh</code> 是 libvirt 提供的命令行工具,用于管理和监控 KVM 虚拟机。通过 <code>virsh</code> 命令,可以查看虚拟机的信息和资源使用情况。</p>
<h4 id="查看虚拟机信息">查看虚拟机信息<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#查看虚拟机信息" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p>使用 <code>virsh</code> 命令可以查看虚拟机的基本信息,包括状态、配置和资源分配情况:</p>
<ol>
<li>
<p><strong>列出所有虚拟机</strong></p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">virsh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --all</span></span></code></pre></figure>
<p>输出示例:</p>
<pre><code> Id Name State
----------------------------------------------------
1 myvm running
- testvm shut off
</code></pre>
</li>
<li>
<p><strong>查看虚拟机详细信息</strong></p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">virsh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dominfo</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">VM</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span></span></code></pre></figure>
<p>输出示例:</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="text" data-theme="github-light github-dark"><code data-language="text" data-theme="github-light github-dark" style="display:grid;"><span data-line><span>Id: 1</span></span>
<span data-line><span>Name: myvm</span></span>
<span data-line><span>UUID: 2d4c3b1c-467d-4b88-8f0d-5b63a3c6e29d</span></span>
<span data-line><span>OS Type: hvm</span></span>
<span data-line><span>State: running</span></span>
<span data-line><span>CPU(s): 4</span></span>
<span data-line><span>Max memory: 2097152 KiB</span></span>
<span data-line><span>Used memory: 2097152 KiB</span></span>
<span data-line><span>Persistent: yes</span></span>
<span data-line><span>Autostart: disable</span></span>
<span data-line><span>Managed save: no</span></span></code></pre></figure>
</li>
</ol>
<h4 id="监控资源使用情况">监控资源使用情况<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#监控资源使用情况" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<p>通过 <code>virsh</code> 命令,可以监控虚拟机的实时资源使用情况,包括 CPU 和内存使用情况:</p>
<ol>
<li>
<p><strong>查看虚拟机 CPU 和内存使用情况</strong></p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">virsh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> domstats</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">VM</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span></span></code></pre></figure>
<p>输出示例:</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="text" data-theme="github-light github-dark"><code data-language="text" data-theme="github-light github-dark" style="display:grid;"><span data-line><span>Domain: 'myvm'</span></span>
<span data-line><span> state.state=1</span></span>
<span data-line><span> state.reason=1</span></span>
<span data-line><span> cpu.time=1234567890</span></span>
<span data-line><span> cpu.user=234567890</span></span>
<span data-line><span> cpu.system=34567890</span></span>
<span data-line><span> balloon.current=2097152</span></span>
<span data-line><span> balloon.maximum=2097152</span></span>
<span data-line><span> balloon.swap_in=0</span></span>
<span data-line><span> balloon.swap_out=0</span></span>
<span data-line><span> balloon.major_fault=0</span></span>
<span data-line><span> balloon.minor_fault=12345</span></span>
<span data-line><span> balloon.usable=1987654</span></span>
<span data-line><span> ...</span></span></code></pre></figure>
</li>
<li>
<p><strong>查看所有虚拟机的资源使用情况</strong></p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">virsh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --all</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> xargs</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -I</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{} virsh domstats {}</span></span></code></pre></figure>
<p>该命令将列出所有虚拟机的资源使用统计信息,便于管理员进行整体监控。</p>
</li>
</ol>
<h3 id="使用-virt-top-监控">使用 <code>virt-top</code> 监控<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#使用-virt-top-监控" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p><code>virt-top</code> 是一个类似于 <code>top</code> 的命令行工具,用于实时监控 KVM 虚拟机的性能和资源使用情况。通过 <code>virt-top</code>,管理员可以直观地查看每个虚拟机的 CPU、内存、磁盘和网络使用情况。</p>
<h4 id="安装和配置-virt-top">安装和配置 <code>virt-top</code><a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#安装和配置-virt-top" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h4>
<ol>
<li><strong>安装 <code>virt-top</code></strong></li>
</ol>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> ## 在基于 Debian 的系统(如 Ubuntu</span></span>
<span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> apt-get</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> virt-top</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> ## 在基于 RHEL 的系统(如 CentOS</span></span>
<span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> yum</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> virt-top</span></span></code></pre></figure>
<ol>
<li>
<p><strong>配置 <code>virt-top</code></strong></p>
<p>安装完成后,运行 <code>virt-top</code> 命令启动监控:</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> virt-top</span></span></code></pre></figure>
</li>
</ol>
<h3 id="使用-virt-top-查看虚拟机性能">使用 <code>virt-top</code> 查看虚拟机性能<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#使用-virt-top-查看虚拟机性能" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p><code>virt-top</code> 提供了一个交互式界面,显示每个虚拟机的详细性能数据:</p>
<ol>
<li>
<p><strong>启动 <code>virt-top</code></strong></p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> virt-top</span></span></code></pre></figure>
<p>输出示例:</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="text" data-theme="github-light github-dark"><code data-language="text" data-theme="github-light github-dark" style="display:grid;"><span data-line><span>virt-top 0.5.12 x86_64 libvirt 6.0.0</span></span>
<span data-line><span>2 domains, 1 active, 1 running, 0 sleeping, 0 paused, 0 inactive D:0 O:0 X:0</span></span>
<span data-line><span>CPU: 2.0% Mem: 2097152 kB (64.0%) RSS: 512 MB</span></span>
<span data-line><span>Domains: 2 ID S RDRQ RDRS WRRQ WRRS RXBY TXBY %CPU %MEM</span></span>
<span data-line><span> 1 myvm 1 R 0 0 0 0 0 0 2.0 64.0</span></span></code></pre></figure>
</li>
<li>
<p><strong>查看具体虚拟机的详细信息</strong></p>
<ul>
<li><code>virt-top</code> 界面中,使用箭头键选择具体的虚拟机,然后按回车键查看详细信息。</li>
<li>可以查看的性能指标包括CPU 使用率、内存使用率、磁盘读写、网络接收和发送等。</li>
</ul>
</li>
<li>
<p><strong>自定义视图和排序</strong></p>
<ul>
<li><code>f</code> 键选择要显示的字段,可以选择 CPU、内存、磁盘、网络等不同的监控指标。</li>
<li><code>s</code> 键选择排序方式,可以按 CPU 使用率、内存使用率、磁盘 I/O 等进行排序,方便定位高负载的虚拟机。</li>
</ul>
</li>
</ol>
<p>通过使用 <code>virsh</code><code>virt-top</code> 工具,管理员可以方便地监控 KVM 虚拟化环境中虚拟机的运行状态和资源使用情况。这些工具提供了丰富的命令和参数,可以满足大部分日常监控和性能分析的需求。在实际应用中,应根据具体需求和环境特点,选择合适的监控工具和方法,以确保虚拟机和宿主机的稳定运行和高效性能。</p>
<h2 id="使用系统监控工具">使用系统监控工具<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#使用系统监控工具" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<p>除了专门的虚拟化监控工具,系统自带的监控工具如 <code>top</code><code>htop</code><code>iotop</code><code>iftop</code> 也可以用来监控 KVM 虚拟化环境中的性能。本文将详细介绍这些工具的使用方法,包括查看系统整体性能、监控虚拟机的资源占用、监控磁盘 I/O 性能以及监控网络流量。</p>
<h2 id="使用-top-和-htop">使用 <code>top</code><code>htop</code><a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#使用-top-和-htop" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<h3 id="查看系统整体性能">查看系统整体性能<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#查看系统整体性能" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p><code>top</code><code>htop</code> 是常用的系统性能监控工具,提供了关于系统资源使用的实时信息:</p>
<ol>
<li>
<p><strong>使用 <code>top</code> 查看系统性能</strong>:启动 <code>top</code></p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">top</span></span></code></pre></figure>
<p>输出示例:</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="text" data-theme="github-light github-dark"><code data-language="text" data-theme="github-light github-dark" style="display:grid;"><span data-line><span>top - 14:55:30 up 10 days, 2:48, 3 users, load average: 0.00, 0.01, 0.05</span></span>
<span data-line><span>Tasks: 125 total, 1 running, 124 sleeping, 0 stopped, 0 zombie</span></span>
<span data-line><span>%Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st</span></span>
<span data-line><span>KiB Mem : 2048.0 total, 104.0 free, 512.0 used, 1432.0 buff/cache</span></span>
<span data-line><span>KiB Swap: 1024.0 total, 1024.0 free, 0.0 used. 1480.0 avail Mem </span></span>
<span data-line> </span>
<span data-line><span> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND</span></span>
<span data-line><span> 1234 root 20 0 162180 7644 4388 S 0.3 0.4 0:00.03 qemu-kvm</span></span>
<span data-line><span> ...</span></span></code></pre></figure>
<p>该命令显示系统的 CPU、内存使用情况以及每个进程的资源占用。</p>
</li>
<li>
<p><strong>使用 <code>htop</code> 查看系统性能</strong>:启动 <code>htop</code>(如果未安装,可以通过 <code>sudo apt-get install htop</code><code>sudo yum install htop</code> 安装):</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">htop</span></span></code></pre></figure>
<p><code>htop</code> 提供了比 <code>top</code> 更友好的界面,支持鼠标操作和自定义视图。可以使用上下箭头键浏览进程,使用 F2 键进入设置界面。</p>
</li>
</ol>
<h3 id="监控虚拟机的资源占用">监控虚拟机的资源占用<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#监控虚拟机的资源占用" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<p><code>top</code><code>htop</code> 中,可以通过筛选 KVM 相关进程来监控虚拟机的资源占用情况:</p>
<ol>
<li>
<p><strong>使用 <code>top</code> 监控虚拟机资源占用</strong></p>
<p>启动 <code>top</code> 后,按 <code>u</code> 键,然后输入虚拟机所属用户(通常是 qemu 或 libvirt按回车键</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">top</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -u</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> qemu</span></span></code></pre></figure>
<p>该命令将只显示属于该用户的进程,包括 KVM 虚拟机进程。</p>
</li>
<li>
<p><strong>使用 <code>htop</code> 监控虚拟机资源占用</strong>:启动 <code>htop</code> 后,按 <code>F4</code> 键进入过滤模式,然后输入 <code>qemu</code> 或虚拟机进程名:</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">htop</span></span></code></pre></figure>
</li>
</ol>
<h2 id="使用-iotop">使用 <code>iotop</code><a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#使用-iotop" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<p><code>iotop</code> 是一个用于监控磁盘 I/O 性能的工具,可以帮助找出性能瓶颈。需要 root 权限运行。</p>
<h3 id="监控磁盘-io-性能">监控磁盘 I/O 性能<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#监控磁盘-io-性能" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<ol>
<li>
<p><strong>安装 <code>iotop</code></strong></p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 在基于Debian的系统上</span></span>
<span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> apt-get</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> iotop</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 在基于RHEL的系统上</span></span>
<span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> yum</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> iotop</span></span></code></pre></figure>
</li>
<li>
<p><strong>启动 <code>iotop</code></strong></p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> iotop</span></span></code></pre></figure>
<p>输出示例:</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="text" data-theme="github-light github-dark"><code data-language="text" data-theme="github-light github-dark" style="display:grid;"><span data-line><span>less复制代码Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s</span></span>
<span data-line><span>Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s</span></span>
<span data-line><span> TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND</span></span>
<span data-line><span>1234 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:1]</span></span>
<span data-line><span>...</span></span></code></pre></figure>
<p><code>iotop</code> 显示每个进程的实时磁盘读写速度,帮助管理员识别高 I/O 负载进程。</p>
</li>
</ol>
<h3 id="找出性能瓶颈">找出性能瓶颈<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#找出性能瓶颈" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<ol>
<li><strong>通过排序和过滤找出 I/O 瓶颈</strong>
<ul>
<li><code>iotop</code> 界面中,按 <code>O</code> 键只显示正在进行 I/O 操作的进程。</li>
<li><code>P</code> 键根据 I/O 优先级排序,或按 <code>T</code> 键根据线程排序,快速定位高 I/O 负载进程。</li>
</ul>
</li>
<li><strong>查看具体进程的 I/O 使用情况</strong>
<ul>
<li>使用上下箭头键选择具体进程,查看详细的 I/O 读写情况。可以通过进程 IDPID进一步分析相关进程的具体操作和配置。</li>
</ul>
</li>
</ol>
<h2 id="使用-iftop">使用 <code>iftop</code><a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#使用-iftop" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<p><code>iftop</code> 是一个实时网络流量监控工具,可以帮助分析网络性能问题。</p>
<h3 id="监控网络流量">监控网络流量<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#监控网络流量" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<ol>
<li>
<p><strong>安装 <code>iftop</code></strong></p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">## 在基于 Debian 的系统上</span></span>
<span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> apt-get</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> iftop</span></span>
<span data-line> </span>
<span data-line><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">## 在基于 RHEL 的系统上</span></span>
<span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> yum</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> iftop</span></span></code></pre></figure>
</li>
<li>
<p><strong>启动 <code>iftop</code></strong></p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="shell" data-theme="github-light github-dark"><code data-language="shell" data-theme="github-light github-dark" style="display:grid;"><span data-line><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> iftop</span></span></code></pre></figure>
<p>输出示例:</p>
<figure data-rehype-pretty-code-figure><pre tabindex="0" data-language="text" data-theme="github-light github-dark"><code data-language="text" data-theme="github-light github-dark" style="display:grid;"><span data-line><span>interface: eth0</span></span>
<span data-line><span>IP address is: 192.168.1.10</span></span>
<span data-line><span>MAC address is: 00:1a:4b:16:01:59</span></span>
<span data-line><span>Listening on port 0000</span></span>
<span data-line><span>---------------------------------------------------</span></span>
<span data-line><span>192.168.1.10 => 192.168.1.1 123KB 456KB 789KB</span></span>
<span data-line><span> &lt;= 23KB 56KB 89KB</span></span>
<span data-line><span>...</span></span></code></pre></figure>
<p><code>iftop</code> 显示网络接口的实时流量情况,包括发送和接收数据的速率。</p>
</li>
</ol>
<h3 id="分析网络性能问题">分析网络性能问题<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#分析网络性能问题" class="internal"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h3>
<ol>
<li><strong>通过排序和过滤分析流量</strong>
<ul>
<li><code>iftop</code> 界面中,按 <code>P</code> 键切换端口显示模式,按 <code>N</code> 键切换主机名显示模式,按 <code>S</code> 键切换源地址和目的地址显示顺序。</li>
<li>使用 <code>l</code> 键限制显示特定网络接口的流量,帮助聚焦分析特定接口的网络性能。</li>
</ul>
</li>
<li><strong>查看具体连接的流量使用情况</strong>
<ul>
<li>使用上下箭头键选择具体连接,查看详细的流量使用情况。可以进一步分析哪些主机或服务占用了过多的网络带宽。</li>
</ul>
</li>
</ol>
<p>通过使用系统监控工具如 <code>top</code><code>htop</code><code>iotop</code><code>iftop</code>,管理员可以实时了解 KVM 虚拟化环境中系统资源的使用情况,快速识别并解决性能问题,确保虚拟机和宿主机的稳定运行和高效性能。在实际应用中,应结合具体需求和环境特点,灵活使用这些工具进行系统监控和性能优化。</p></article><hr/><div class="page-footer"></div></div><div class="right sidebar"><div class="graph"><h3>关系图谱</h3><div class="graph-outer"><div id="graph-container" data-cfg="{&quot;drag&quot;:true,&quot;zoom&quot;:true,&quot;depth&quot;:1,&quot;scale&quot;:1.1,&quot;repelForce&quot;:0.5,&quot;centerForce&quot;:0.3,&quot;linkDistance&quot;:30,&quot;fontSize&quot;:0.6,&quot;opacityScale&quot;:1,&quot;showTags&quot;:true,&quot;removeTags&quot;:[],&quot;focusOnHover&quot;:false}"></div><button id="global-graph-icon" aria-label="Global Graph"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 55 55" fill="currentColor" xml:space="preserve"><path d="M49,0c-3.309,0-6,2.691-6,6c0,1.035,0.263,2.009,0.726,2.86l-9.829,9.829C32.542,17.634,30.846,17,29,17
s-3.542,0.634-4.898,1.688l-7.669-7.669C16.785,10.424,17,9.74,17,9c0-2.206-1.794-4-4-4S9,6.794,9,9s1.794,4,4,4
c0.74,0,1.424-0.215,2.019-0.567l7.669,7.669C21.634,21.458,21,23.154,21,25s0.634,3.542,1.688,4.897L10.024,42.562
C8.958,41.595,7.549,41,6,41c-3.309,0-6,2.691-6,6s2.691,6,6,6s6-2.691,6-6c0-1.035-0.263-2.009-0.726-2.86l12.829-12.829
c1.106,0.86,2.44,1.436,3.898,1.619v10.16c-2.833,0.478-5,2.942-5,5.91c0,3.309,2.691,6,6,6s6-2.691,6-6c0-2.967-2.167-5.431-5-5.91
v-10.16c1.458-0.183,2.792-0.759,3.898-1.619l7.669,7.669C41.215,39.576,41,40.26,41,41c0,2.206,1.794,4,4,4s4-1.794,4-4
s-1.794-4-4-4c-0.74,0-1.424,0.215-2.019,0.567l-7.669-7.669C36.366,28.542,37,26.846,37,25s-0.634-3.542-1.688-4.897l9.665-9.665
C46.042,11.405,47.451,12,49,12c3.309,0,6-2.691,6-6S52.309,0,49,0z M11,9c0-1.103,0.897-2,2-2s2,0.897,2,2s-0.897,2-2,2
S11,10.103,11,9z M6,51c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S8.206,51,6,51z M33,49c0,2.206-1.794,4-4,4s-4-1.794-4-4
s1.794-4,4-4S33,46.794,33,49z M29,31c-3.309,0-6-2.691-6-6s2.691-6,6-6s6,2.691,6,6S32.309,31,29,31z M47,41c0,1.103-0.897,2-2,2
s-2-0.897-2-2s0.897-2,2-2S47,39.897,47,41z M49,10c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S51.206,10,49,10z"></path></svg></button></div><div id="global-graph-outer"><div id="global-graph-container" data-cfg="{&quot;drag&quot;:true,&quot;zoom&quot;:true,&quot;depth&quot;:-1,&quot;scale&quot;:0.9,&quot;repelForce&quot;:0.5,&quot;centerForce&quot;:0.3,&quot;linkDistance&quot;:30,&quot;fontSize&quot;:0.6,&quot;opacityScale&quot;:1,&quot;showTags&quot;:true,&quot;removeTags&quot;:[],&quot;focusOnHover&quot;:true}"></div></div></div><div class="toc desktop-only"><button type="button" id="toc" class aria-controls="toc-content" aria-expanded="true"><h3>目录</h3><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="fold"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div id="toc-content" class><ul class="overflow"><li class="depth-0"><a href="#监控概述" data-for="监控概述">监控概述</a></li><li class="depth-1"><a href="#为什么需要监控" data-for="为什么需要监控">为什么需要监控?</a></li><li class="depth-1"><a href="#监控的基本原则" data-for="监控的基本原则">监控的基本原则</a></li><li class="depth-1"><a href="#常用的监控工具" data-for="常用的监控工具">常用的监控工具</a></li><li class="depth-0"><a href="#使用内置工具监控" data-for="使用内置工具监控">使用内置工具监控</a></li><li class="depth-1"><a href="#使用-virsh-进行监控" data-for="使用-virsh-进行监控">使用 virsh 进行监控</a></li><li class="depth-1"><a href="#使用-virt-top-监控" data-for="使用-virt-top-监控">使用 virt-top 监控</a></li><li class="depth-1"><a href="#使用-virt-top-查看虚拟机性能" data-for="使用-virt-top-查看虚拟机性能">使用 virt-top 查看虚拟机性能</a></li><li class="depth-0"><a href="#使用系统监控工具" data-for="使用系统监控工具">使用系统监控工具</a></li><li class="depth-0"><a href="#使用-top-和-htop" data-for="使用-top-和-htop">使用 top 和 htop</a></li><li class="depth-1"><a href="#查看系统整体性能" data-for="查看系统整体性能">查看系统整体性能</a></li><li class="depth-1"><a href="#监控虚拟机的资源占用" data-for="监控虚拟机的资源占用">监控虚拟机的资源占用</a></li><li class="depth-0"><a href="#使用-iotop" data-for="使用-iotop">使用 iotop</a></li><li class="depth-1"><a href="#监控磁盘-io-性能" data-for="监控磁盘-io-性能">监控磁盘 I/O 性能</a></li><li class="depth-1"><a href="#找出性能瓶颈" data-for="找出性能瓶颈">找出性能瓶颈</a></li><li class="depth-0"><a href="#使用-iftop" data-for="使用-iftop">使用 iftop</a></li><li class="depth-1"><a href="#监控网络流量" data-for="监控网络流量">监控网络流量</a></li><li class="depth-1"><a href="#分析网络性能问题" data-for="分析网络性能问题">分析网络性能问题</a></li></ul></div></div><div class="explorer mobile-only"><button type="button" id="explorer" data-behavior="collapse" data-collapsed="collapsed" data-savestate="true" data-tree="[{&quot;path&quot;:&quot;Personal&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2018&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2020&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2021&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2022&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2023&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Blog/2024&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/个人成长&quot;,&quot;collapsed&quot;:true},{&quot;path&quot;:&quot;Personal/Book/医学健康&quot;,&qu
</script><script type="module">
let mermaidImport = undefined
document.addEventListener('nav', async () => {
if (document.querySelector("code.mermaid")) {
mermaidImport ||= await import('https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.7.0/mermaid.esm.min.mjs')
const mermaid = mermaidImport.default
const darkMode = document.documentElement.getAttribute('saved-theme') === 'dark'
mermaid.initialize({
startOnLoad: false,
securityLevel: 'loose',
theme: darkMode ? 'dark' : 'default'
})
await mermaid.run({
querySelector: '.mermaid'
})
}
});
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/contrib/copy-tex.min.js" type="application/javascript"></script><script src="../../../../postscript.js" type="module"></script></html>