このトピックでは、Alibaba Cloud Linux 2オペレーティングシステムで、システムまたはカーネルパラメーターの表示、kdumpの有効化または無効化、および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-:256M
kdump用のメモリスペースを予約します。
cryptomgr.notests
カーネルの起動時に暗号化セルフチェックを無効化して、システムの起動を高速化します。
cgroup.memory=nokmem
メモリcgroupのカーネルメモリ統計機能を無効にして、潜在的なカーネルの不安定性を防ぎます。
rcupdate.rcu_cpu_stall_timeout=300
カーネルの誤検知を防ぐため、RCU CPU Stall Detectorのタイムアウトしきい値を300秒に上げます。
kdump の有効化または無効化
Alibaba Cloud Linux 2はkdumpサービスを提供します。 このサービスを有効化すると、カーネルエラーがキャプチャされ、カーネルの障害分析に役立てることができます。
選択したインスタンスタイプのメモリが2 GiBを超えない場合、kdumpサービスは使用できません。
次のコマンドを順番に実行して、kdumpサービスを有効にします。
# Enable the kdump service. sudo systemctl enable kdump.service # Restart the kdump service. sudo systemctl restart kdump.service
次のコマンドを順番に実行して、kdumpサービスによって予約されたメモリアドレス空間をオペレーティングシステムに戻し、kdumpサービスを無効にします。
# Change the configurations in the /sys/kernel/kexec_crash_size file. sudo sh -c 'echo 0 > /sys/kernel/kexec_crash_size' # Disable the kdump service. sudo systemctl disable kdump.service # Stop the kdump service. sudo systemctl stop kdump.service
説明kdumpサービスによって予約されたメモリアドレス空間がオペレーティングシステムに戻された後、kdumpサービスを再度有効にする前に、オペレーティングシステムを再起動する必要があります。
Debuginfo パッケージとソースコードパッケージの入手
# Install yum-utils:
# Install yum-utils. sudo yum install -y yum-utils # Install the Debuginfo package. In the command, packageName specifies the name of the software package that you want to install. sudo debuginfo-install -y <packageName>
次のコマンドを順番に実行して、ソースコードパッケージを取得します
# Install the source code. sudo yum install -y alinux-release-source # Install yum-utils. sudo yum install -y yum-utils # Install the source code package. In the command, sourcePackageName specifies the name of the software package that you want to install. sudo yumdownloader --source <sourcePackageName>
実験的なソフトウェアパッケージの使用
Alibaba Cloud は実験的なソフトウェアパッケージを提供していますが、これらに対する完全なテストは行われていません。 Alibaba Cloud はこれらのパッケージの品質を保証しません。 Alibaba Cloud Linux 2は、次のタイプの実験パッケージを提供します。
通常の目的を果たす実験用ソフトウェアパッケージ。 例:
Golang 1.12
Golang 1.13
次のコマンドを順番に実行して、実験用ソフトウェアパッケージをインストールします。
# Enable support for the YUM repository. sudo yum install -y alinux-release-experimentals # Query the name and version of an experimental software package that serves regular purposes. Example: golang. sudo yum list <packageName> --showduplicates # Install an experimental software package that serves regular purposes. In the command, <packageName>-specifies the name of the software package that you want to install. <pacakgeVersion> specifies the version of the software package that you want to install. Example: golang-1.13.6. sudo yum install -y <packageName>-<pacakgeVersion>
SCL プラグインをサポートする開発キット
GCC-7.3.1
に基づく開発キット: devtoolset-7GCC-8.2.1
に基づく開発キット: devtoolset-8GCC-9.1.1
に基づく開発キット: devtoolset-9GCC-10.2.1
に基づく開発キット: devtoolset-10GCC-11.2.1
に基づく開発キット: devtoolset-11
次のコマンドを順番に実行して、実験用ソフトウェアパッケージをインストールします。
# Install scl-utils. sudo yum install -y scl-utils # Enable support for the YUM repository. sudo yum install -y alinux-release-experimentals # Install the software packages that you need from the YUM repository. The following sample commands are run to install all development kits that support SCL plug-ins: 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 sudo yum install -y devtoolset-10-gcc devtoolset-10-gdb devtoolset-10-binutils devtoolset-10-make sudo yum install -y devtoolset-11-gcc devtoolset-11-gdb devtoolset-11-binutils devtoolset-11-make
ソフトウェアパッケージをインストールした後、新しいバージョンのGNU Compiler Collection (GCC) および関連ツールを使用できます。 サンプルコマンド:
# Specify a repository name to view an existing SCL. In this example, the devtoolset-7 repository is used. scl -l devtoolset-7 # Run the related SCL software. scl enable devtoolset-7 'gcc --version'
を有効にする