<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Btop on Tarragon</title><link>https://tarrragon.github.io/blog/tags/btop/</link><description>Recent content in Btop on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Mon, 15 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/btop/index.xml" rel="self" type="application/rss+xml"/><item><title>TUI 監控工具：btop、htop、k9s 的遠端使用與刷新率調校</title><link>https://tarrragon.github.io/blog/linux/tools/cli/tui-monitoring-tools/</link><pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/linux/tools/cli/tui-monitoring-tools/</guid><description>&lt;p>TUI 監控工具負責把系統或叢集的即時狀態畫成全螢幕互動介面：即時呈現負載變化，並用鍵盤直接排序、過濾、送訊號，取代反覆敲 &lt;code>ps&lt;/code>、&lt;code>df&lt;/code>、&lt;code>free&lt;/code> 再自行拼湊。在遠端 SSH 情境下，它的關鍵變數是刷新率與頻寬的取捨，因為全螢幕介面每次刷新都會重送整片畫面。&lt;/p>
&lt;p>本文承接 &lt;a href="https://tarrragon.github.io/blog/linux/tools/cli/cli-graphical-tools-overview/" data-link-title="終端機圖形化工具總覽：遠端操作下的 TUI、文字圖表與多工器" data-link-desc="在純文字終端機裡用 ASCII 與製圖字元做出監控儀表板、資料圖表與多視窗操作的工具總覽，並針對 SSH 伺服器、手機平板、低頻寬三種遠端情境給出選型判讀。">終端機圖形化工具總覽&lt;/a> 的 TUI 工具脈絡，聚焦系統監控這一支在遠端的實際使用與調校。git 線圖工具（&lt;code>tig&lt;/code> / &lt;code>lazygit&lt;/code> / &lt;code>gitui&lt;/code>）雖然也是 TUI，但屬版控子題，獨立成 &lt;a href="https://tarrragon.github.io/blog/linux/tools/cli/git-line-graph-tools-for-remote-cli/" data-link-title="遠端 CLI 開發的 git 線圖工具選型：tig、lazygit、gitui 與管線增強" data-link-desc="純 CLI、遠端開發情境下查看 git 分支線圖的工具地景，從 tig 唯讀瀏覽到 lazygit/gitui 操作中樞的定位差異，含選型判準與 lazygit 上手、delta side-by-side diff 設定。">遠端 CLI 開發的 git 線圖工具選型&lt;/a>。&lt;/p>
&lt;h2 id="htop進程層的標準">htop：進程層的標準&lt;/h2>
&lt;p>htop 把進程清單畫成帶 CPU 與記憶體長條的全螢幕視圖，責任是即時看進程並直接操作。它用底部的功能鍵列引導操作，不必背指令。&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>按鍵&lt;/th>
 &lt;th>作用&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>F3&lt;/code>&lt;/td>
 &lt;td>搜尋進程&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>F4&lt;/code>&lt;/td>
 &lt;td>過濾（只顯示符合的進程）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>F5&lt;/code>&lt;/td>
 &lt;td>樹狀檢視（看父子關係）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>F6&lt;/code>&lt;/td>
 &lt;td>選排序欄位&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>F9&lt;/code>&lt;/td>
 &lt;td>送訊號（殺進程）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>F10&lt;/code>&lt;/td>
 &lt;td>離開&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>遠端使用的關鍵是刷新延遲。htop 用 &lt;code>-d&lt;/code> 設定刷新間隔，單位是十分之一秒，所以 &lt;code>htop -d 30&lt;/code> 是每 3 秒刷新一次。慢速連線下把延遲調大換取畫面不卡、按鍵不延遲，可從 5 秒（&lt;code>htop -d 50&lt;/code>）起步，順了再往下調。這個 5 秒是經驗起點、不是測得的閾值，實際依連線 RTT 與終端尺寸調整（後面 btop 與判讀段沿用此基準）。&lt;/p>
