ceph问题定位总结

ceph运营中经常会遇到slow request,简单总结下定位这些问题的方法及思路:

  1. 先查看集群的cpu负载,相关命令top;
  2. 再查看磁盘的负责,相关命令iostat、dstat等;
  3. 再查看网络方面的负载,相关命令netstat;netstat的输出结果里面要关注下Recv-Q Send-Q这两个queue的大小,如果Recv-Q比较大的话说明收的较慢,Send-Q比较大说明发的慢;
  4. 使用ceph --admin-daemon asok perf dump等命令来分析,输出结果里面需要主要关注wait那一项,比如:
    "throttle-objecter_bytes": {
        "val": 35652380,
        "max": 838860800,
        "get_started": 17898,
        "get": 2182128,
        "get_sum": 4255599802310,
        "get_or_fail_fail": 17898,
        "get_or_fail_success": 2164230,
        "take": 0,
        "take_sum": 0,
        "put": 1248942,
        "put_sum": 4255564149930,
        "wait": {
            "avgcount": 17897,
            "sum": 4899.822857281
        }
    },
    "throttle-objecter_ops": {
        "val": 15,
        "max": 1024,
        "get_started": 0,
        "get": 2182128,
        "get_sum": 2182128,
        "get_or_fail_fail": 0,
        "get_or_fail_success": 2182128,
        "take": 0,
        "take_sum": 0,
        "put": 2182113,
        "put_sum": 2182113,
        "wait": {
            "avgcount": 0,
            "sum": 0.000000000
        }
    },

这种情况下可能需要调大objecter_inflight_op_bytes,但需要注意的是,调大这个配置项的话,会导致rgw使用内存增加。

你可能感兴趣的:(ceph问题定位总结)