Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
コンテンツコンテンツ
管理ガイド
  1. このガイドについて
  2. I サポートと共通タスク
    1. 1 YaSTオンラインアップデート
    2. 2 サポート用システム情報の収集
    3. 3 テキストモードのYaST
    4. 4 Snapperによるスナップショットとロールバック
    5. 5 VNCによるリモートアクセス
    6. 6 コマンドラインツールによるソフトウェアの管理
    7. 7 BashとBashスクリプト
    8. 8 Using Third-Party Software
  3. II システム
    1. 9 64ビットシステム環境での32ビットと64ビットのアプリケーション
    2. 10 Linuxシステムのブートと設定
    3. 11 ブートローダGRUB
    4. 12 UEFI (Unified Extensible Firmware Interface)
    5. 13 特別なシステム機能
    6. 14 プリンタの運用
    7. 15 udevによる動的カーネルデバイス管理
    8. 16 X Windowシステム
    9. 17 FUSEによるファイルシステムへのアクセス
  4. III モバイルコンピュータ
    1. 18 Linuxでのモバイルコンピューティング
    2. 19 無線LAN
    3. 20 電源管理
    4. 21 タブレットPCの使用
  5. IV サービス
    1. 22 ネットワークの基礎
    2. 23 ネットワーク上のSLPサービス
    3. 24 NTPによる時刻の同期
    4. 25 ドメインネームシステム
    5. 26 DHCP
    6. 27 NetworkManagerの使用
    7. 28 Samba
    8. 29 NFS共有ファイルシステム
    9. 30 ファイルの同期
    10. 31 Apache HTTPサーバ
    11. 32 YaSTを使用したFTPサーバの設定
    12. 33 Squidプロキシサーバ
    13. 34 SFCBを使用したWebベースの企業管理
  6. V トラブルシューティング
    1. 35 ヘルプとドキュメント
    2. 36 最も頻繁に起こる問題およびその解決方法
  7. A サンプルネットワーク
  8. B GNU Licenses
ナビゲーション
適用先 SUSE Linux Enterprise Server 11 SP4

20 電源管理

IBM Z この章で説明する機能とハードウェアは、IBM System zには存在しないため、この章はこれらのプラットフォームに関係ありません。

電源管理はラップトップコンピュータで特に重要ですが、他のシステムでも役に立ちます。ACPI(Advanced Configuration and Power Interface)は、最近のすべてのコンピュータ(ラップトップ、デスクトップ、サーバ)で使用できます。電源管理テクノロジでは、適切なハードウェアとBIOSルーチンを必要とします。ほとんどのラップトップと多くの新型デスクトップおよびサーバは、これらの必要条件を満たしています。電源の節約や騒音の低減のために、CPU周波数を制御することもできます。

20.1 省電力機能

省電力機能はラップトップをモバイル使用する場合に限らず、デスクトップシステムでも重要です。ACPIの主要な機能と、その使用目的は、以下のとおりです。

スタンバイ

サポートされていない.

サスペンド(メモリに保存)

このモードでは、システム状態をすべてRAMに書き込みます。その後、RAMを除くシステム全体がスリープします。この状態では、コンピュータの消費電力が非常に小さくなります。この状態の利点は、ブートやアプリケーションの再起動をせずに、数秒でスリープ前の作業をスリープの時点から再開できることです。この機能は、ACPI状態S3に対応します。

ハイバーネーション(ディスクに保存)

この動作モードでは、システム状態がすべてハードディスクに書き込まれ、システムの電源がオフになります。すべてのアクティブデータを書き込むには、少なくともRAMの大きさのスワップパーティションが必要です。この状態から再開するには、30~90秒かかります。サスペンド前の状態が復元されます。メーカの中には、このモードを便利なハイブリッド仕様にして提供するものもあります(たとえば、IBM ThinkpadのRediSafe)。対応するACPI状態は、S4です。Linux環境では、suspend to diskはACPIから独立したカーネルルーチンにより実行されます。

バッテリモニタ

ACPIは、バッテリをチェックして、充電ステータスに関する情報を提供します。また、システムは、重要な充電ステータスに達した時点で実行するようにアクションを調整します。

