このトピックでは、システム パラメーターまたはカーネル パラメーターの表示または変更、kdump の有効化または無効化、および Alibaba Cloud Linux 2 オペレーティングシステムへの Debuginfo パッケージ、ソースコード パッケージ、および試験的ソフトウェア パッケージのインストール方法について説明します。
パラメーターの表示または変更
システム パラメーターの表示または変更
sysctl コマンドを実行して、Alibaba Cloud Linux 2 の実行時システム パラメーターを表示または変更できます。Alibaba Cloud Linux 2 では、/etc/sysctl.d/50-aliyun.conf ファイルで、以下のカーネル構成関連のシステム パラメーターが更新されています。
システム パラメーター
説明
kernel.hung_task_timeout_secs = 240カーネルの hung_task タイムアウト期間(秒)を延長し、hung_task プロンプトが頻繁に表示されないようにします。
kernel.panic_on_oops = 1カーネルで Oops エラーが発生した場合に、カーネル パニック例外をスローします。 kdump が有効になっている場合、システム障害の詳細は自動的にキャプチャされます。
kernel.watchdog_thresh = 50高解像度タイマー(hrtimer)、マスク不可割り込み(NMI)、ソフト ロックアップ、ハード ロックアップなどのイベントのしきい値を設定して、カーネルの誤検知を防ぎます。
kernel.hardlockup_panic = 1カーネルでハード ロックアップ エラーが発生した場合に、カーネル パニック例外をスローします。 kdump が有効になっている場合、システム障害の詳細は自動的にキャプチャされます。
カーネル パラメーターの表示
cat /proc/cmdlineコマンドを実行して、Alibaba Cloud Linux 2 の実行時カーネル パラメーターを表示できます。Alibaba Cloud Linux 2 では、以下のカーネル パラメーターが更新されています。カーネル パラメーター
説明
crashkernel=0M-2G:0M,2G-8G:192M,8G-:256Mkdump 用のメモリ領域を予約します。
cryptomgr.notestsカーネル起動時の暗号化自己チェックを無効にして、システム起動を高速化します。
cgroup.memory=nokmemメモリ cgroup のカーネルメモリ統計機能を無効にして、カーネルの不安定化を防ぎます。
rcupdate.rcu_cpu_stall_timeout=300RCU CPUストールディテクタのタイムアウトしきい値を 300 秒に増やし、カーネルの誤検知を防ぎます。
kdump の有効化または無効化
Alibaba Cloud Linux 2 は kdump サービスを提供します。 このサービスを有効にすると、カーネル エラーをキャプチャして、カーネル障害の分析に役立てることができます。
選択したインスタンスタイプのメモリが 2 GiB を超えない場合、kdump サービスは使用できません。
kdump サービスを有効にするには、次のコマンドを順番に実行します。
# kdump サービスを有効にします。 sudo systemctl enable kdump.service # kdump サービスを再起動します。 sudo systemctl restart kdump.servicekdump サービスによって予約されているメモリアドレス空間をオペレーティングシステムに戻し、kdump サービスを無効にするには、次のコマンドを順番に実行します。
# /sys/kernel/kexec_crash_size ファイルの構成を変更します。 sudo sh -c 'echo 0 > /sys/kernel/kexec_crash_size' # kdump サービスを無効にします。 sudo systemctl disable kdump.service # kdump サービスを停止します。 sudo systemctl stop kdump.service説明kdump サービスによって予約されているメモリアドレス空間がオペレーティングシステムに戻された後、kdump サービスを再度有効にするには、オペレーティングシステムを再起動する必要があります。
Debuginfo パッケージとソースコード パッケージのインストール
Debuginfo パッケージをインストールするには、次のコマンドを順番に実行します。
# yum-utils をインストールします。 sudo yum install -y yum-utils # Debuginfo パッケージをインストールします。コマンドでは、packageName はインストールするパッケージの名前を指定します。 sudo debuginfo-install -y <packageName>ソースコード パッケージをインストールするには、次のコマンドを順番に実行します。
# ソースコードをインストールします。 sudo yum install -y alinux-release-source # yum-utils をインストールします。 sudo yum install -y yum-utils # ソースコード パッケージをインストールします。コマンドでは、sourcePackageName はインストールするパッケージの名前を指定します。 sudo yumdownloader --source <sourcePackageName>
試験的ソフトウェア パッケージの使用
試験的ソフトウェア パッケージは Alibaba Cloud によって提供されていますが、完全にはテストされていません。 Alibaba Cloud はこれらのパッケージの品質を保証しません。 Alibaba Cloud Linux 2 は、以下の種類の試験的パッケージを提供します。
通常の目的に使用される試験的ソフトウェア パッケージ
Golang 1.12Golang 1.13
試験的ソフトウェア パッケージをインストールするには、次のコマンドを順番に実行します。
# Yellowdog Updater Modified(YUM)リポジトリのサポートを有効にします。 sudo yum install -y alinux-release-experimentals # 通常の目的に使用される試験的ソフトウェア パッケージをインストールします。コマンドでは、packageName はインストールするソフトウェア パッケージの名前を指定します。 sudo yum install -y <packageName>SCL プラグインをサポートする開発キット
GCC-7.3.1に基づく開発キット: devtoolset-7GCC-8.2.1に基づく開発キット: devtoolset-8GCC-9.1.1に基づく開発キット: devtoolset-9
試験的ソフトウェア パッケージをインストールするには、次のコマンドを順番に実行します。
# scl-utils をインストールします。 sudo yum install -y scl-utils # YUM リポジトリのサポートを有効にします。 sudo yum install -y alinux-release-experimentals # YUM リポジトリから必要なソフトウェア パッケージをインストールします。次のサンプルコマンドは、SCL プラグインをサポートするすべての開発キットをインストールするために実行されます。 sudo yum install -y devtoolset-7-gcc devtoolset-7-gdb devtoolset-7-binutils devtoolset-7-make sudo yum install -y devtoolset-8-gcc devtoolset-8-gdb devtoolset-8-binutils devtoolset-8-make sudo yum install -y devtoolset-9-gcc devtoolset-9-gdb devtoolset-9-binutils devtoolset-9-makeソフトウェア パッケージがインストールされた後、GNU Compiler Collection(GCC)および関連ツールの新しいバージョンを使用できます。サンプルコマンド:
# リポジトリ名を指定して、既存の SCL を表示します。この例では、devtoolset-7 リポジトリが使用されています。 scl -l devtoolset-7 # 関連する SCL ソフトウェアを実行します。 scl enable devtoolset-7 'gcc --version'
FAQ
Debuginfo パッケージのインストールに失敗した場合はどうすればよいですか?
このトピックのDebuginfo パッケージとソースコード パッケージのインストールセクションで説明されているように、sudo debuginfo-install -y <packageName> コマンドを実行して Debuginfo パッケージをインストールできない場合は、次のコマンドを実行して Debuginfo パッケージをインストールします。
<packageName> をインストールするパッケージの名前に置き換えます。例: kernel-debuginfo。
sudo yum install --enablerepo=*-debug <packageName>