ウェブサイト検索

カーネル ランタイム パラメータを永続的および非永続的な方法で変更するにはどうすればよいですか?


導入

カーネル ランタイム パラメーターは、システム上の Linux カーネルの動作を制御する設定です。これらのパラメータは、メモリ割り当て、ネットワーク パフォーマンス、CPU スケジューリングなど、幅広いシステム機能に影響を与える可能性があります。

これらのパラメータの変更方法を理解することは、システムのパフォーマンスを最適化し、発生する可能性のある問題のトラブルシューティングを行うために非常に重要です。カーネル ランタイム パラメータを変更するには、主に 2 つの方法があります。非永続的な変更と永続的な変更です。

非永続的な変更はカーネルの動作を一時的に変更しますが、変更はシステムを再起動するまでのみ持続します。一方、永続的な変更はカーネルの動作を永続的に変更し、再起動後も保持されます。

非永続的な方法でのカーネル ランタイム パラメータの変更

非永続的な変更の定義とその仕組み

カーネル ランタイム パラメータへの非永続的な変更は一時的な変更であり、システムの再起動後は存続しません。これらの変更は、sysctl や echo などのコマンドライン ツールを使用して行うことができます。システムが再起動されると、カーネル ランタイム パラメータに加えられた変更は失われ、システムはデフォルト設定に戻ります。

非永続的変更の主な利点の 1 つは、システムに永続的な変更を加えずに、さまざまな構成を迅速にテストできることです。この柔軟性には欠点もあります。再起動またはサービスの再起動のたびに、必要な非永続的な変更が確実に再適用されるように管理者が常に注意を払う必要があるためです。

コマンドライン ツールを使用して非永続的な変更を行う方法に関するステップバイステップ ガイド

次の手順では、コマンドラインツールを使用して非永続的な方法でカーネルランタイムパラメータを変更する方法を詳しく説明します-

  • どのカーネルパラメータを変更するかを特定します。

  • ターミナルを開き、「sysctl -a」または「cat /proc/sys/[parameter_name]」(引用符なし) と入力すると、すべての sysctl 変数または個々のパラメーターの現在の値がすべて表示されます。

sysctl –a

または

cat /proc/sys/[parameter_name]
  • 変更する値を決定し、「echo [値] > /proc/sys/[パラメータ名]」(引用符なし) または「sysctl -w [パラメータ名]=[値]」(引用符なし) のいずれかを使用します。続いて「sysctl -p」を実行します (保留中の設定をすべて適用します)。

echo [value] > /proc/sys/[parameter_name]

または

sysctl -w [parameter_name]=[value]

sysctl -p
  • 新しい値が有効になったことを確認します。「cat /proc/sys/[parameter_name]」を再度使用するか、新しい設定でアプリケーションを実行してみてください。

非永続的な方法で変更できる一般的なカーネル ランタイム パラメータの例

以下は、上記のプロセスを使用して非永続的な方法で変更できるカーネルランタイムパラメータの例です-

  • net.ipv4.tcp_syncookies - 特定のタイプのサービス拒否攻撃から保護するために使用される SYN Cookie を無効にするには、0 に設定します。

  • vm.swappiness - カーネルがメモリ内のファイルにバックアップされたページを再利用するよりも、非アクティブなプロセスをスワップアウトすることを優先する度合いを制御します。

  • net.ipv4.ip_forward - ルーターとして機能するノードでの IP 転送を有効にするには、1 に設定します。

  • kernel.sem - System V IPC セマフォ、メッセージキュー、共有メモリセグメントの最大値を調整します。

  • fs.file-max −システム全体で利用可能なファイルハンドルの最大数を設定します。

これらのパラメータを非永続的な方法で変更することにより、管理者は、変更を永続的にコミットする前に、さまざまな構成を試し、システムに最適なものを判断できます。

カーネル ランタイム パラメータを永続的に変更する

永続的な変更の定義と非永続的な変更との違い

カーネル ランタイム パラメータに永続的な変更を加えるということは、システムの再起動後も変更が残ることを意味します。これらの変更は構成ファイルに保存されるため、システムの初期化時に自動的にロードできます。これは、カーネル設定を一時的に変更するだけで、システムの再起動時に元の値に戻る非永続的な変更とは異なります。

永続的な変更は、複数回の再起動にわたって一貫性を保つ必要があるカーネル設定に長期的な変更を加える場合に役立ちます。さらに、構成ファイルを通じて永続的な変更を行うことができるため、複数のシステムの構成を自動化するのに役立ちます。

