# DataMn **Repository Path**: shilei-wang/data-mn ## Basic Information - **Project Name**: DataMn - **Description**: 海光平台性能监控绘图工具 - **Primary Language**: Shell - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-28 - **Last Updated**: 2025-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 综合性能监控系统 ## 项目概述 本系统是一个全面的服务器性能监控工具集,用于实时采集和分析CPU、内存、缓存、网络、磁盘和电源等关键性能指标。系统自动生成可视化报告,帮助识别性能瓶颈和优化机会。 ## 功能特点 - **全面的性能监控**: - CPU使用率、IPC(每周期指令数) - 内存带宽(L1/L2/L3缓存访问、命中率) - 网络流量和磁盘I/O - 电源消耗(CPU、内存、硬盘、系统总功耗) - **多维度分析**: - Socket级和Die级内存带宽分析 - 热点函数分析(hotspot) - Top-down微架构分析 - **自动化报告**: - 自动生成HTML格式的综合报告 - 13种专业性能图表 - 时间序列数据可视化 ## 系统要求 - **操作系统**:Linux (支持Debian/Ubuntu、CentOS/RHEL、Arch、openSUSE等主流发行版) - **依赖工具**: - Python 3 - dstat - ipmitool (用于电源监控) - bc (用于计算) - **Python库**: - matplotlib>=3.0 - pandas>=1.0 ## 安装指南 1. 克隆或下载本项目代码 2. 运行安装脚本: ```bash chmod +x setup.sh ./setup.sh ``` 3. 确保以下组件已正确解压: - PCM工具包(PCM-PUBLIC-*.zip) - HPT工具包(hpt-4.1.0-2025-0319.x86_64.tar.gz) ## 使用说明 ### 监控模式 ```bash ./perf_monitor.sh [运行时间(秒)] [-b BMC_IP BMC_USER BMC_PASSWORD] ``` 示例: 1. 使用默认BMC配置监控1小时: ```bash ./perf_monitor.sh 3600 ``` 2. 指定BMC配置监控30分钟: ```bash ./perf_monitor.sh 1800 -b 10.17.23.22 Admin Admin@8000 ``` ### 只绘图模式 ```bash ./perf_monitor.sh -p <结果目录> ``` 示例:为已有结果生成图表 ```bash ./perf_monitor.sh -p perf_results_20250520_151547 ``` ### 监控指标说明 系统会监控以下关键指标并生成CSV文件和图表: | 指标类别 | 监控内容 | 输出文件 | |---------|---------|---------| | CPU | 使用率、IPC | dstat_results.csv, hpt_ipc_cache.csv | | 内存 | 带宽、缓存命中率 | pcm_results.csv, hpt_ipc_cache.csv | | 网络 | 流量 | dstat_results.csv | | 磁盘 | I/O | dstat_results.csv | | 电源 | 各组件功耗 | power_results.csv | | 热点 | 函数调用分析 | hotspot.txt | ## 报告解读 生成的HTML报告包含以下图表: 1. **系统总内存带宽**:反映系统整体内存压力 2. **Socket内存带宽**:分析各CPU插槽的内存访问 3. **Die间带宽**:监控CPU内部Die之间的通信 4. **CPU使用率**:用户态和系统态CPU占比 5. **缓存访问**:L1/L2/L3缓存访问情况 6. **缓存命中率**:各级缓存命中率变化 7. **电源消耗**:CPU、内存和硬盘的实时功耗 ## 注意事项 1. 需要root权限运行部分监控功能 2. 电源监控需要配置BMC: - 可在脚本中修改默认BMC配置(BMC_IP, BMC_USER, BMC_PASSWORD) - 或通过命令行参数临时指定(-b BMC_IP BMC_USER BMC_PASSWORD) 3. 长时间监控会生成较大数据文件,确保有足够磁盘空间 4. BMC密码会以明文形式出现在命令行历史中,建议使用脚本默认配置 4. 首次使用前请确保所有依赖已安装 5. 不同CPU架构可能需要调整监控参数 ## 常见问题 **Q: 监控过程中出现权限错误** A: 使用sudo运行脚本或确保当前用户有足够权限 **Q: 电源监控数据不准确** A: 检查BMC配置和网络连接,确保ipmitool能正常获取传感器数据 **Q: 生成的图表不完整** A: 检查是否所有CSV文件都正常生成,可能需要重新运行监控 **Q: 如何自定义监控间隔** A: 修改perf_monitor.sh脚本中的采样间隔参数(默认为1秒)