跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文件 / 管理指南 / 系統 / 電源管理
適用範圍 SUSE Linux Enterprise Server 15 SP3

27 電源管理

IBM Z IBM Z 上不提供本章所述的功能和硬體,因此本章內容與這些平台不相關。

電源管理對筆記型電腦十分重要,對其他系統也很有用。ACPI (Advanced Configuration and Power Interface,進階組態和電源介面) 可以在所有現代電腦 (筆記型電腦、桌上型電腦和伺服器) 上使用。電源管理技術需要配備合適的硬體與 BIOS 常式。大多數筆記型電腦和許多新式的桌上型電腦及伺服器都符合這些需求。此技術還可以控制 CPU 頻率比例,這有助於省電及降低噪音。

27.1 省電功能

省電功能不僅對於筆記型電腦的行動用途很重要,對於桌上型系統也很重要。主要功能以及在 ACPI 中的用途包括:

待命

不支援。

暫停 (於記憶體)

此模式會將整個系統狀態寫入 RAM 中。接著,除了 RAM 以外,整個系統都會進入睡眠狀態。在此狀態中,電腦所使用的電源極少。此狀態的好處是可以在幾秒內將工作復原到暫停之前的狀態,而不用開機或重新啟動應用程式。此功能等同於 ACPI 狀態 S3

休眠 (暫停寫入到磁碟)

在此操作模式,會將整個系統狀態寫入硬碟,然後關閉系統。至少要有與 RAM 一樣大的交換分割區,才能寫入所有作用中資料。要從此狀況重新啟用需耗時 30 到 90 秒。還原時會回到暫停前的狀態。有些廠商會為此模式提供有用的混合功能,例如 IBM Thinkpad 中的 RediSafe。對應的 ACPI 狀態為 S4。在 Linux 中,暫停寫入到磁碟是由獨立於 ACPI 之外的核心常式來執行。

注意
注意:透過 mkswap 格式化時變更了交換分割區的 UUID

如果可能,請勿使用 mkswap 重新格式化現有的交換分割區。否則,使用 mkswap 重新格式化將變更交換分割區的 UUID 值。請透過 YaST 重新格式化 (如此將更新 /etc/fstab),或者手動調整 /etc/fstab

電池監控

ACPI 會檢查電池充電狀態並提供相關資訊。此外,ACPI 會在電力到達某個關鍵狀態時,協調要執行的動作。

自動關閉電源

關機後,電腦會關閉電源。此功能很重要,尤其是在電池用盡前所執行的自動關機。

處理器速度控制

與 CPU 連結時有三種方式可節省電源:頻率和電壓比例 (也稱為 PowerNow! Speedstep)、調節,以及讓處理器進入睡眠狀態 (C 狀態)。依據電腦的操作模式,也可以合併這些操作方法。

27.2 進階組態和電源介面 (ACPI)

ACPI 主要用於讓作業系統設定和控制個別的硬體元件。ACPI 取代了「電源管理隨插即用 (PnP)」與「進階電源管理 (APM)」。它能提供一些資訊,包括電池、交流電轉接器、溫度、風扇以及關閉蓋子電池電力不足等系統事件。

BIOS 會提供一些表格,內含關於個別元件與硬體的存取方法等資訊。作業系統會使用這此資訊來執行任務,像是指定中斷或啟用和停用元件。因為作業系統將執行 BIOS 中儲存的指令,所以功能取決於 BIOS 實作。journald 中報告了 ACPI 能偵測和載入的表格。如需有關檢視這些日誌記錄訊息的詳細資訊,請參閱第 17 章 「journalctl:查詢 systemd 日誌。請參閱第 27.2.2 節 「疑難排解」,以取得更多有關 ACPI 問題疑難排解的資訊。

27.2.1 控制 CPU 效能

CPU 可以使用三種方式省電:

  • 頻率和電壓比例

  • 調節時鐘頻率 (T 狀態)

  • 使處理器進入睡眠狀態 (C 狀態)

依據電腦的操作模式的不同,這些方法可合併使用。省電也表示能降低系統溫度,減低風扇的使用頻率。

頻率比例及調節只在處理器忙碌時使用,因為在處理器閒置時,必定會套用最經濟的 C 狀態。如果 CPU 正忙碌,頻率比例是建議的省電方法。通常處理器僅有部份的工作負載。在此情況中,可以使用較低的頻率。通常,最佳方法是使用依核心需求調節器來控制動態頻率比例。

調節應做最後手段使用,例如,在高度系統負載下仍要延伸電池操作時間時。不過在調節過多時,有些系統無法運作順暢。此外,當 CPU 要做的事不多時,調節 CPU 是無意義的動作。

如需更多資訊,請參閱Chapter 12, Power management

27.2.2 疑難排解

共有兩種不同類型的問題。一方面是核心的 ACPI 程式碼包含無法及時偵測到的錯誤。在這種情況中,將會有可供下載的解決方案。問題通常是因 BIOS 而起。有時,會刻意在 BIOS 中整合與 ACPI 規格不符的技術,以避免在其他常見作業系統中出現 ACPI 實作錯誤。會在黑名單中將那些在 ACPI 實行中有重大錯誤的硬體元件記錄下來,以避免 Linux 核心對這些元件使用 ACPI。

發生問題時要做的第一件事是更新 BIOS。若電腦未開機,以下其中一個開機參數可能有用:

pci=noacpi