自動電源オフ

シャットダウンの後、コンピュータの電源が切れます。これは、バッテリが空になる直前に自動シャットダウンが行われる場合に特に重要です。

プロセッサ速度の制御

CPUとの接続では、次の3つの方法で省エネできます: 周波数と電圧の調節(PowerNow!またはSpeedstep)、スロットリング、およびプロセッサをスリープ状態(C-states)にすること。コンピュータの動作モードによっては、この3つの方法を併用することもできます。

20.2 ACIP(詳細設定と電源インタフェース)

ACPIは、オペレーティングシステムが個々のハードウェアコンポーネントをセットアップし、制御できるように設計されています。ACPIは、PnP(Power Management Plug and Play)とAPM(Advanced Power Management)の両方に優先します。また、ACPIはバッテリ、ACアダプタ、温度、ファン、および close lid battery low などのシステムイベントに関する情報も提供します。

BIOSには個々のコンポーネントとハードウェアアクセス方法についての情報が入ったテーブルがあります。オペレーティングシステムは、この情報を使用して、割り込みまたはコンポーネントの有効化と無効化などのタスクを実行します。BIOSに格納されているコマンドを、オペレーティングシステムが実行するとき、機能はBIOSの実装方法に依存します。ACPIが検出可能で、ロードできるテーブルは、/var/log/boot.msgにレポートされます。ACPIに生じた問題のトラブルシューティングについては、20.2.2項 「トラブルシューティング」を参照してください。

20.2.1 CPUパフォーマンスの制御

CPUには、3つの省エネ方法があります。

  • 周波数と電圧の調節

  • クロック周波数のスロットリング(T-states)

  • プロセッサのスリープ状態への切り替え(C-states)

コンピュータの動作モードによっては、この3つの方法を併用することもできます。また、省電力とは、システムの温度上昇が少なく、ファンが頻繁にアクティブにならないことを意味します。

周波数調節とスロットリングに意味があるのは、プロセッサがビジー状態の場合だけです。これは、プロセッサがアイドル状態のときには、常に、最も経済的なC-stateが適用されるからです。CPUがビジー状態の場合、省電力方式として周波数調節を使用することをお勧めします。通常、プロセッサは部分的な負荷でのみ動作します。この場合は、低周波数で実行できます。通常、カーネルのオンデマンドガバナによって動的に制御される動的な周波数調節が最良のアプローチです。

スロットリングは、システムが高負荷であるにもかかわらずバッテリ使用時間を延長する場合など、最後の手段として使用する必要があります。ただし、スロットリングの割合が高すぎると、スムーズに動作しないシステムがあります。さらに、CPUの負荷が小さければ、CPUスロットリングは無意味です。

詳細については、Chapter 11, Power Managementを参照してください。

20.2.2 トラブルシューティング

問題を2つに大別できます。1つはカーネルのACPIコードに、未検出のバグが存在する可能性があることです。この場合は、いずれ修正プログラムがダウンロードできるようになります。ただし、問題の多くはBIOSが原因になっています。また、場合によっては、他の広く普及しているオペレーティングシステムにACPIを実装した場合にエラーが起きないよう、BIOSにおけるACPIの指定を故意に変えていることがあります。ACPIに実装すると重大なエラーを生じるハードウェアコンポーネントは、ブラックリストに記録され、これらのコンポーネントに対してLinuxカーネルがACPIを使用しないようにします。

問題に遭遇したときに最初に実行することは、BIOSの更新です。コンピュータがまったくブートしない場合、次のブートパラメータは有用です。

pci=noacpi

PCIデバイスの設定にACPIを使用しません。

acpi=ht

単純なリソース設定のみを実行します。ACPIを他の目的には使用しません。

acpi=off

ACPIを無効にします。

警告
警告: ACPIなしに起動できない場合

一部の新型のコンピュータは(特に、SMPシステムとAMD64システム)、ハードウェアを正しく設定するためにACPIが必要です。これらのコンピュータでACPIを無効にすると、問題が生じます。

