はじめに
この実験では、tuned-adm コマンドラインツールを使用して、Linux でパフォーマンスプロファイルがアクティブかどうかを確認する方法を学びます。このツールは、特定のワークロードに最適化された事前定義されたプロファイルに基づいて設定を動的に調整することで、システムパフォーマンスを管理します。
tuned-adm active と tuned-adm status を使用して、現在アクティブな tuned プロファイルを識別する方法を探ります。また、どのプロファイルがアクティブか、またはプロファイルがアクティブでない場合にはそれを判断するために出力を解釈する方法を学び、これらのコマンドを実行する際の sudo 権限の重要性を理解します。さらに、sysctl -a で sysctl 設定を検証し、cat /etc/tuned で tuned 設定を調べる方法を学びます。
tuned-adm active でプロファイルを確認する
このステップでは、tuned-adm を使用して現在アクティブなプロファイルを確認する方法を探ります。tuned-adm は、事前定義されたプロファイルに基づいてシステム設定を動的に調整することで、システムパフォーマンスを管理するためのコマンドラインツールです。これらのプロファイルは、スループット、レイテンシ、または省電力などの特定のワークロードに合わせてシステムを最適化します。
まず、tuned プロファイルが何であるかを理解しましょう。tuned プロファイルは、特定のワークロードに合わせてシステムを最適化する設定の集合です。これらの設定には、CPU 周波数スケーリング、ディスク I/O スケジューリング、およびネットワークチューニングパラメータが含まれる場合があります。
現在アクティブな tuned プロファイルを確認するには、ターミナルを開きます。ターミナルは、Linux システムと対話するためのコマンドセンターです。デスクトップの左側にある Xfce Terminal アイコンを見つけることができます。
次に、以下のコマンドを入力して Enter キーを押します。
sudo tuned-adm active
このコマンドは、tuned デーモンに問い合わせて、アクティブなプロファイルの名前を表示します。次のような出力が表示されるはずです。
Current active profile: virtual-guest
出力の virtual-guest は、virtual-guest プロファイルが現在アクティブであることを示しています。このプロファイルは通常、仮想マシンで使用され、仮想化環境に合わせてシステムを最適化します。
プロファイルがアクティブでない場合、出力は次のようになります。
No current active profile.
tuned-adm コマンドはシステム設定を変更するため、sudo 権限が必要です。sudo を使用すると、管理者権限でコマンドを実行することができます。
次に、tuned デーモンに関する詳細情報を取得するために、別のコマンドを試してみましょう。
sudo tuned-adm status
このコマンドは、アクティブなプロファイル、適用されているチューニングプラグイン、および警告やエラーなどの詳細なステータスレポートを提供します。出力は次のようになる場合があります。
Currently active profile: virtual-guest
plugin: (...)
(...)
tuned-adm status コマンドは、トラブルシューティングや tuned デーモンが正常に機能していることを確認するのに役立ちます。
アクティブなプロファイルを確認することで、システムが意図した用途に合わせて最適化されていることを確認できます。別のプロファイルに切り替える必要がある場合は、tuned-adm profile コマンドを使用できます。これについては後のステップで説明します。
sysctl -a で sysctl 設定を確認する
このステップでは、sysctl コマンドを使用して現在のシステム設定を表示します。sysctl は、カーネルパラメータをランタイムで設定できる強力なツールです。これらのパラメータは、ネットワーキング、メモリ管理、セキュリティなど、システムの動作の様々な側面を制御します。
sysctl を、Linux システムを再起動することなく微調整する方法と考えてください。これは、車の設定を調整してパフォーマンスを最適化するのと同じようなものです。
現在のすべての sysctl 設定を表示するには、ターミナルを開き、以下のコマンドを入力します。
sudo sysctl -a
このコマンドは、カーネルパラメータとその現在の値の長いリストを表示します。出力は次のようになります。
kernel.domainname = (none)
kernel.osrelease = (...)
kernel.ostype = Linux
kernel.panic = 60
(...)
net.ipv4.ip_forward = 0
net.ipv4.tcp_rmem = 4096 131072 6291456
(...)
vm.swappiness = 60
vm.vfs_cache_pressure = 100
出力は parameter = value の形式で構成されています。各行は、特定のカーネルパラメータとその現在の設定を表しています。
よく見るいくつかの一般的なパラメータを分解してみましょう。
kernel.domainname: システムのドメイン名。net.ipv4.ip_forward: IPv4 の IP 転送(ルーティング)を制御します。値が0の場合は転送が無効になり、1の場合は有効になります。vm.swappiness: カーネルがメモリページをディスクにスワップする積極性を定義します。値が低いほどスワッピングが減少し、値が高いほどスワッピングが増加します。vm.vfs_cache_pressure: カーネルがディレクトリと inode 情報のキャッシュに使用されるメモリを回収する積極性を制御します。
grep を使用して出力をフィルタリングし、特定の設定を見つけることができます。たとえば、vm.swappiness の値を見つけるには、以下のコマンドを使用できます。
sudo sysctl -a | grep vm.swappiness
これにより、vm.swappiness を含む行のみが表示されます。
vm.swappiness = 60
sysctl -a コマンドは、Linux システムの現在の構成を理解するための貴重なツールです。これを使用すると、幅広いカーネルパラメータを調べ、最適化の潜在的な領域を特定することができます。
後のステップでは、sysctl を使用してこれらの設定を変更する方法と、tuned プロファイルがこのプロセスを自動化する方法を探ります。
cat /etc/tuned で tuned 設定を確認する
このステップでは、/etc/tuned ディレクトリにある tuned 設定ファイルを調べます。これらのファイルは、tuned がシステムパフォーマンスを最適化するために使用する様々なプロファイルを定義しています。
tuned の設定はプロファイルに分かれており、それぞれが /etc/tuned 内のサブディレクトリで表されます。各プロファイルディレクトリには、そのプロファイルのチューニングパラメータを指定する tuned.conf ファイルが含まれています。
/etc/tuned ディレクトリの内容を表示するには、ターミナルを開き、以下のコマンドを入力します。
ls /etc/tuned
このコマンドは、利用可能な tuned プロファイルを一覧表示します。次のような出力が表示されるはずです。
acceleratorcard desktop latency-performance network-latency network-throughput powersave profile_includes README throughput-performance virtual-guest virtual-host
これらは、tuned がアクティブにできる異なるプロファイルの名前です。各プロファイルは、特定のタイプのワークロードまたは環境用に設計されています。
では、最初のステップでアクティブなプロファイルとして特定した virtual-guest プロファイルの設定ファイルを調べてみましょう。virtual-guest プロファイルの tuned.conf ファイルの内容を表示するには、以下のコマンドを使用します。
cat /etc/tuned/virtual-guest/tuned.conf
このコマンドは、tuned.conf ファイルの内容を表示します。出力は、様々な設定が記載されたテキストファイルになります。ファイルはセクションに分かれており、それぞれが一連のチューニングパラメータを定義しています。
[main]
include = virtual-server
[sysctl]
vm.swappiness = 30
[vm]
transparent_hugepages = never
主要なセクションを分解してみましょう。
[main]: このセクションは、プロファイルの一般的な設定を定義します。たとえば、他のどのプロファイルを含めるかなどです。この場合、virtual-serverプロファイルを含めているため、そのプロファイルの設定も引き継ぎます。[sysctl]: このセクションは、プロファイルがアクティブになったときに設定するsysctlパラメータを定義します。この例では、vm.swappinessを30に設定しています。これにより、システムがメモリをディスクにスワップする傾向が減少し、仮想化環境でのパフォーマンスが向上する可能性があります。[vm]: このセクションは、仮想メモリの設定を定義します。この例では、透明ハイパーページを無効にしており、一部の仮想化環境でのメモリ管理を改善することができます。
他のプロファイルの設定ファイルを調べることで、それらがどのように異なるかを確認できます。たとえば、throughput-performance プロファイルはディスク I/O パフォーマンスを優先する場合があり、powersave プロファイルは消費電力の削減に重点を置く場合があります。
tuned 設定ファイルを調査することで、tuned が異なるワークロードに対してシステムをどのように最適化するかを深く理解することができます。この知識は、パフォーマンスの問題をトラブルシューティングし、特定のニーズに合わせてシステムをカスタマイズする際に役立ちます。
まとめ
この実験では、コマンドラインツール tuned-adm を使用して Linux で現在アクティブなパフォーマンスプロファイルを確認する方法を学びました。sudo tuned-adm active を使用してアクティブなプロファイルを特定しました。このプロファイルは、特定のワークロードに対してシステムを最適化します。出力には、virtual-guest などのアクティブなプロファイルの名前が表示されるか、プロファイルがアクティブでないことが示されます。
さらに、sudo tuned-adm status コマンドを使って、アクティブなプロファイル、適用されているチューニングプラグイン、警告やエラーなど、より詳細なステータスレポートを取得しました。これにより、tuned デーモンの設定と動作について包括的な概要を把握することができます。



