全部產品
Search
文件中心

Alibaba Cloud Linux:系統營運工具集SysAK使用說明

更新時間:Jun 25, 2025

SysAK(System Analyse Kit)是阿里雲作業系統提供的一個全方位的系統營運工具集,可以覆蓋系統的日常監控、線上問題診斷和系統損毀修復等常見營運情境。本文為您介紹SysAK的安裝部署和使用方法。

營運情境

阿里雲通過對百萬伺服器營運經驗進行抽象總結,進而打造出系統營運工具集SysAK,該工具集可以覆蓋以下常見營運情境:

  • 日常監控:針對各種系統資源更精細化的資源監控,協助業務營運實現細粒度的營運調度和資源控制。除此之外,還實現了許多增強系統指標,即時監控系統的幹擾和抖動等情況。

  • 問題診斷:針對負載異常、網路抖動、記憶體泄露、IO夯、效能異常等情況提供線上診斷功能。 同時減少工具的專業性,可操作性強。

  • 損毀修復:對於非整機異常的問題(例如死結、夯機等), 該工具提供介入能力對系統進行恢複或故障隔離。

工具本身不會為系統帶來更大的負載開銷,避免引起網路抖動問題。SysAK通過技術手段保證所有工具同時運行時不超過3%的系統消耗,單個工具不超過1%的系統消耗。

安裝SysAK

環境要求

  • 作業系統:Alibaba Cloud Linux 2/3、Anolis OS 8.4 ANCK、CentOS 7及其他核心版本大於3.10的Linux系統。

    說明

    您可以運行uname -a命令查看執行個體的核心版本。

  • 硬體:x86_64。

安裝部署

作業系統

安裝方法

Alibaba Cloud Linux 2

  • 通過yum源安裝

    1. 執行以下命令,查看SysAK所發布的版本。

      yum search sysak
    2. 執行以下命令,安裝SysAK,預設下載SysAK最新版本。

      sudo yum install -y sysak
  • 如果無法訪問aliyun的yum源

    1. 下載對應核心最新版本的SysAK rpm包。

      例如:

      wget https://mirrors.openanolis.cn/sysak/packages/sysak-1.3.0-2.x86_64.rpm
      說明

      您可以訪問鏡像源地址,查看對應核心最新版本的SysAK rpm包。

    2. 執行以下命令,安裝SysAK。

      sudo rpm -ivh --nodeps <SysAK rpm包安裝路徑>

      例如,使用rpm命令預設安裝在root路徑,執行命令如下:

      sudo rpm -ivh --nodeps sysak-1.3.0-2.x86_64.rpm

Anolis OS 8.4 ANCK

  1. 下載對應核心最新版本的SysAK rpm包。

    例如:

    wget https://mirrors.openanolis.cn/sysak/packages/sysak-1.3.0-2.x86_64.rpm
    說明

    您可以訪問SysAK rpm地址,查看對應核心最新版本的SysAK rpm包。

  2. 執行以下命令,安裝SysAK。

    sudo rpm -ivh --nodeps <SysAK rpm包安裝路徑>

    例如,使用rpm命令預設安裝在root路徑,執行命令如下:

    sudo rpm -ivh --nodeps sysak-1.3.0-2.x86_64.rpm

CentOS 7及其他核心版本大於3.10的Linux系統

僅支援開源版本自訂編譯安裝,可能存在相容性問題。直接存取SysAK開源地址進行安裝。

使用SysAK

警告

SysAK系統在運行診斷和監控功能時,會在核心中hook一些函數,可能會導致系統無法正常運行。請您選擇合適的視窗期執行診斷和監控命令。

使用方法

常用命令

說明

sysak help

查看SysAK。

Usage: sysak [ cmd ] [ subcmd [ cmdargs ] ]

  • cmd:為SysAK管理工具相關命令,包括list、help。

  • subcmd:為SysAK各種工具子功能相關命令。

  • cmdargs: 各個子工具的命令參數。