コンピュータは時折、USBまたはFireWireを介して接続されたハードウェアと混同されることがあります。コンピュータが起動を拒否した場合、必要のないハードウェアのプラグをすべてはずして再試行してください。

システムのブートメッセージを調べてみましょう。そのためには、ブート後にコマンドdmesg | grep -2i acpiを使用します(または、問題の原因がACPIだとは限らないので、すべてのメッセージを調べます)。ACPIテーブルの解析時にエラーが発生した場合は、最も重要なテーブルDSDT (Differentiated System Description Table)を改善されたバージョンと置き換えることができます。この場合、BIOSで障害のあるDSDTが無視されます。具体的な手順については20.4項 「トラブルシューティング」を参照してください。

カーネルの設定には、ACPIデバッグメッセージを有効にするスイッチがあります。ACPIデバッグを有効にした状態でカーネルをコンパイルおよびインストールすると、詳細情報が発行されます。

BIOSまたはハードウェアに問題がある場合は、常にメーカに連絡することをお勧めします。特に、Linuxに関するサポートを常に提供していないメーカには、問題を通知する必要があります。なぜなら、メーカは、自社の顧客の無視できない数がLinuxを使用しているとわかってやっと、問題を真剣に受け止めるからです。

20.2.2.1 詳細情報

20.3 ハードディスクの休止

Linux環境では、不要な場合にハードディスクを完全にスリープ状態にしたり、より経済的な静止モードで動作さることができます。最近のラップトップの場合、ハードディスクを手動でオフに切り替える必要はありません。不要な場合は自動的に経済的な動作モードになります。ただし、最大限に省電力したい場合は、次の方法のいくつかをhdparmコマンドでテストしてください。

このコマンドを使用すると、各種のハードディスク設定を変更できます。-yオプションは、簡単にハードディスクをスタンバイモードに切り替えます。-Yを指定すると、スリープ状態になります。hdparm -S xを使用すると、一定時間アクティビティがなければハードディスクが回転を停止します。xは、次のように置換します。0を指定するとこの機構が無効になり、ハードディスクは常時稼働します。1から240までの値を指定すると、指定した値x 5秒が設定値になります。241から251は、30分の1倍から11倍(30分から5.5時間)に相当します。

ハードディスクの内部省電力オプションは、オプション-Bで制御できます。0 (最大限の省電力)~255 (最大限のスループット)の値を選択します。結果は使用するハードディスクに応じて異なり、査定するのは困難です。ハードディスクを静止状態に近づけるにはオプション-Mを使用します。128 (静止)~254 (高速)の値を選択します。

ハードディスクをスリープにするのは、多くの場合簡単ではありません。Linuxでは、多数のプロセスがハードディスクに書き込むので、ウェイクアップが常に繰り返されています。したがって、ハードディスクに書き込むデータを、Linuxがどのように処理するかを理解することは重要です。はじめに、すべてのデータがRAMにバッファされます。このバッファは、pdflushデーモンによって監視されます。データが一定の寿命に達するか、バッファがある程度一杯になると、バッファの内容がハードディスクにフラッシュされます。バッファサイズはダイナミックであり、メモリサイズとシステム負荷に対応して変化します。デフォルトでは、データの完全性を最大まで高めるように、pdflushの間隔が短く設定されています。pdflushデーモンはバッファを5秒おきにチェックし、データをハードディスクに書き込みます。次の変数が使用できます。

/proc/sys/vm/dirty_writeback_centisecs

pdflushスレッドが起動するまでの遅延(100分の1秒台)を含みます。

/proc/sys/vm/dirty_expire_centisecs

ダーティページが次に最新の変更を書き込まれるまでの時間枠を定義します。デフォルト値は3000(つまり 30秒)です。

/proc/sys/vm/dirty_background_ratio

pdflushが書き込みを始めるまでのダーティページの最大割合。デフォルトは5パーセントです。

/proc/sys/vm/dirty_ratio

メモリ全体の中でダーティページの割合がこの値を超えると、プロセスは書き込みを続けずに、短時間でダーティバッファを書き込むように強制されます。

