Linux Trigger 性能测试实操指南
一 明确范围与总体流程
二 埋点与最小示例
[Unit]
Description=Data sync trigger
[Service]
Type=oneshot
ExecStart=/opt/sync.sh
StandardOutput=journal
StandardError=journal
[Unit]
Description=Run sync every minute
[Timer]
OnCalendar=*:00
Persistent=true
[Install]
WantedBy=timers.target
systemctl daemon-reload
systemctl enable --now trigger-sync.timer
journalctl -u trigger-sync.service -f
LOG=/var/log/trigger.log
ts=$(date -Iseconds)
start=$(date +%s%3N)
./do_work.sh
code=$?
dur=$(( $(date +%s%3N) - start ))
echo "{\"ts\":\"$ts\",\"level\":\"INFO\",\"trigger\":\"order_import\",\"event\":\"run\",\"exit_code\":$code,\"duration_ms\":$dur}" >> "$LOG"
三 采集与关键指标
四 场景化压测与稳定性测试
# 4 个 CPU 压力线程,持续 180 秒
stress --cpu 4 --timeout 180s
# 2 个内存线程,每个分配 128M,持续 360 秒
stress --vm 2 --vm-bytes 128M --timeout 360s
# 快速写基线(注意:of=目标文件,路径需存在且有空间)
dd if=/dev/zero of=/data/test bs=4k count=100k oflag=direct
# 快速读基线
dd if=/data/test of=/dev/null bs=4k iflag=direct
# 增加 30ms 延迟(±20ms 抖动)
sudo tc qdisc add dev eth0 root netem delay 30ms 20ms
# 增加 10% 丢包
sudo tc qdisc add dev eth0 root netem loss 10%
# 查看与回滚
tc qdisc show dev eth0
sudo tc qdisc del dev eth0 root netem loss 10%
ab -c 10 -n 100 https://example.com/
五 结果分析与可视化告警