sysak list -a

查看支援的所有子功能。

sysak [subcmd] -h

查看每個子功能的具體用法。

SysAK的兩種模式

SysAK目前支援監控模式和診斷模式。監控模式下SysAK常駐後台,為營運人員提供系統的各項指標。診斷模式隨用隨啟,主要用於分析系統現象根因。更多資訊,請參見SysAK系統監控功能SysAK診斷功能

SysAK系統監控功能

啟動監控

您可以通過以下兩種方式,使用SysAK自動監控系統各項指標。

  • 執行以下命令,直接啟動監控。

    sudo sysak mservice -S
  • 執行以下命令,將SysAK監控加入到系統常駐服務中開機自啟動。

    sudo systemctl enable sysak
    sudo systemctl start sysak

監控指標

說明

增強特性特指SysAK自身實現的特色功能(指標項)或者SysAK通過Alibaba Cloud Linux、Anolis OS的核心增強特性實現的功能(指標項)。

  • 系統資源

    指標分類

    類別說明

    具體指標項

    增強特性

    計算資源

    CPU

    user

    使用者態CPU使用率

    sys

    系統態CPU使用率

    hirq

    中斷CPU使用率

    sirq

    非強制中斷CPU使用率

    LOAD

    load*

    1秒、5秒、15秒負載

    記憶體資源

    記憶體

    free

    記憶體餘量

    used

    記憶體使用量量

    buffer

    記憶體buffer使用量

    cache

    記憶體cache使用量

    total

    記憶體總量

    mem.util

    記憶體使用量率

    swap

    swpin

    swap換入的page數

    swapout

    swap換出的page數

    total

    swap的page總量

    swap.util

    swap使用率

    IO資源

    IO訪問

    rrqms

    每秒向裝置發出的合并讀取請求數

    wrqms

    每秒向裝置發出的合并寫入請求數

    rs

    每秒向裝置發出的讀取請求數

    ws

    每秒向裝置發出的寫入請求數

    rsecs

    每秒從裝置讀取的扇區數

    wsecs

    每秒寫入裝置的扇區數

    rqsize

    向裝置發出的請求的平均大小

    qusize

    向裝置發出的請求的平均隊列長度

    svctm

    向裝置發出的I/O請求的平均服務時間

    io.util

    I/O請求的CPU時間百分比

    磁碟空間

    bfree

    剩餘資料區塊數量

    bused

    已用資料區塊數量

    btotl

    資料區塊總量

    patition.util

    資料庫使用率

    ifree

    剩餘檔案節點數量

    itotl

    檔案節點總量

    iutil

    檔案節點使用率

    網路資源

    網路流量

    bytin

    網路接收流量數Byte

    bytout

    網路發出流量數Byte

    pktin

    網路收包總量

    pktout

    網路發包總量

    TCP

    active

    tcp主動建連數

    pasive

    tcp被動建連數

    iseg

    tcp收包數

    outseg

    tcp發包數

    UDP

    idgm

    udp收包數

    odgm

    udp發包數

  • 系統瓶頸

    指標分類

    類別說明

    具體指標項

    增強特性

    IO瓶頸

    讀寫延遲

    await

    IO的平均等待時間

    rawait

    IO讀的平均等待時間

    wawait

    IO寫的平均等待時間

    記憶體瓶頸

    cache回收與磁碟重組

    kswapd

    kswapd回收次數

    pg_kr

    非同步回收page數

    pg_dr

    直接回收page數

    kcompd

    kcompactd規整次數

    dc_all

    記憶體直接規整次數

    dc_fin

    記憶體直接規整完成次數

    oom

    發生oom次數

    網路瓶頸

    網路傳輸

    pkterr

    系統錯誤包數量

    pktdrp

    系統丟包數量

    EstReset

    ESTABLISHED狀態發生reset次數

    AtmpFail

    tcp connection嘗試失敗次數

    retran

    tcp重傳率

    noport

    udp目的連接埠/地址不存在次數

    idmerr

    udp無效包個數

    CPU瓶頸

    多任務並發

    cswch

    系統的環境切換數

    proc

    系統fork次數

    就緒隊列長時排隊

    rqslow.dltnum

    就緒隊列等待超過閾值的次數

    SysAK

    rqslow.dlttm

    就緒隊列等待超過閾值的總延時

    SysAK

    系統軟體瓶頸

    核心臨界資源訪問

    noschd.dltnum

    CPU在sys態駐留超過閾值次數

    SysAK

    noschd.dlttm

    CPU在sys態駐留超過閾值總延時

    SysAK

  • 系統幹擾

    指標分類

    類別說明

    具體指標項

    增強特性

    系統幹擾

    長時間關中斷延遲

    irqoff.dltnum

    系統關中斷超過閾值次數

    SysAK

    irqoff.dlttm

    系統關中斷超過閾值總延時

    SysAK

  • 容器情境(每個容器的指標)

    指標分類

    類別說明

    具體指標項

    增強特性

    計算資源

    CPU資源

    usr/sys/hriq/sirq

    容器使用者態/系統/中斷/非強制中斷CPU使用率

    負載資訊

    nrun

    容器中就緒狀態的任務數

    Alibaba Cloud Linux、Anolis OS

    nunint

    容器中D阻塞狀態任務數

    load*

    容器中1秒、5秒、10秒的負載情況

    記憶體資源

    MEMROY資源

    total/free/used/cache/buffer

    容器中記憶體的總量、剩餘、使用、cache、buffer量

    記憶體瓶頸

    pgfault

    容器中缺頁異常次數

    pgmajfault

    容器磁碟交換或者檔案對應缺頁的次數

    mfailcnt

    容器發生記憶體申請失敗的次數

    drgl*

    全域記憶體回收的延遲時間分布

    Alibaba Cloud Linux、Anolis OS

    drml*

    容器中記憶體回收延遲時間分布

    dcl*

    容器記憶體壓縮的延遲時間分布

    IO資源

    IO指標

    riops

    容器中讀IO個數

    wiops

    容器中讀寫IO個數

    rbps

    容器中的讀位元組數

    wbps

    容器中的寫位元組數

    rwait

    容器中讀等待時間

    Alibaba Cloud Linux、Anolis OS

    wwait

    容器中的寫等待時間

    rsrv

    容器中讀服務時間

    wsrv

    容器中寫服務時間

    rioq

    容器中讀排隊IO個數

    wioq

    容器中寫排隊IO個數

    rioqsz

    容器中讀排隊的IO位元組數

    wioqsz

    容器中寫排隊的IO位元組數

    rarqsz

    容器中讀IO的平均位元組數

    warqsz

    容器中寫IO的平均位元組數

    硬體資源

    資源瓶頸

    llcref

    容器LLC訪問次數

    llcmis

    容器LLC miss次數

    CPI

    容器CPI (cycles per instruction)