警告
警告: データの完全性に関する障害

pdflushデーモンの設定を変更すると、データの完全性が損なわれる可能性があります。

これらのプロセスとは別に、BtrfsExt3Ext4などのジャーナリングファイルシステムは、それらが持つメタデータをpdflushとは無関係に書き込むので、ハードディスクがスピンダウンしなくなります。

もう1つの重要な要因は、アクティブプログラムが動作する方法です。たとえば、優れたエディタは、変更中のファイルを定期的にハードディスクに自動バックアップし、これによってディスクがウェイクアップされます。データの完全性を犠牲にすれば、このような機能を無効にできます。

この接続では、メールデーモンpostfixが変数POSTFIX_LAPTOPを使用します。この変数をyesに設定すると、postfixがハードディスクにアクセスする頻度は大幅に減少します。

20.4 トラブルシューティング

すべてのエラーメッセージおよびアラートはファイル/var/log/messagesに記録されます。以下のセクションでは、最も頻繁に起こる問題について解説します。

20.4.1 ACPIはハードウェアサポートで有効になっていますが、各機能を使用できません。

ACPIに問題がある場合は、dmesg|grep -i acpiコマンドを使用して、dmesgの出力を調べ、ACPI固有のメッセージを検索します。

問題を解決するためにBIOSのアップデートが必要になる場合があります。ラップトップメーカのホームページにアクセスし、BIOSの更新バージョンを検索してインストールします。メーカに最新のACPI仕様に準拠していることを確認してください。BIOSの更新後もエラーが継続する場合は、以下の手順に従い、BIOS内で問題が発生しているDSDTテーブルを更新されたDSDTに置き換えます。

手順 20.1: BIOSでのDSDTテーブルの更新

次の手順では、パッケージkernel-sourcepmtools、およびmkinitrdがインストールされていることを確認してください。

  1. http://acpi.sourceforge.net/dsdt/index.phpからシステムに適したDSDTをダウンロードします。以下に示すようにファイルを解凍し、コンパイル後ファイル拡張子が.aml (ACPI machine language)になっていることを確認します。拡張子が.amlの場合はステップ3に進みます。

  2. ダウンロードしたテーブルのファイル拡張子が.asl (ACPI source language)である場合は、次のコマンドを実行してファイルをコンパイルします。

    iasl -sa file.asl
  3. (結果の)ファイルDSDT.amlを任意の場所(/etc/DSDT.amlを推奨)にコピーします。

  4. /etc/sysconfig/kernelを編集し、DSDTファイルに応じてパスを変更します。

  5. mkinitrdを起動します。カーネルをインストールし、mkinitrdを使用してinitrdファイルを作成するたびに、システムのブート時に、変更されたDSDTが組み込まれ、ロードされます。

20.4.2 CPU周波数調節が機能しません。

カーネルのソースを参照して、ご使用のプロセッサがサポートされているか確認してください。CPU周波数制御を有効にするには特別なカーネルモジュールまたはモジュールオプションが必要になる場合があります。kernel-sourceパッケージがインストールされている場合は、この情報を/usr/src/linux/Documentation/cpu-freq/*で入手できます。

20.4.3 サスペンドとスタンバイが機能しない

ACPIシステムでは問題のあるDSDTを実装していることにより(BIOS)、サスペンドとスタンバイに関する問題が発生する可能性があります。そのような場合は、BIOSをアップデートしてください。

システムが不具合のあるモジュールをアンロードしようとすると、システムは停止するか、またはサスペンドイベントがトリガされません。また、サスペンドに入らない原因となるモジュールをアンロードしない、またはそうしたサービスを停止しない場合、同様の状態に陥る可能性があります。どちらの場合でも、スリープモードに入らない原因となっている障害モジュールを識別してください。ログファイル/var/log/pm-suspend.logには、エラーのの内容と場所に関する詳細情報が含まれます。/usr/lib/pm-utils/defaultsSUSPEND_MODULES変数を変更し、サスペンドまたはスタンバイがトリガされる前に問題のあるモジュールをアンロードします。

20.5 その他の情報

このページを印刷