全部產品
Search
文件中心

Alibaba Cloud Linux:Alibaba Cloud Linux 2使用說明

更新時間:Jul 19, 2024

本文主要介紹在Alibaba Cloud Linux 2作業系統中查看系統或核心參數、設定核心轉儲功能的操作步驟,同時提供了Debuginfo包、源碼包以及實驗性軟體包的擷取方式。

查看或修改參數

  • 查看或修改系統參數

    Alibaba Cloud Linux 2在設定檔/etc/sysctl.d/50-aliyun.conf中更新了下列核心配置參數,運行sysctl命令,可查看或修改Alibaba Cloud Linux 2運行時的系統參數。

    系統參數

    說明

    kernel.hung_task_timeout_secs = 240

    延長核心hung_task逾時秒數,避免頻繁的hung_task提示。

    kernel.panic_on_oops = 1

    允許核心發生Oops錯誤時拋出Kernel Panic異常,如果配置了Kdump則可自動捕獲崩潰詳情。

    kernel.watchdog_thresh = 50

    延長hrtimer、NMI、Soft Lockup以及Hard Lockup等事件的閾值,避免可能出現的核心誤判。

    kernel.hardlockup_panic = 1

    允許核心發生Hard Lockup錯誤時拋出Kernel Panic異常,如果配置了Kdump則可自動捕獲崩潰詳情。

  • 查看核心參數

    Alibaba Cloud Linux 2更新了下列核心參數,運行cat /proc/cmdline命令,可查看Alibaba Cloud Linux 2運行時的核心參數。

    核心參數

    說明

    crashkernel=0M-2G:0M,2G-8G:192M,8G-:256M

    為核心轉儲(Kdump)功能預留的記憶體空間。

    cryptomgr.notests

    關閉crypto在核心啟動時的自檢行為,加快啟動速度。

    cgroup.memory=nokmem

    關閉Memory Cgroup的核心記憶體統計功能,避免出現潛在的核心不穩定問題。

    rcupdate.rcu_cpu_stall_timeout=300

    延長RCU CPU Stall Detector的逾時閾值為300秒,避免核心誤判。

開啟或關閉核心轉儲(Kdump)功能

Alibaba Cloud Linux 2提供了Kdump服務。開啟該服務後可捕獲核心錯誤,方便您分析核心崩潰現象。

說明

所選執行個體規格的記憶體小於或等於2 GiB時,無法使用Kdump服務。

  • 依次運行以下命令可以開啟Kdump服務。

    # 先開啟Kdump服務
    sudo systemctl enable kdump.service
    # 重啟Kdump服務
    sudo systemctl restart kdump.service
  • 依次運行以下命令可以將Kdump服務預留的記憶體位址空間歸還給作業系統,並徹底關閉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 Linux 2提供了普通實驗性軟體包和SCL外掛程式方式支援的實驗性軟體包。

  • 普通實驗性軟體包,例如:

    • Golang 1.12

    • Golang 1.13

    依次運行以下命令可以安裝軟體包。

    # 先開啟YUM倉庫支援
    sudo yum install -y alinux-release-experimentals
    # 查詢普通實驗性軟體包名稱及版本,例如golang
    sudo yum list <packageName> --showduplicates
    # 安裝普通實驗性軟體包,其中<packageName>-<pacakgeVersion>為已查詢的軟體包名稱及版本,例如golang-1.13.6
    sudo yum install -y <packageName>-<pacakgeVersion>
  • SCL外掛程式方式支援的開發套件

    • 基於GCC-7.3.1的開發套件(devtoolset-7)

    • 基於GCC-8.2.1的開發套件(devtoolset-8)

    • 基於GCC-9.1.1的開發套件(devtoolset-9)

    • 基於GCC-10.2.1的開發套件(devtoolset-10)

    • 基於GCC-11.2.1的開發套件(devtoolset-11)

    依次運行以下命令可以安裝軟體包。

    # 先安裝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
    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

    安裝成功後,您即可使用高版本的GCC以及相關工具。樣本命令如下:

    # 先查看現有的SCL,需要指定庫名,本樣本命令中,庫名為devtoolset-7
    scl -l devtoolset-7
    # 運行相關的SCL軟體
    scl enable devtoolset-7 'gcc --version'