服務配置

SysAK監控服務支援對採集的指標項通過設定檔進行配置。設定檔存放在/usr/local/sysak/sysakmon.conf路徑下,修改配置後,需要執行systemctl restart sysak命令重啟mservice服務。

配置項說明:

  • server_mode http|local:監控服務的監控模式。HTTP模式表示以HTTP服務模式監控;local模式是將資料存放在本地,在本地查看監控資料。

  • cron_period 60:local模式下監控服務的採樣周期,預設60秒;HTTP模式不涉及。

  • output_file_path:local模式下監控服務存放日誌的路徑,預設路徑為/usr/local/sysak/log/tsar.data;HTTP模式不涉及。

  • mod_xxx on:on表示開啟該監控項,off表示關閉該監控項。

資料查看

模式

監控結果查看命令

說明

HTTP模式

curl http://127.0.0.1:9200/metrics/raw/

說明

請您根據實際情況替換為實際ECS執行個體的IP地址。

擷取系統所有的監控資訊。

curl http://127.0.0.1:9200/metrics/cgroup/raw

說明

請您根據實際情況替換為實際ECS執行個體的IP地址。

擷取cgroup資源群組的監控資訊。

curl http://127.0.0.1:9200/metrics/cgroup/$cgroupid/raw

說明

請您根據實際情況替換為實際ECS執行個體的IP地址。

擷取指定資源群組$cgroupid的監控資訊。

local模式

sysak mservice -l

互動式地顯示監控資訊。

SysAK診斷功能

使用者情境診斷

命令類別

功能

命令及說明

ossre_client

自動掃描當前系統可能存在的問題。

sysak ossre_client [ -a ] [ -p ] [ -i ]

  • -a:全系統掃描。

  • -p:只掃描系統panic事件。

  • -i:只掃描已知問題。

其他還有一些功能參數可配合ossre服務端進行使用。

loadtask

診斷系統load情況,輸出load高的原因及負載貢獻最多的進程。

sysak loadtask [ -m maxload ] [ -i interval ] [ -f outfile ] [ -d ] [ -s ]

  • -m:設定要監控的load值,大於這個值時自動開啟診斷。如果不設定,則立即對當前系統進行診斷。

  • -i:監控load時,每次掃描的間隔時間長度,單位秒。

  • -f:輸出資訊的存放檔案,預設是/var/log/sysak/loadtask.log

  • -d

    • 在監控模式下,若配置該參數,則所有超過maxload的相關資訊將被儲存。

    • 在監控模式下,若未配置該參數,則首次檢測到超過maxload值並完成診斷後退出監控模式。

  • -s:在控制台顯示摘要資訊。

  • -g:同時產生全系統火焰圖。

iosdiag

io診斷工具。

sysak iosdiag [ options ] subcmd [ cmdargs ]

  • options

    • -u url:指定URL,將會通過curl命令把診斷記錄檔案打包上傳到該URL,不指定URL不上傳。

    • -s latency/hangdetect:停止診斷。

  • subcmd

    • latency:執行io延遲診斷功能。

    • hangdetect:執行io夯診斷功能。

  • cmdargs

    -h,跟在子命令之後顯示功能支援參數。

更多資訊,請參見iosdiag功能說明

