RetroHexChat
反轉HexChat

反轉HexChat

正在開啟聊天...
說明 — RetroHexChat

系統視窗

十三個僅限管理員使用的視窗,用來讀取執行中的伺服器:它的記憶體、處理程序、連線、資料庫、Oban 工作和即時指標。

檔案 ▸ 系統(以及開始 ▸ 系統)下的系統群組會開啟十三個直接檢視伺服器本身的視窗。它們僅限管理員使用,而且全都是唯讀:這個群組中沒有任何功能能更動伺服器,這正是它與旁邊管理群組的區別。

從哪裡開始

Overview 是最先該開啟的視窗。它會報告伺服器所使用的 Erlang 與 Elixir 版本、已執行多久、流量通過了多少,以及距離會導致伺服器終止的三個上限還有多遠:atom、port 與 process。在這些之下,一條長條會把伺服器的記憶體分配給消耗它的六個部分。

App Info 回答另一個首要問題——這裡到底有誰。包括存活的頻道、不重複的在線人數、進行中的通話、執行中的虛擬空間,以及各頻道有哪些人員的列表。

列表

Processes、Applications、ETS Tables、Ports、Sockets 與 Memory Allocators 是同一種視窗,分別對應六種不同的對象。每一個都會在你輸入時篩選,並可依任何帶有箭頭的欄位排序——點一下標題即依該欄排序,再點一下則反向排序。

這個表格與產品中所有列表使用的是同一種:拖曳標題的右邊緣可加寬欄位,在該邊緣連按兩下可依最長的值調整欄寬,在標題列上按右鍵可隱藏欄。選取一列後,列會回應方向鍵,Ctrl+C 則會將選取內容複製為以 Tab 分隔的文字。 列表與表格 涵蓋了這一切。

  • Processes — 依「信箱」排序,找出接收速度快過處理速度的處理程序。從內部看,這就是伺服器卡住時的樣子。
  • ETS 資料表 — 依記憶體排序。沒人清理的記憶體內資料表,通常就是記憶體只增不減的原因。
  • Socket — 伺服器目前保持開啟的每一條連線,附有其端點與位元組計數器。
  • 記憶體配置器 — 將「區塊大小」與「載體大小」相比較。差距過大代表記憶體碎片化:伺服器向作業系統持有、卻無法使用的記憶體。

指標

即時圖表,一次顯示一組:HTTP、LiveView、資料庫、Oban、VM 和網域。「網域」是伺服器自身的監測——建立的頻道、進出的人員、加入的通話、虛擬空間中的移動。

圖表一開始是空的,隨著事件發生才逐漸填入。這不是故障:在你開啟視窗之前沒有任何量測資料,若向左邊緣畫出一條線,那就是捏造的。只有你正在檢視的群組會被訂閱,所以你沒在看的群組不會增加任何負擔。

Oban 健康狀態

Oban顯示耐久工作背後的背景工作系統,如RSS feed投票,bot調度,事件日誌,維護掃描,鏈接預覽和偏好持續. 頭條卡將主管健康、積極工作、可重試或丟棄的失敗、後續覆蓋和待決領域工作分開。

首先按狀態讀取隊列表: 可用方式表示工作現在可以運行, 排程表示它正在等待時間, 執行表示工人有它, 可重試表示奧班會再次嘗試, 丟棄方式表示嘗試已經用盡或工人放棄. 合同表格然後顯示RSS feeds和bot調度是否有後續工作,事件日誌工作是否備份,維護或持續工作是否落後。

OS Data 與 Database Stats

OS Data 是從伺服器外部觀察的檢視:主機的處理器、平均負載、記憶體與磁碟。伺服器本身看起來正常,不代表與它共用的機器也健康。主機不回報的讀數會顯示為破折號而不是零——這是兩種不同的情況。

Database Stats 一次針對 PostgreSQL 執行一份診斷報告:快取命中率、未使用的索引、膨脹、長時間執行的查詢,以及誰阻擋了誰。在你選擇報告之前不會執行任何查詢,因為這些都是對線上資料庫發出的真實查詢。

即時記錄

伺服器目前正在記錄內容的即時尾端。只有在你按下 Stream 後才會開始串流,按下 Stop 或關閉視窗時立即停止——沒有人看的記錄串流只是白白耗費資源。

如果你選擇的層級低於伺服器本身的記錄層級,視窗會明確告知,而不是毫無反應。低於伺服器自身層級的項目在任何視窗看到之前就已被丟棄,不論你等多久都一樣。

如實解讀

列表只會顯示篩選結果的前幾列,而表格上方的計數一定會告訴你符合的總數。「50 / 771」表示你看到的是前五十筆——不要因為列表填滿了視窗就以為它是完整的。

這些視窗都不會自動重新整理。每次走訪都會耗費伺服器實際的運算,因此重新整理是需要你按下的按鈕,而不是一個你會忘記已啟動的計時器。Metrics 是例外:它本質上是即時訂閱,視窗關閉時就會停止。

另請參閱