不使用 ACPI 來設定 PCI 裝置。

acpi=ht

僅執行一個簡單的資源組態。不將 ACPI 用於其他目的。

acpi=off

關閉 ACPI。

警告
警告:不使用 ACPI 開機會出現問題

有些較新的機器 (尤其是 SMP 系統及 AMD64 系統) 需透過 ACPI 以正確設定硬體。關閉這些機器的 ACPI 會發生隨之而來的問題。

有時,透過 USB 或 FireWire 連接的硬體會另機器混淆。如果機器拒絕開機,則拔除所有不需要的硬體插頭,並再試一次。

開機後,可使用 dmesg -T | grep -2i acpi 指令來監控系統的開機訊息 (或所有訊息,因為也可能是 ACPI 以外的因素所導致的問題)。如果在分析 ACPI 表格時發生問題,可以將最重要的表格 DSDT (Differentiated System Description Table,區分系統描述表) 替換為改良版本。在此情況中,會忽略 BIOS 的錯誤 DSDT。程序在 第 27.4 節 「疑難排解」 中描述。

在核心組態中,有個啟用 ACPI 除錯訊息的切換。如果具有 ACPI 除錯功能的核心已編譯並安裝,則會發出詳細資訊。

如果您曾遇到 BIOS 問題或硬體問題,建議您聯絡廠商。尤其是哪些一直未提供 Linux 支援的廠商,更應該出面解決這些問題。唯有讓廠商得知他們有不少使用 Linux 的客戶,他們才會嚴肅地處理這些問題。

27.2.2.1 更多資訊

27.3 硬碟的休眠

在 Linux 中,可在不需使用硬碟時,讓硬碟完全進入睡眠狀態,或是讓硬碟以更省電、更安靜的方式來運作。在目前的筆記型電腦中,您不用手動關閉硬碟,因為它們會在不用的時候自動進入省電操作模式。不過,如果您想最大限度地省電,可以使用 hdparm 指令嘗試下面的幾種方法。

該指令能修改各種硬碟設定。-y 選項能立即將硬碟切換到待命模式。-Y 會使其進入睡眠狀態。hdparm -S X 會使硬碟在閒置一段時間後執行速度減慢。使用以下值取代 X0 表示停用此機制,會使硬碟持續執行。1240 的值將乘以 5 秒。241251 的值則是以 30 分鐘為一個單位,依序從 30 分鐘的閒置到 11 倍的 330 分鐘的閒置。

可以使用 -B 選項來控制硬碟內部的省電選項。可從 0255 中選取一個值,以最大化省電效果或最大化電力輸出。其結果視硬碟用途而定,難以評估。如果要減少硬碟噪音,請使用 -M 選項。從 128254 中選取一個值,以決定要安靜或快速。

通常,要讓硬碟進入睡眠不是件容易的事。在 Linux 中,會有多個程序寫入硬碟中,因而重複喚醒硬碟。因此,有必要去瞭解 Linux 如何處理那些要寫入硬碟的資料首先,會將所有資料在 RAM 中做緩衝處理。pdflush 精靈會監控此緩衝區。當資料到達特定的時間限制,或當緩衝區已填滿至某一程度時,會將緩衝區的內容注入硬碟。緩衝區的大小則動態地由記憶體地的大小及系統負載來決定。依預設,pdflush 會設成較短的間隔,以最大化資料的完整性。pdflush 每 5 秒檢查一次緩衝區,並將資料寫入硬碟。以下變數較為重要:

/proc/sys/vm/dirty_writeback_centisecs

包含 pdflush 執行緒喚醒前的延遲時間 (以百分之一秒為單位)。

/proc/sys/vm/dirty_expire_centisecs

定義一個時間框架,最遲應在該時間框架之後寫入改動分頁。預設值為 3000,即 30 秒。

/proc/sys/vm/dirty_background_ratio

pdflush 開始寫入改動分頁之前改動分頁的最大百分比。預設值為 5%。

/proc/sys/vm/dirty_ratio

當改動分頁超出總記憶體的此百分比後,將強制程序在其時間間隔期間寫入未寫入緩衝區,而不是繼續寫入。

警告
警告:資料完整性風險

pdflush 精靈設定進行變更可能會損害資料完整性。

除了這些程序之外,BtrfsExt3Ext4 日誌記錄檔案系統及其他檔案系統不經由 pdflush 便將中繼資料寫入硬碟,也會使得硬碟無法減速。

另一個重要因素在於啟動程式的行為方式。例如,好的編輯器會定期為修改中的檔案,將隱藏備份檔寫入硬碟,因而喚醒硬碟。停用這類功能可能會傷害資料的完整性。

在這一點上,postfix 郵件精靈會使用 POSTFIX_LAPTOP 變數。如果將此變數設為 yes,postfix 會減少存取硬碟的頻率。

27.4 疑難排解

所有錯誤訊息和警示均記錄在系統日誌中,您可使用 journalctl 指令來查詢該日誌 (如需詳細資訊,請參閱第 17 章 「journalctl:查詢 systemd 日誌)。下列幾節涵蓋了一些最常見的問題。

27.4.1 CPU 頻率功能不運作

請參閱核心來源以瞭解您的處理器是否受支援。您需要特殊核心模組或模組選項以啟用 CPU 頻率控制。如果 kernel-source 套件已安裝,則此資訊可在 /usr/src/linux/Documentation/cpu-freq/* 中找到。