構成ファイルを使用して永続的な変更を行う方法に関するステップバイステップ ガイド

設定ファイルを使用して永続的な変更を行うには、変更するパラメータに応じて適切な設定ファイルを変更する必要があります。通常、これらの構成ファイルは /etc/sysctl.d/ ディレクトリにあります。これを行う方法に関するステップバイステップのガイドは次のとおりです-

  • ターミナル ウィンドウを開き、「sudo su」と入力して root ユーザーに切り替えます。

  • 「cd /etc/sysctl.d/」と入力して、/etc/sysctl.d/ ディレクトリに移動します。

  • 好みのテキスト エディタ (nano など) を使用して「nano filename.conf」と入力し、このディレクトリに拡張子が「.conf」の新しいファイルを作成します。

  • 必要なカーネル ランタイム パラメータと対応する値をこのファイルに追加します (1 行に 1 つのパラメータと値のペア)。

例 -

net.ipv4.tcp_fin_timeout=30 
vm.swappiness=10  
  • CTRL+X、Y、ENTER の順に押して、ファイルを保存して閉じます。

  • コマンド「sysctl --system」を使用して sysctl 設定を更新します。 これらの手順を実行すると、永続的なカーネル ランタイム パラメータの変更が構成ファイルに保存され、再起動後も保持されます。

永続的な方法で変更できる一般的なカーネル ランタイム パラメータの例

多くのカーネル ランタイム パラメータは、構成ファイルを通じて永続的な方法で変更できます。ここにいくつかの一般的な例があります-

  • net.ipv4.tcp_fin_timeout -このパラメータは、接続が閉じられた後に接続が TIME_WAIT 状態に留まる時間を制御します。通常、デフォルト値は 60 秒ですが、接続をより速く閉じるためにこれを減らすことができます。

  • vm.swappiness -このパラメータは、カーネルがRAMとスワップスペースの間でメモリページをどの程度積極的にスワップするかを制御します。値が低い (10 など) とスワップが少なくなり、物理メモリの使用量が増えます。値が高い (60 など) と、スワップが増えて物理メモリの使用が減ります。

  • fs.file-max -このパラメータは、常にシステム上に存在できるオープンファイルの最大数を設定します。この値を増やすと、ファイル I/O 要求が高いシステムに役立ちます。

全体として、構成ファイルを使用してカーネル ランタイム パラメータを永続的な方法で変更することは、システムの動作を長期的に変更したいシステム管理者にとって重要なスキルです。これらの手順に従うことで、システムが起動するたびに構成が自動的にロードされるようになり、手動介入が減り、時間を節約できます。

カーネル ランタイム パラメータを変更するためのベスト プラクティス

カーネルのランタイムパラメータを変更すると、システムのパフォーマンスと安定性に大きな影響を与える可能性があります。問題を回避し、変更を確実に有効にするには、変更を行う際にベスト プラクティスに従うことが重要です。このセクションでは、主要なベスト プラクティスのいくつかについて説明します。

変更を実装する前にテストすることの重要性

変更を実装する前に、それらの変更を非実稼働環境でテストすることが重要です。これにより、運用システムに変更を展開する前に、問題や競合を特定できます。テストには、変更が加えられた後にシステムが期待どおりに機能することの検証を含める必要があります。

非永続的変更と永続的変更をいつ使用するかについてのディスカッション

カーネル ランタイム パラメータの変更を非永続的に行うか永続的に行うかの選択は、主に、変更の意図する範囲とその潜在的な影響によって異なります。非永続的な変更は、システムの再起動間で維持する必要のない一時的な変更に最適ですが、永続的な変更は、再起動後も保持する必要がある長期的な変更に適しています。

結論

カーネル ランタイム パラメータの変更は、システムのパフォーマンスと機能を最適化するための強力なツールになります。非永続的変更と永続的変更の違いを理解することで、ユーザーは特定のニーズにどの方法を使用するかについて情報に基づいた決定を下すことができます。これらのパラメータに加えた変更は、運用システムに実装する前に徹底的にテストする必要があることに留意することが重要です。

この記事では、コマンド ライン ツールと構成ファイルを使用して非永続的変更と永続的変更の両方を行う手順を段階的に説明してきました。また、カーネル ランタイム パラメーターを変更するためのベスト プラクティスについても説明し、発生する可能性のある潜在的な問題のトラブルシューティングに関するヒントも提供しました。

関連記事: