็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿง Linux ็›ฃๆŽงๅทฅๅ…ทๅ…จๆฏ”่ผƒ:top / htop / Glances / nmon / dstat ๅฏฆๅ‹™ๆ‡‰็”จ่ˆ‡ๆ•ˆ่ƒฝๅˆ†ๆžๆŒ‡ๅ—

    ๐Ÿง Linux ็›ฃๆŽงๅทฅๅ…ทๅ…จๆฏ”่ผƒ:top / htop / Glances / nmon / dstat ๅฏฆๅ‹™ๆ‡‰็”จ่ˆ‡ๆ•ˆ่ƒฝๅˆ†ๆžๆŒ‡ๅ—

    ๆƒณๆœ‰ๆ•ˆๆŽŒๆก Linux ็ณป็ตฑๆ•ˆ่ƒฝ็‹€ๆณ,ๆœ€ๅธธไฝฟ็”จ็š„ๅฐฑๆ˜ฏ CPU、่จ˜ๆ†ถ้ซ”、Disk I/O、็ถฒ่ทฏ็ญ‰ๅณๆ™‚็›ฃๆŽงๅทฅๅ…ท。 ๅ‚ณ็ตฑ็š„ top ้›–็„ถๅทฒ็ถ“ๅพˆๅฅฝ็”จ,ไฝ†้ขๅฐ่ค‡้›œ็š„ๅทฅไฝœ่ฒ ่ผ‰、ๅฎนๅ™จ็’ฐๅขƒๆˆ–ๆŒ็บŒๆ•ˆ่ƒฝ็“ถ้ ธๅˆ†ๆžๆ™‚,ๅทฅๅ…ท่ถŠ้ฝŠๅ…จ,ไฝ ็š„็ถญ้‹ๆ•ˆ็އ่ถŠ้ซ˜。 ๆœฌๆ–‡ไปฅๅฏฆๅ‹™่ง’ๅบฆๆฏ”่ผƒ top、htop、Glances、nmon、dstat ็š„ๅŠŸ่ƒฝๅทฎ็•ฐ,ไธฆๆไพ›ๅฆ‚ไฝ•ๅœจๅธธ่ฆ‹ๆƒ…ๅขƒไธญ้ธ็”จๆœ€ไฝณๅทฅๅ…ท。

    ไธ€、็›ฃๆŽงๅทฅๅ…ทๆฆ‚่ฆฝๆฏ”่ผƒ่กจ

    ๅทฅๅ…ท ๅณๆ™‚็›ฃๆŽง CPU/Memory I/O ็ถฒ่ทฏ ๆญทๅฒ็ด€้Œ„ UI ไป‹้ข ้ฉ็”จๆƒ…ๅขƒ
    top ▲(ๆœ‰้™)CLI ๅฟซ้€ŸๆŸฅ็œ‹、ๆ‰€ๆœ‰็ณป็ตฑ้ ่จญๆœ‰
    htop ▲(ๆœ‰้™)ไบ’ๅ‹•ๅผๅฝฉ่‰ฒ UI ็›ด่ฆบๆŸฅ็œ‹ CPU/Threads、Kill Process
    Glances ✔(ๅฏๅŒฏๅ‡บ)Web/CLI ๅ…จๆ–นไฝ็ตฑๆ•ด、้ ็ซฏ็›ฃๆŽง、้ซ˜ๅบฆๆ“ดๅ……
    nmon ✔(Disk ้žๅธธๅผท)✔(CSV ๅŒฏๅ‡บ)CLI + ๅœ–่กจๅˆ†ๆžๅทฅๅ…ท ๆ€ง่ƒฝ็“ถ้ ธ่ชฟๆŸฅ、ๅคง่ฆๆจกๆ•ˆ่ƒฝ่จ˜้Œ„
    dstat ✔(I/O ่ถ…ๅฎŒๆ•ด)✔(CSV)CLI ่ง€ๅฏŸ I/O、Network、Context Switch ่ฎŠๅŒ–

    ไบŒ、top:Linux ๅ…งๅปบ、ๆœ€ๅŸบๆœฌ็š„ๅณๆ™‚็›ฃๆŽงๅทฅๅ…ท

    top ๅนพไนŽๅœจๆ‰€ๆœ‰ Linux ็™ผ่กŒ็‰ˆไธญ้ƒฝๅทฒ้ ่จญๅฎ‰่ฃ。ๅฎƒ้ฉๅˆ:

    • ๅฟซ้€ŸๆŽ’ๆŸฅ CPU ๆœ€้ซ˜็š„็จ‹ๅบ
    • ่ง€ๅฏŸๆ•ด้ซ” Load Average、่จ˜ๆ†ถ้ซ”ๅฃ“ๅŠ›
    • ๅฟซ้€Ÿๆ‰พๅ‡บๅกไฝ็š„ Process
    # ๅ•Ÿๅ‹• top
    top
    
    # ๅธธ็”จ็†ฑ้ต
    P   ไพ CPU ๆŽ’ๅบ
    M   ไพ Memory ๆŽ’ๅบ
    k   Kill process
    1   ้กฏ็คบๆฏไธ€้ก† CPU ็š„ไฝฟ็”จ็އ
    

    top ็š„ไพท้™

    • ไป‹้ขไธๅค ็›ด่ฆบ
    • I/O ็›ฃๆŽงๆœ‰้™
    • ๆฒ’ๆœ‰ๆญทๅฒ็ด€้Œ„ๅŠŸ่ƒฝ

    ไธ‰、htop:top ็š„ๅผทๅŒ–็‰ˆ,ไป‹้ขๅ‹ๅฅฝไธ”ไบ’ๅ‹•ๆ€ง้ซ˜

    htop ่ขซ่ฆ–็‚บ top ็š„้ซ˜้šŽ็‰ˆ,ๅ…ทๆœ‰ๆ›ด็พŽ่ง€็š„ๅฝฉ่‰ฒไป‹้ข、Process Tree ๆจน็‹€ๅœ–、ๆป‘้ผ ๆ“ไฝœๆ”ฏๆด。

    # ๅฎ‰่ฃ htop
    sudo apt install htop     # Debian/Ubuntu
    sudo dnf install htop     # RHEL/CentOS/Rocky
    
    # ๅŸท่กŒ
    htop
    

    htop ๅ„ช้ปž

    • ้กฏ็คบ CPU ๅ€‹ๅˆฅๆ ธๅฟƒไฝฟ็”จ็އ(ๅซ logical cores)
    • ๅฏ่ฆ–ๅŒ–่จ˜ๆ†ถ้ซ”ๆข、Swap ่ฒ ่ผ‰ๆข
    • Tree View ๆ–นไพฟๆ‰พๅ‡บ็ˆถๅญ็จ‹ๅบ
    • ๆŒ‰ไธ€ไธ‹ F9 ๅณๅฏ Kill Process

    htop ็š„ไพท้™

    • ็ผบไนๆทฑๅ…ฅ I/O、Network ๅˆ†ๆž
    • ็„กๆณ•่ฉณ็ดฐ่จ˜้Œ„้•ทๆœŸๆ•ˆ่ƒฝ

    ๅ››、Glances:ๅ…จๆ–นไฝ็ตฑๆ•ด็š„ๆ•ˆ่ƒฝๅ„€่กจๆฟ(ๆ”ฏๆด Web UI)

    Glances ๆ˜ฏ Python ๅฏซ็š„่ทจๅนณๅฐ็ณป็ตฑ็›ฃๆŽงๅทฅๅ…ท,ๆœ€ๅคงไบฎ้ปžๆ˜ฏๆไพ›「ๅ…จ้ …็›ฎๅณๆ™‚็›ฃๆŽง」: CPU、Memory、Disk、Network、Sensors、Docker、Systemd、Processes、Load、I/O… ๅ…จ้ƒจๆ•ดๅˆๅœจๅŒไธ€็•ซ้ข。

    ๅฎ‰่ฃ Glances

    sudo apt install glances   # Debian/Ubuntu
    sudo dnf install glances   # RHEL 9+
    pip install glances        # ้€š็”จๆ–นๅผ
    

    ๅ•Ÿๅ‹•ๆ–นๅผ

    glances          # ๆœฌๅœฐ็›ฃๆŽง
    glances -w       # ๅ•Ÿๅ‹• Web UI(้ ่จญ port 61208)
    glances --export csv       # ๅฐ‡็›ฃๆŽง่ณ‡ๆ–™ๅŒฏๅ‡บ
    

    Glances ๅ„ช้ปž

    • ๅ…จ้ …็›ฎๆ•ดๅˆ,ไธ้œ€ๅˆ‡่ฆ–็ช—ๆˆ–ๅŸท่กŒๅคšๅทฅๅ…ท
    • ๆ”ฏๆด Web UI,ๅฏ้ ็ซฏ็›ฃๆŽง
    • ๆ”ฏๆดๅŒฏๅ‡บๅˆฐ InfluxDB、Prometheus、CSV
    • ๆ’ไปถๆžถๆง‹่ƒฝ้กฏ็คบ Docker、sensor ็ญ‰้ซ˜้šŽ่ณ‡่จŠ

    Glances ็ผบ้ปž

    • ไฝ”็”จ่ณ‡ๆบๆฏ” top/htop ๅคšไธ€ไบ›
    • ๅฐ็ด” CLI ไฝฟ็”จ่€…ๅฏ่ƒฝ่ฆบๅพ—็•ซ้ข่ผƒ่ค‡้›œ

    ไบ”、nmon:IBM ้–‹็™ผ、ไผๆฅญ็ดšๆ•ˆ่ƒฝ่ชฟๆ ก็ฅžๅ™จ

    nmon(Nigel’s Monitor)ๅœจไผๆฅญไธญ่ขซๅปฃๆณ›็”จๆ–ผๆ•ˆ่ƒฝๅˆ†ๆž,ๅฐคๅ…ถ้ฉๅˆ:

    • Disk I/O ๆทฑๅบฆๅˆ†ๆž
    • CPU ไธŠๅƒๆ ธๅฟƒ็š„ๅคงๅž‹ๆฉŸๆ€ง่ƒฝ่จ˜้Œ„
    • ้•ทๆ™‚้–“่จ˜้Œ„(ไปฅ CSV ่ผธๅ‡บไพ›ๅˆ†ๆž)
    • ๆญ้… nmon Analyser ่ฝ‰ๆˆ Excel ๅœ–่กจ

    ๅฎ‰่ฃ

    sudo apt install nmon
    sudo dnf install nmon
    

    ๅ•Ÿๅ‹•่ˆ‡ๅธธ็”จๆŒ‰้ต

    nmon
    
    CPU  → c
    Disk → d
    Network → n
    Memory → m
    Load → l
    Top processes → t
    

    ้•ทๆœŸ่จ˜้Œ„ๆจกๅผ(perf ๅˆ†ๆžๆœ€ๅธธ็”จ)

    # ๆฏ 10 ็ง’่จ˜้Œ„ไธ€ๆฌก,ๅ…ฑๆŒ็บŒ 1 ๅฐๆ™‚
    nmon -f -s 10 -c 360
    

    ่ผธๅ‡บๆœƒ็”Ÿๆˆไธ€ๅ€‹ .nmon ๆช”,ๅฏ็”จ nmon analyser ็”ข็”Ÿๅœ–่กจๅŒ–ๅ ฑ่กจ。

    ๅ…ญ、dstat:ๆœ€ๅ…จ้ข็š„ I/O ่ˆ‡ Network ๅˆ†ๆžๅทฅๅ…ท

    dstat ้žๅธธ้ฉๅˆๆŽ’ๆŸฅไธ‹ๅˆ—ๅ•้กŒ:

    • I/O ๆ˜ฏๅฆ็ˆ†้‡?ๆ˜ฏๅฆ่ขซๆŸ็จ‹ๅบไฝ”ๆปฟ?
    • ็ฃ็ขŸๅปถ้ฒๆ˜ฏๅฆ็•ฐๅธธ?
    • Network ๆต้‡ๆ˜ฏๅฆ็ชๅขž?
    • ๆ˜ฏๅฆๆœ‰ context switch ็ช็„ถ้ฃ†้ซ˜?

    ๅฎ‰่ฃ

    sudo apt install dstat
    sudo dnf install dstat
    

    ๅธธ็”จ็ฏ„ไพ‹

    # ๆŸฅ็œ‹ CPU + Disk + Network + Page Faults
    dstat -cdngy
    
    # ๆฏ 1 ็ง’่จ˜้Œ„,ไธฆ่ผธๅ‡บๅˆฐ CSV
    dstat -cdngy --output log.csv
    

    dstat ๅ„ช้ปž

    • ๅฎŒๆ•ด I/O ่ˆ‡็ถฒ่ทฏ็›ฃๆŽง,ๅ‹้Ž top/htop
    • ๆธ…ๆฅš้กฏ็คบ bottleneck ็™ผ็”Ÿ็š„ๆ™‚ๅบ
    • ๅฏๅŒฏๅ‡บ CSV ๅšๅœ–่กจๅˆ†ๆž

    ไธƒ、ๅฏฆๅ‹™ๆƒ…ๅขƒ:ๅˆฐๅบ•่ฉฒ็”จๅ“ชไธ€ๅ€‹?

    1. CPU ้ฃ†้ซ˜(ไธๆ˜ŽๅŽŸๅ› )

    • ้ฆ–้ธ:htop(ๆธ…ๆฅšๆŸฅ็œ‹ Threads、ๆจน็‹€้—œไฟ‚)
    • ่ฃœๅ……:top(ๅฟซ้€Ÿๆ‰พ process)

    2. I/O ่ฎ€ๅฏซ็•ฐๅธธ、ๅปถ้ฒ่ฎŠ้ซ˜

    • ้ฆ–้ธ:dstat(I/O ่ฎŠๅŒ–ๆ›ฒ็ทšๆœ€ๅฎŒๆ•ด)
    • ่ฃœๅ……:nmon(Disk ๅˆ†ๆžๆ›ดๆทฑๅ…ฅ)

    3. Network ๆต้‡็ชๅขž

    • ้ฆ–้ธ:dstat
    • ่ฃœๅ……:Glances(ๅฏๅŒๆ™‚็œ‹ๅคšๆŒ‡ๆจ™)

    4. ้ซ˜่ฒ ่ผ‰(Load Average ้Ž้ซ˜)

    • ้ฆ–้ธ:Glances(ไธ€ๆฌก็œ‹ CPU、IO、Memory、Wait)

    5. ้•ทๆ™‚้–“ๆ•ˆ่ƒฝ่จ˜้Œ„ & ๅ ฑ่กจ่ผธๅ‡บ

    • ้ฆ–้ธ:nmon(ๅซๅˆ†ๆžๅทฅๅ…ท)
    • ่ฃœๅ……:Glances(ๅฏๅŒฏๅ‡บ InfluxDB / CSV)

    6. Docker / ๅฎนๅ™จ็’ฐๅขƒ็›ฃๆŽง

    • ้ฆ–้ธ:Glances(ๅŽŸ็”Ÿๆ”ฏๆด Docker ่ณ‡ๆบ็›ฃๆŽง)

    ๅ…ซ、ไบ”ๅคงๅทฅๅ…ท็ธฝ็ต:ๅฆ‚ไฝ•ๆŒ‘้ธ?

    ไธ€ๅฅ่ฉฑ็ธฝ็ต:

    • top:ๆœ€ๅŸบๆœฌ,ๆฏๅฐ้ƒฝๆœ‰、ๆœ€ๅฎ‰ๅ…จ
    • htop:ๆœ€ๅฅฝ็”จ็š„ๆ—ฅๅธธ็›ฃๆŽงๅทฅๅ…ท
    • Glances:ๆœ€ๅ…จ่ƒฝ็š„ๆ•ˆ่ƒฝๅ„€่กจๆฟ
    • nmon:ๆœ€้ฉๅˆๆ•ˆ่ƒฝ็“ถ้ ธๆทฑๅบฆ่ชฟๆŸฅ
    • dstat:ๆœ€้ฉๅˆ I/O & Network ๆ™‚ๅบๅˆ†ๆž

    ๅปบ่ญฐ้ป˜้ป˜ๅฎ‰่ฃๅ…จ้ƒจ,่ฆ–ๆƒ…ๅขƒไฝฟ็”จไธๅŒๅทฅๅ…ท,็ถญ้‹้ซ”้ฉ—ๆœƒๆๅ‡้žๅธธๅคš。

    ๐Ÿงญ ่กŒๅ‹•ๆธ…ๅ–ฎ(ๅฏ็›ดๆŽฅ็…งๅš)

    sudo apt install htop glances nmon dstat
    htop                 # ๆ—ฅๅธธ็”จ
    glances             # ๅ…จๆ–นไฝ็›ฃๆŽง
    dstat -cdngy        # I/O + Network ๅˆ†ๆž
    nmon -f -s 10 -c 360 # ้•ทๆ™‚้–“ๆ•ˆ่ƒฝ่จ˜้Œ„
    

    ๐Ÿ”— ๅปถไผธ้–ฑ่ฎ€

    — WWFandy・Linux ๆ•ˆ่ƒฝ่ง€ๅฏŸ็ญ†่จ˜

    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš