過去兩年,Home Assistant 一直是我智能家居的中樞。誰曾想,這臺默默工作的虛擬機,幾周前竟讓我的迷你主機風扇突然發了瘋似的轉個不停。
我的設置是這樣的:在一臺迷你主機上用 Proxmox 裝了幾個虛擬機,其中 Home Assistant 只分配了 2 個處理器核心和 2GB 內存。畢竟這平臺本身就很輕量,22 個核心只給兩個完全夠用。
![]()
一開始風扇忽快忽慢,我以為是 TrueNAS 那臺虛擬機在搞事情——它占用更多 CPU 資源,跑著一堆自托管服務。可看了好幾回儀表盤,什么都沒發現。
直到我在 Proxmox 里逐個排查虛擬機,才發現 Home Assistant 的 CPU 占用經常飆升到 40% 左右,然后回落。起初我還將信將疑:這虛擬機一共才能用兩個核心啊。
我試著查是不是哪個集成了的組件出問題,最終在網上找到了真正的原因。這個問題的禍根,藏在一個不太起眼的 DNS 工具上。
Home Assistant 自帶一個叫 hassio_dns 的組件,它是 CoreDNS 的插件,用來確保平臺的 DNS 請求能有可靠響應。它的機制是:一旦某個 DNS 查詢得不到想要的結果,就改用 Cloudflare 的 DNS 服務器作為后備方案。
這個設計跟我的自定義 DNS 設置沖突了。根據 Home Assistant 論壇上 2022 年的一篇帖子,hassio_dns 插件會在首次 DNS 請求被拒絕后,陷入一個死循環——不斷嘗試連接 Cloudflare 的 DNS 服務器,每次請求被拒絕就再發一次,CPU 占用隨之飆升。
解法簡單得出乎意料。我在 Reddit 上找到了答案:用 SSH 連到 Home Assistant 實例,輸入這行命令就行:
ha dns options --fallback=false
這條命令禁止 CoreDNS 在后備模式下的反復嘗試,死循環就此終止。
改完之后,CPU 占用恢復正常,迷你主機的風扇也安靜下來。即使你現在沒遇到同樣的問題,這個設置或許也值得提前調整——免得它哪天突然給你的設備帶來不必要的能耗。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.