CEPH 集群”slow request“问题处理思路
什么是“slow request”请求
当一个请求长时间未能处理完成,ceph就会把该请求标记为慢请求(slow request
)。默认情况下,一个请求超过30
秒未完成,
就会被标记为slow request
,并打印到日志文件(默认:/var/log/ceph/ceph.log
)。请求超时时间由参数osd_op_complaint_time
指定,并可以动态的修改。另外,一个请求超过5
分钟未完成,会导致所在的OSD Daemon
程序异常退出(自杀), 自杀时间由参数osd_op_thread_suicide_timeout
指定,并可以动态的修改。
不建议将请求超时时间
osd_op_complaint_time
设置过小,以免误报;不建议将自杀时间osd_op_thread_suicide_timeout
设置过小,以免自杀后引起更大的性能抖动
可能原因及解决思路
ceph -s
或者ceph -w
检查集群状态及运行负载
- 如果状态不正常先将集群状态恢复正常(
HEALTH_OK
) - 如果正在执行backfill或recover或Deep Scrub, 可以考虑先将其中止(
ceph osd set nobackfill/norecover/nodeep-scrub
),再观察
- 如果状态不正常先将集群状态恢复正常(
检测系统负载
如果集群状态正常、负载不高