Skip to content

Commit

Permalink
update troubleshooting
Browse files Browse the repository at this point in the history
  • Loading branch information
Cloudac7 committed Oct 23, 2024
1 parent d2918a5 commit 44f4d64
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions docs/notes/troubleshooting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# 智算服务异常排查和反馈

智算中心提供了多种现有的通用软硬件解决方案,包括 Intel OneAPI 套件、GNU GCC、CUDA、OpenMPI 等等,可驱动多种不同类型应用在同一硬件平台上运行,并为用户提供了编译自定义应用的能力。但由于软件版本环境复杂,且上下游依赖兼容性、可靠性难以100%保证,我们无法确保您的应用具有100%的可用性和准确性。

因此在使用智算集群时,**请对自己的数据和结果负责**,时常对自己计算的结果抱有怀疑态度,审慎测试,确保可用、可靠后再大规模扩展。

当遇到异常情况时,请遵循以下方案进行排查:

## 1. 了解问题的背景

- **清晰描述问题**:记录出错信息、环境配置、操作步骤等。明确是软件层面问题、网络问题还是硬件问题。
- **收集日志和错误信息**:如系统日志、应用日志、Slurm作业管理器输出等。

## 2. 常见系统问题排查

- **检查资源使用情况**:利用 `top``htop``free` 等命令查看CPU、内存、I/O使用情况。
- **存储空间不足**:检查文件系统空间(如 `df -h`),或是否存在太多小文件(可以影响I/O性能)。
- **网络问题**:使用 `ping``traceroute` 测试网络连通性。确认是否有丢包或高延迟。

## 3. 作业提交与调度问题

- **检查调度器状态**:确保Slurm作业调度器正常运行,使用 `scontrol show` 查看作业状态。
- **了解作业排队原因**:作业是否因资源不足被推迟?或者调度策略优先级影响?
- **作业输出和错误文件**:检查 `.out``.err` 等文件,寻找异常信息。

## 4. 编译和软件问题

- **编译问题**
- 确认编译器和库版本是否兼容。
- 确保所有依赖库已正确安装和链接(通过 `ldd` 检查共享库依赖)。
- 常见编译器选项:检查优化标志(如 `O3`)、并行编译标志(如 `fopenmp`)、调试标志(如 `g`)等。
- **运行时问题**
- 核实环境变量是否正确设置(如 `PATH``LD_LIBRARY_PATH` 等)。
- 验证输入文件格式是否正确。
- 检查软件依赖是否缺失,或权限问题(如无法写入输出文件)。

## 5. 性能调优

- **检查CPU和内存绑定**:避免资源竞争(例如:使用 `numactl` 检查内存和CPU的绑定)。
- **I/O瓶颈**:排查是否存在I/O密集型任务,可能需要优化存储访问模式。
- **网络和MPI问题**:使用 `mpirun``mpiexec` 调试多节点任务,检查MPI通信的性能瓶颈。

## 6. 用户权限和系统设置

- **确认用户权限**:确保用户对资源(如文件、目录、存储)拥有足够的读写权限。
- **配置文件检查**:核实配置文件(如 `~/.bash_profile``~/.bashrc` )中是否有影响作业执行的内容。

## 7. 高级调试工具

- **GDB/Valgrind**:用于调试崩溃或内存泄漏问题。
- **Strace/Ltrace**:用于跟踪系统调用和库调用,帮助定位文件访问和权限问题。

## 8. 咨询支持

- 如果经过上述步骤仍未解决问题,用户应及时向智算管理员或开发团队提交**详细的故障报告**,包括:
- 环境信息(系统、编译器版本等)
- 错误日志(尽可能详尽的上下文报错信息等)
- 复现步骤(提交脚本、可复现的测试样例等)

0 comments on commit 44f4d64

Please sign in to comment.