首页 > 解决方案 > 如何调试从 lustre 读取产生的悬挂作业?

问题描述

我有一份处于可中断睡眠状态(S)的工作,挂了几个小时。

WCHAN 字段显示 PID 正在等待 ptlrpc。网上搜索了一下,貌似这是个光彩操作。打印文件还显示该程序卡在从 lustre 读取数据。关于如何进行诊断的任何想法或建议?或者挂起发生的可能原因?

标签: gdbstatepidstracelustre

解决方案


您可以检查/proc/$PID/stack客户端以查看整个进程堆栈,这将为您提供有关进程正在做什么的更多信息(ptlrpc_set_wait()只是通用的“等待 RPC 完成”功能)。

也就是说,更有用的是检查内核控制台错误消息(dmesg和/或/var/log/messages)以查看发生了什么。当出现问题时,Lustre 绝对不会羞于记录错误。

这很可能表明客户端正在服务器上等待完成 RPC,因此您还必须检查dmesg和/或/var/log/messages查看服务器上的问题。有几个现有的文档详细介绍了如何调试 Lustre 问题:

此时,您可能最好在 https://jira.whamcloud,com/ 上检查现有的 Lustre 错误,以搜索报告的第一条错误消息,或者可能是堆栈跟踪。很有可能(取决于遇到的错误)已经有可用的修复程序,升级到最新的维护版本(当前为 2.12.7)或应用补丁(如果最近修复了错误)将唯一你的问题。


推荐阅读