&lt;h2 id="btop多資源儀表板">btop：多資源儀表板&lt;/h2>
&lt;p>btop 把 CPU、記憶體、網路、磁碟畫在同一畫面，並帶歷史曲線與滑鼠操作，責任是一眼總覽多個資源維度的趨勢。相較 htop 偏進程清單，btop 偏向整機儀表板。&lt;/p>
&lt;p>刷新率是 btop 在遠端最該調的設定。它的刷新間隔由 &lt;code>update_ms&lt;/code> 控制（預設 2000 毫秒），把間隔調短會讓全螢幕重畫更頻繁、在慢速連線吃掉頻寬。調整方式是按 &lt;code>Esc&lt;/code> 開 Options 選單改 &lt;code>update_ms&lt;/code>，或直接編輯設定檔 &lt;code>~/.config/btop/btop.conf&lt;/code> 的 &lt;code>update_ms&lt;/code> 值。判讀分界與 htop 相同：連線品質好可用較密的刷新換即時性，品質差就把間隔拉長，慢速連線可從 &lt;code>update_ms 5000&lt;/code>（5 秒）起步。&lt;/p>
&lt;h2 id="k9skubernetes-叢集導航">k9s：Kubernetes 叢集導航&lt;/h2>
&lt;p>k9s 把 &lt;code>kubectl&lt;/code> 的查詢與操作做成全螢幕導航介面，責任是讓叢集管理不必逐條敲 &lt;code>kubectl&lt;/code> 指令。它用冒號指令切換資源視圖，游標選中資源後用快捷鍵操作。&lt;/p>
&lt;blockquote>
&lt;p>安裝與 &lt;code>--refresh&lt;/code> 旗標已實機驗證；以下 &lt;code>:pods&lt;/code> 等叢集操作需連到 k8s cluster，依官方用法、本機未實機驗證。&lt;/p>&lt;/blockquote>
&lt;p>常見操作是輸入 &lt;code>:pods&lt;/code> 看 pod 清單、&lt;code>:svc&lt;/code> 看 service，游標停在某個 pod 上按 &lt;code>l&lt;/code> 看 log、&lt;code>d&lt;/code> 看 describe、&lt;code>s&lt;/code> 進 container shell。對遠端管理叢集的情境，它把「查狀態到進去除錯」的流程收進同一畫面，省去反覆切換指令的負擔。k9s 同樣是全螢幕 TUI、會定期輪詢叢集狀態，慢速連線下導航延遲明顯時，可在啟動時用 &lt;code>--refresh&lt;/code> 把輪詢間隔（秒）調長。&lt;/p>
&lt;h2 id="其他常用-tui-監控">其他常用 TUI 監控&lt;/h2>
&lt;p>不同資源維度有各自的專用 TUI，責任聚焦在單一面向。&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>工具&lt;/th>
 &lt;th>監控對象&lt;/th>
 &lt;th>用途&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>ncdu&lt;/code> / &lt;code>gdu&lt;/code>&lt;/td>
 &lt;td>磁碟空間&lt;/td>
 &lt;td>掃描目錄並用長條顯示各目錄佔多少空間&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>ctop&lt;/code>&lt;/td>
 &lt;td>容器&lt;/td>
 &lt;td>即時看各 container 的資源佔用&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>dive&lt;/code>&lt;/td>
 &lt;td>映像層&lt;/td>
 &lt;td>逐層分析 Docker image 的大小組成&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>這些工具的共同特性是各管一個維度：磁碟爆了用 &lt;code>ncdu&lt;/code> 找出是哪一包、容器資源異常用 &lt;code>ctop&lt;/code> 定位、要拆解 image 肥在哪用 &lt;code>dive&lt;/code>。遠端排查時依問題維度挑對應工具，比開一個大而全的儀表板更直接。&lt;/p>
