Linux性能监控工具nmon
压测时需要监控服务器性能,用来记录CPU、内存、磁盘等数据。
安装nmon
wget https://sourceforge.net/projects/nmon/files/nmon16e_x86.tar.gz
tar zxvf nmon16e_x86.tar.gz
mv nmon_x86_64_centos7 /usr/local/bin/nmon
创建监控脚本
#!/bin/bash
# File: start_nmon.sh# 参数配置
INTERVAL=10
DURATION=3600
OUTPUT_DIR="/tmp/nmon_data"
TEST_NAME="load_test_$(date +%Y%m%d_%H%M%S)"# 创建目录
mkdir -p ${OUTPUT_DIR}# 计算采集次数
COUNT=$((DURATION / INTERVAL))# 启动 nmon 并捕获 PID
nmon -F ${OUTPUT_DIR}/${TEST_NAME}.nmon -s ${INTERVAL} -c ${COUNT} -T -t -m ${OUTPUT_DIR}/ &
NMON_PID=$!# 写入 PID 文件
echo $NMON_PID > /tmp/nmon.pid# 验证进程
if kill -0 $NMON_PID 2>/dev/null; thenecho "Nmon 监控已启动,PID: $NMON_PID"echo "Output File: ${OUTPUT_DIR}/${TEST_NAME}.nmon"
elseecho "错误:nmon 进程未启动!"rm -f /tmp/nmon.pidexit 1
fi
示例:代表2s执行一次 执行10分钟(即600秒)
nmon -F test.nmon -s 2 -c 300
命令 | 参数解析 |
---|---|
-F test.nmon | 指定输出文件名(推荐包含时间戳) |
-s 2 | 每2秒采集一次数据 |
-c 300 | 采集次数:10分钟 × 60秒/分钟 ÷ 2秒/次 = 300次 |
步骤
1:启动脚本 sh start_nmon.sh
2:压测开始
3:查看 nmon 日志 cd /tmp/nmon_data
4:停止进程
如果压测提前结束,手动停止nmon
kill -INT $(cat /tmp/nmon.pid) # 优雅终止nmon
rm -f /tmp/nmon.pid停止压测进程
kill $(cat /tmp/stress.pid)
rm -f /tmp/stress.pid