系統底層專項診斷

  • 調度

    命令類別

    功能

    命令及說明

    nosched

    檢測系統中核心態長時間佔住CPU,導致CPU上的任務無法及時調度啟動並執行問題。

    sysak nosched [--help] [-t THRESH(ms)] [-f LOGFILE] [-s duration(s)]

    • -t THRESH:核心不調度的門限時間,超過門限就會進行記錄,單位ms。可選,預設10 ms。

    • -f LOGFILE:將log記錄到指定檔案。可選,預設記錄在/var/log/sysak/nosched/nosched.log

    • -s durations:設定該程式運行多長時間,單位s。可選,預設一直運行。

    更多資訊,請參見nosched功能說明

    irqoff

    檢測系統中長時間關閉中斷的異常狀態。

    sysak irqoff [--help] [-t THRESH(ms)] [-f LOGFILE] [duration(s)]

    • -t THRESH:關中斷的門限時間,超過門限就會記錄,單位ms。可選,預設10 ms。

    • -f LOGFILE:將log記錄到指定檔案。可選,預設記錄在/var/log/sysak/irqoff/irqoff.log

    • durations:設定該程式運行多長時間,單位s。可選,預設一直運行。

    更多資訊,請參見irqoff功能說明

    runqslower

    檢測系統中任務調度延遲大的異常情況。

    sysak runqslower [-s SPAN] [-t TID] [-f LOGFILE] [-P] [THRESH]

    • -s SPAN:設定該程式運行多長時間,單位s。可選,預設一直運行。

    • THRESH:任務被搶佔的門限時間,超過門限就記錄,單位ms。可選,預設20 ms。

    • -f LOGFILE:將log記錄到指定檔案。可選,預設記錄在/var/log/sysak/runqslow/runqslow.log

    • -t TID:過濾選項,指定被監控的現場ID。可選,預設監控所有的線程。

    • -P:記錄prev任務的name和TID。可選,預設不記錄。

    更多資訊,請參見runqslower功能說明

  • 記憶體

    命令類別

    功能

    命令及說明

    memleak

    診斷核心記憶體泄露情況,包括slab、vmalloc、buddy記憶體的泄露情況,找到泄露點。

    sysak memleak [-t type] [-i internal] [-c]

    • -t:記憶體泄露類型。

      • slab:slab分配記憶體泄露檢測。

      • vmalloc:vmalloc分配記憶體泄露檢測。

      • page:夥伴系統記憶體配置泄露檢測。

    • -i:指定檢測時間,預設300 s。

    • -c:指定此參數後,只會做快速檢測,判斷記憶體是否泄露,不進行泄露點的診斷。

    mmaptrace

    抓取使用者態記憶體泄露點,提供使用者態記憶體申請調用棧。

    sysak mmaptrace [ option ] [ args ]

    • -p <pid>: 監控指定pid使用者態申請記憶體情況。

    • -l:設定監控malloc/mmap申請的大小。

    • -s:顯示申請記憶體的使用者態調用棧。

    memgraph

    記憶體大圖工具。

    sysak memgraph [ option ]

    • -g:顯示記憶體使用量大圖。

    • -f:顯示頁緩衝詳細資料。

    • -a:顯示匿名記憶體詳細資料。

    • -k:記憶體泄露檢測。

    • -l:顯示系統線程記憶體使用量情況。

    • -c:顯示系統cgroup記憶體使用量情況。

  • IO

    命令類別

    功能

    命令及說明

    iofsstat

    實現從進程和檔案層級統計IO資訊。

    sysak iofsstat [-h] [-T TIMEOUT] [-t TOP] [-u UTIL_THRESH] [-b BW_THRESH] [-i IOPS_THRESH] [-c CYCLE] [-d DEVICE] [-p PID] [-j] [-f]

    • -T TIMEOUT:指定命令啟動並執行時間長度(secs)。

    • -t TOP:報告的top N的最大IO資源使用方式。

    • -u UTIL_THRESH:指定util-thresh作為過濾條件 ,該參數可以過濾util低於此閾值的資訊。

    • -b BW_THRESH:指定BW-thresh作為過濾條件。該參數可以過濾bw低於此閾值的資訊。

    • -i IOPS_THRESH:指定IOPS-thresh作為過濾條件。該參數可以過濾iops低於此閾值的資訊。

    • -c CYCLE:指定重新整理頻率(secs)。

    • -d DEVICE:指定監控的disk盤名稱。

    • -p PID:指定關注的任務pid。

    • -j,--json:以json-format格式輸出。

    • -f,--fs:監控報告指定分區的資訊。

  • 網路

    命令類別

    功能

    命令及說明

    pingtrace

    網路延遲探測定界工具。

    sysak pingtrace [ options ]

    • -v,--version:顯示版本號碼。

    • -h,--help:協助資訊。

    • -s,--server:以server模式運行。

    • -c,--client ip:以client模式運行。

    • -C,--count UINT:探測報文數量,預設不限。

    • -i <interval_us>:以us為單位,報文發送間隔時間。

    • -t < UINT >:以s為單位,程式已耗用時間。

    • -m,--maxdelay us:ping延時的閾值,只有超過該值的報文資料才會被記錄下來,預設為0。

    • -b <INT=556 >:發送探測報文的大小,至少144位元組。

    • --log TEXT=./pingtrace.log:記錄檔名稱。

    • --logsize INT:記錄檔最大佔用磁碟空間。

    • --logbackup INT=3:記錄檔最多備份數量。

    • --mode auto/pingpong/compact:PingTrace運行模式。

    • -o,--output image/json/log/imagelog:PingTrace資料輸出格式。

    • -n,--namespace:探測與net namespace相關的資訊。

    • --nslocal:在探測net namespace相關資訊時,告知PingTrace client和server運行在同一host上,以避免擷取到冗餘資料。

    • --userid UINT:在探測net namespace相關資訊時,為不同host指定不同userid,以協助PingTrace識別和修正不同host上時間不同步問題。

    • --debug:列印相關debug資訊,主要為libbpf資訊。

    skcheck

    tcp和socket泄露偵查工具。

    sysak skcheck [ options ] [ cmdargs ]

    • -s:啟動泄露檢測。

    • -i:設定開啟的socket閾值,預設是2000。

    • -l:設定關閉的socket閾值,預設是500。

  • 效能

    命令類別

    功能

    命令及說明

    numa_access

    顯示指定pid、cpu numa資訊。

    sysak numa_access [ options ] [ cmdargs ]

    • -p <pid>:指定pid。

    • -c <cpu>:指定CPU。

    • -i <time>:設定顯示間隔時間。

    hw_event

    docker的硬體事件資訊。

    sysak hw_event [ options ] [ cmdargs ]

    • -c <name>:指定docker的名字,預設是所有docker。

    • -s <time>:設定已耗用時間,預設5 s。

  • 虛擬化

    命令類別

    功能

    命令及說明

    kvmexittime

    跟蹤診斷虛擬機器Vmexit事件。

    sysak kvmexittime [--help] [-p PID] [-t TID] [interval]

    • -p <PID>:指定pid。

    • -t <TID>:指定tid。

    • interval:跟蹤診斷的時間。

    • --help:輸出當前命令協助資訊。

  • Generic

    命令類別

    功能

    命令及說明

    syscall_slow

    用於系統調用慢的原因自動分析應用線程鎖競爭問題。

    sysak syscall_slow [-t THRESH(ms)] [-n sys_NR] <[-c COMM] [-p tid]> [-f LOGFILE][duration(s)]

    • -t:當系統調用時間超過該指定門限時就記錄,單位ms;可選,預設10 ms。

    • -n:檢測指定的系統調用。可選,預設所有系統調用。

    • -c/-p:只檢測指定任務名字或者線程ID,二選一。必選。

    • -f:將log記錄到指定檔案。可選,預設記錄在/var/log/sysak/syscall_slow/syscall_slow.log

    • durations:設定該程式運行多長時間,單位s。可選,預設一直運行。

    更多資訊,請參見syscall_slow功能說明

    ulockcheck

    自動分析應用線程鎖競爭問題。

    sysak ulockcheck -p <pid> | -s <thread pid>| -a | -t <0|1> | -d

    • -p:開始監控指定進程線程鎖競爭情況。

    • -a:顯示當前鎖owner及請鎖次數top 5。

    • -s:顯示監控線程的鎖競爭情況。

    • -t:開啟列印開關。如果等鎖超過100 ms,會列印線程鎖的使用者態調用棧。

    • -d:停止監控。

    cpuirq

    輸出CPU上的中斷綁定和運行情況。

    sysak cpuirq [-c cpu -b ] [ -t [ -i interval ] ]

    • -c:指定要查看的CPU。

    • -b:輸出指定CPU的中斷綁定資訊。

    • -t:查看一定時間內產生最多的中斷。

    • -i:指定時間間隔softirq。

    softirq

    統計系統非強制中斷的運行情況(數量、速率等)。

    sysak softirq [ option ] [ args ]

    • -s:指定初始資料來源檔案。

    • -r:輸出到指定檔案。