&lt;p>Docker 相關的兩個工具值得多記一筆。&lt;code>dive&lt;/code> 除了 TUI，還有非互動的 &lt;code>--ci&lt;/code> 模式：&lt;code>dive &amp;lt;image&amp;gt; --ci&lt;/code> 會輸出 image 的 efficiency 與 wasted space，並依門檻判定 pass/fail，適合塞進 CI pipeline 擋住臃腫 image。&lt;code>ctop&lt;/code> 的單一容器細節視圖（游標選中按 &lt;code>Enter&lt;/code>）會把環境變數明文列出，含資料庫密碼這類敏感值，共享畫面或側錄時要留意。&lt;/p></description><content:encoded><![CDATA[<p>TUI 監控工具負責把系統或叢集的即時狀態畫成全螢幕互動介面：即時呈現負載變化，並用鍵盤直接排序、過濾、送訊號，取代反覆敲 <code>ps</code>、<code>df</code>、<code>free</code> 再自行拼湊。在遠端 SSH 情境下，它的關鍵變數是刷新率與頻寬的取捨，因為全螢幕介面每次刷新都會重送整片畫面。</p>
<p>本文承接 <a href="/blog/linux/tools/cli/cli-graphical-tools-overview/" data-link-title="終端機圖形化工具總覽：遠端操作下的 TUI、文字圖表與多工器" data-link-desc="在純文字終端機裡用 ASCII 與製圖字元做出監控儀表板、資料圖表與多視窗操作的工具總覽，並針對 SSH 伺服器、手機平板、低頻寬三種遠端情境給出選型判讀。">終端機圖形化工具總覽</a> 的 TUI 工具脈絡，聚焦系統監控這一支在遠端的實際使用與調校。git 線圖工具（<code>tig</code> / <code>lazygit</code> / <code>gitui</code>）雖然也是 TUI，但屬版控子題，獨立成 <a href="/blog/linux/tools/cli/git-line-graph-tools-for-remote-cli/" data-link-title="遠端 CLI 開發的 git 線圖工具選型：tig、lazygit、gitui 與管線增強" data-link-desc="純 CLI、遠端開發情境下查看 git 分支線圖的工具地景，從 tig 唯讀瀏覽到 lazygit/gitui 操作中樞的定位差異，含選型判準與 lazygit 上手、delta side-by-side diff 設定。">遠端 CLI 開發的 git 線圖工具選型</a>。</p>
<h2 id="htop進程層的標準">htop：進程層的標準</h2>
<p>htop 把進程清單畫成帶 CPU 與記憶體長條的全螢幕視圖，責任是即時看進程並直接操作。它用底部的功能鍵列引導操作，不必背指令。</p>
<table>
  <thead>
      <tr>
          <th>按鍵</th>
          <th>作用</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>F3</code></td>
          <td>搜尋進程</td>
      </tr>
      <tr>
          <td><code>F4</code></td>
          <td>過濾（只顯示符合的進程）</td>
      </tr>
      <tr>
          <td><code>F5</code></td>
          <td>樹狀檢視（看父子關係）</td>
      </tr>
      <tr>
          <td><code>F6</code></td>
          <td>選排序欄位</td>
      </tr>
      <tr>
          <td><code>F9</code></td>
          <td>送訊號（殺進程）</td>
      </tr>
      <tr>
          <td><code>F10</code></td>
          <td>離開</td>
      </tr>
  </tbody>
</table>
<p>遠端使用的關鍵是刷新延遲。htop 用 <code>-d</code> 設定刷新間隔，單位是十分之一秒，所以 <code>htop -d 30</code> 是每 3 秒刷新一次。慢速連線下把延遲調大換取畫面不卡、按鍵不延遲，可從 5 秒（<code>htop -d 50</code>）起步，順了再往下調。這個 5 秒是經驗起點、不是測得的閾值，實際依連線 RTT 與終端尺寸調整（後面 btop 與判讀段沿用此基準）。</p>
<h2 id="btop多資源儀表板">btop：多資源儀表板</h2>
<p>btop 把 CPU、記憶體、網路、磁碟畫在同一畫面，並帶歷史曲線與滑鼠操作，責任是一眼總覽多個資源維度的趨勢。相較 htop 偏進程清單，btop 偏向整機儀表板。</p>
<p>刷新率是 btop 在遠端最該調的設定。它的刷新間隔由 <code>update_ms</code> 控制（預設 2000 毫秒），把間隔調短會讓全螢幕重畫更頻繁、在慢速連線吃掉頻寬。調整方式是按 <code>Esc</code> 開 Options 選單改 <code>update_ms</code>，或直接編輯設定檔 <code>~/.config/btop/btop.conf</code> 的 <code>update_ms</code> 值。判讀分界與 htop 相同：連線品質好可用較密的刷新換即時性，品質差就把間隔拉長，慢速連線可從 <code>update_ms 5000</code>（5 秒）起步。</p>
<h2 id="k9skubernetes-叢集導航">k9s：Kubernetes 叢集導航</h2>
<p>k9s 把 <code>kubectl</code> 的查詢與操作做成全螢幕導航介面，責任是讓叢集管理不必逐條敲 <code>kubectl</code> 指令。它用冒號指令切換資源視圖，游標選中資源後用快捷鍵操作。</p>
<blockquote>
<p>安裝與 <code>--refresh</code> 旗標已實機驗證；以下 <code>:pods</code> 等叢集操作需連到 k8s cluster，依官方用法、本機未實機驗證。</p></blockquote>
<p>常見操作是輸入 <code>:pods</code> 看 pod 清單、<code>:svc</code> 看 service，游標停在某個 pod 上按 <code>l</code> 看 log、<code>d</code> 看 describe、<code>s</code> 進 container shell。對遠端管理叢集的情境，它把「查狀態到進去除錯」的流程收進同一畫面，省去反覆切換指令的負擔。k9s 同樣是全螢幕 TUI、會定期輪詢叢集狀態，慢速連線下導航延遲明顯時，可在啟動時用 <code>--refresh</code> 把輪詢間隔（秒）調長。</p>
<h2 id="其他常用-tui-監控">其他常用 TUI 監控</h2>
<p>不同資源維度有各自的專用 TUI，責任聚焦在單一面向。</p>
<table>
  <thead>
      <tr>
          <th>工具</th>
          <th>監控對象</th>
          <th>用途</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>ncdu</code> / <code>gdu</code></td>
          <td>磁碟空間</td>
          <td>掃描目錄並用長條顯示各目錄佔多少空間</td>
      </tr>
      <tr>
          <td><code>ctop</code></td>
          <td>容器</td>
          <td>即時看各 container 的資源佔用</td>
      </tr>
      <tr>
          <td><code>dive</code></td>
          <td>映像層</td>
          <td>逐層分析 Docker image 的大小組成</td>
      </tr>
  </tbody>
</table>
<p>這些工具的共同特性是各管一個維度：磁碟爆了用 <code>ncdu</code> 找出是哪一包、容器資源異常用 <code>ctop</code> 定位、要拆解 image 肥在哪用 <code>dive</code>。遠端排查時依問題維度挑對應工具，比開一個大而全的儀表板更直接。</p>
<p>Docker 相關的兩個工具值得多記一筆。<code>dive</code> 除了 TUI，還有非互動的 <code>--ci</code> 模式：<code>dive &lt;image&gt; --ci</code> 會輸出 image 的 efficiency 與 wasted space，並依門檻判定 pass/fail，適合塞進 CI pipeline 擋住臃腫 image。<code>ctop</code> 的單一容器細節視圖（游標選中按 <code>Enter</code>）會把環境變數明文列出，含資料庫密碼這類敏感值，共享畫面或側錄時要留意。</p>
<h2 id="遠端刷新率與頻寬的取捨">遠端刷新率與頻寬的取捨</h2>
<p>全螢幕 TUI 監控的遠端成本核心在於：每次刷新會重送整片字元矩陣，刷新越密、頻寬負擔越重。慢速連線下會看到畫面延遲、按鍵反應慢。對策是把刷新間隔調長（<code>htop -d</code>、btop 的 <code>update_ms</code>），用更新頻率換流暢度。</p>
<p>判讀分界落在刷新率與監控粒度：連線順暢時用 1–2 秒的密集刷新看即時變化；連線吃緊時把間隔拉到 5 秒以上，或當只盯單一指標時改用一次性的文字趨勢（見 <a href="/blog/linux/tools/cli/ascii-charts-in-terminal/" data-link-title="終端機文字圖表：gnuplot、termgraph、plotext 與 sparkline" data-link-desc="把數值畫成終端機文字圖的工具：gnuplot dumb terminal、termgraph 長條圖、plotext 腳本繪圖、sparkline 與 pipeline 即時更新，以及遠端情境下一次性輸出省頻寬的判讀。">終端機文字圖表</a>）而非全螢幕儀表板。</p>
<h2 id="下一步路由">下一步路由</h2>
<ul>
<li>把監控擺進可持久化的多工器：<a href="/blog/linux/tools/cli/tmux-persistence-and-basics/" data-link-title="tmux 基礎：遠端 session 持久化與基本操作" data-link-desc="tmux 終端機多工器的遠端使用核心：detach/reattach 讓 session 脫離連線生命週期、prefix key 與 window/pane 操作、手機友善的快捷鍵調校，以及 tmux 與 zellij 的選型對照。">tmux 基礎</a>，斷線後 reattach 回去監控還在跑。</li>
<li>一次性的文字趨勢圖（省頻寬的替代）：<a href="/blog/linux/tools/cli/ascii-charts-in-terminal/" data-link-title="終端機文字圖表：gnuplot、termgraph、plotext 與 sparkline" data-link-desc="把數值畫成終端機文字圖的工具：gnuplot dumb terminal、termgraph 長條圖、plotext 腳本繪圖、sparkline 與 pipeline 即時更新，以及遠端情境下一次性輸出省頻寬的判讀。">終端機文字圖表</a>。</li>
<li>監控的是 web 請求而非系統資源：<a href="/blog/linux/tools/cli/web-server-log-monitoring/" data-link-title="終端機看 nginx 請求：GoAccess、ngxtop 與何時該用 pipeline 而非 TUI" data-link-desc="在終端機即時看 nginx／web 伺服器請求的工具：GoAccess 即時儀表板、ngxtop top 風格，含 log 格式對齊的 gotcha；以及「當下排查用 TUI、持續監控用 metrics pipeline」的使用時機分界。">終端機看 nginx 請求</a>（GoAccess / ngxtop）。</li>
<li>TUI 監控在遠端工具分類中的定位：<a href="/blog/linux/tools/cli/cli-graphical-tools-overview/" data-link-title="終端機圖形化工具總覽：遠端操作下的 TUI、文字圖表與多工器" data-link-desc="在純文字終端機裡用 ASCII 與製圖字元做出監控儀表板、資料圖表與多視窗操作的工具總覽，並針對 SSH 伺服器、手機平板、低頻寬三種遠端情境給出選型判讀。">終端機圖形化工具總覽</a>。</li>
</ul>
]]></content:encoded></item></channel></rss>