profiling
8
总安装量
4
周安装量
#35988
全站排名
安装命令
npx skills add https://github.com/chaterm/terminal-skills --skill profiling
Agent 安装分布
claude-code
4
opencode
3
windsurf
2
codex
2
github-copilot
2
antigravity
2
Skill 文档
æ§è½åæ
æ¦è¿°
CPU/å ååæãç«ç°å¾ã追踪æè½ã
perf å·¥å ·
åºç¡å½ä»¤
# å®è£
apt install linux-tools-common linux-tools-$(uname -r)
# CPU éæ ·
perf record -g -p PID
perf record -g -a -- sleep 30
# æ¥çæ¥å
perf report
perf report --stdio
# 宿¶ç»è®¡
perf top
perf top -p PID
# ç»è®¡äºä»¶
perf stat command
perf stat -p PID sleep 10
常ç¨äºä»¶
# CPU 卿
perf record -e cycles -p PID
# ç¼åæªå½ä¸
perf record -e cache-misses -p PID
# ä¸ä¸æåæ¢
perf record -e context-switches -p PID
# ååºå¯ç¨äºä»¶
perf list
ç«ç°å¾
# ééæ°æ®
perf record -F 99 -g -p PID -- sleep 30
# çæç«ç°å¾
perf script | stackcollapse-perf.pl | flamegraph.pl > flamegraph.svg
# æä½¿ç¨ FlameGraph å·¥å
·
git clone https://github.com/brendangregg/FlameGraph
perf script | ./FlameGraph/stackcollapse-perf.pl | ./FlameGraph/flamegraph.pl > out.svg
strace 追踪
åºç¡ç¨æ³
# 追踪è¿ç¨
strace -p PID
# 追踪å½ä»¤
strace command
# ç»è®¡ç³»ç»è°ç¨
strace -c command
strace -c -p PID
# 追踪ç¹å®è°ç¨
strace -e open,read,write command
strace -e trace=network command
strace -e trace=file command
é«çº§é项
# æ¾ç¤ºæ¶é´æ³
strace -t command
strace -tt command # å¾®ç§
# æ¾ç¤ºèæ¶
strace -T command
# è·è¸ªåè¿ç¨
strace -f command
# è¾åºå°æä»¶
strace -o trace.log command
ltrace åºè°ç¨
# 追踪åºè°ç¨
ltrace command
ltrace -p PID
# ç»è®¡
ltrace -c command
# ç¹å®åº
ltrace -l libc.so.6 command
å ååæ
valgrind
# å
åæ³æ¼æ£æµ
valgrind --leak-check=full ./program
# å
åé误
valgrind --tool=memcheck ./program
# ç¼ååæ
valgrind --tool=cachegrind ./program
# è°ç¨å¾
valgrind --tool=callgrind ./program
kcachegrind callgrind.out.*
pmap
# æ¥çè¿ç¨å
åæ å°
pmap PID
pmap -x PID
# 详ç»ä¿¡æ¯
pmap -XX PID
smem
# å
å使ç¨ç»è®¡
smem
smem -u # æç¨æ·
smem -p # æè¿ç¨
smem -k # 人类å¯è¯»
ç³»ç»åæ
vmstat
# æ¯ç§å·æ°
vmstat 1
# è¾åºè¯´æ
# r: è¿è¡éå
# b: é»å¡è¿ç¨
# si/so: 交æ¢
# bi/bo: å IO
# us/sy/id/wa: CPU 使ç¨
iostat
# ç£çç»è®¡
iostat -x 1
# è¾åºè¯´æ
# %util: 设å¤å©ç¨ç
# await: å¹³åçå¾
æ¶é´
# r/s, w/s: 读å IOPS
pidstat
# CPU 使ç¨
pidstat -u 1
# å
å使ç¨
pidstat -r 1
# IO 使ç¨
pidstat -d 1
# ç¹å®è¿ç¨
pidstat -p PID 1
常è§åºæ¯
åºæ¯ 1ï¼CPU çç¹åæ
#!/bin/bash
PID=$1
# éé 30 ç§
perf record -F 99 -g -p $PID -- sleep 30
# çææ¥å
perf report --stdio > cpu_report.txt
# çæç«ç°å¾
perf script | stackcollapse-perf.pl | flamegraph.pl > cpu_flame.svg
åºæ¯ 2ï¼IO å»¶è¿åæ
#!/bin/bash
# ä½¿ç¨ biolatency (bcc-tools)
biolatency 10 1
# æä½¿ç¨ iostat
iostat -x 1 10
åºæ¯ 3ï¼ç³»ç»è°ç¨åæ
#!/bin/bash
PID=$1
# ç»è®¡ç³»ç»è°ç¨
strace -c -p $PID -o syscall_stat.txt &
sleep 60
kill %1
cat syscall_stat.txt
å·¥å ·å¯¹æ¯
| å·¥å · | ç¨é | å¼é |
|---|---|---|
| perf | CPU åæ | ä½ |
| strace | ç³»ç»è°ç¨ | é« |
| valgrind | å ååæ | å¾é« |
| pidstat | è¿ç¨ç»è®¡ | ä½ |
æ éææ¥
# perf æéé®é¢
echo 0 > /proc/sys/kernel/perf_event_paranoid
# 符å·ç¼ºå¤±
apt install linux-tools-$(uname -r)-dbgsym
# strace éå 失败
echo 0 > /proc/sys/kernel/yama/ptrace_scope