云搜索服务 CSS-冻结索引:操作步骤

时间:2023-11-01 16:18:11

操作步骤

  1. 登录云搜索服务管理控制台。
  2. “集群管理”页面,选择需要冻结索引的集群,单击操作列“Kibana”,登录Kibana界面。
  3. 单击左侧导航栏的“Dev Tools”,进入操作页面。
  4. 执行如下命令,将指定索引冻结到OBS中。
    POST ${index_name}/_freeze_low_cost
    表1 请求参数说明

    参数名

    说明

    index_name

    需要冻结的索引的名字。

    返回结果如下:

    {    "freeze_uuid": "pdsRgUtSTymVDWR_HoTGFw"}
    表2 返回参数说明

    参数名

    说明

    freeze_uuid

    提交冻结请求后会启动一个异步任务,请求返回异步任务的ID,使用该ID查询异步任务的进度。

    索引冻结请求下发后,会禁止索引的数据写入,冻结过程中,查询请求不受影响。在冻结结束后,会将索引先close再open,在这段时间内,索引不可查询,集群可能短暂出现red状态,open结束后恢复。

  5. 执行如下命令获取冻结任务进度。
    GET _freeze_low_cost_progress/${freeze_uuid}
    表3 请求参数说明

    参数名

    说明

    freeze_uuid

    异步任务的ID,该ID由4获取的。

    返回结果如下:

    {  "stage" : "STARTED",  "shards_stats" : {    "INIT" : 0,    "FAILURE" : 0,    "DONE" : 0,    "STARTED" : 3,    "ABORTED" : 0  },  "indices" : {    "data1" : [      {        "uuid" : "7OS-G1-tRke2jHZPlckexg",        "index" : {          "name" : "data1",          "index_id" : "4b5PHXJITLaS6AurImfQ9A",          "shard" : 2        },        "start_ms" : 1611972010852,        "end_ms" : -1,        "total_time" : "10.5s",        "total_time_in_millis" : 10505,        "stage" : "STARTED",        "failure" : null,        "size" : {          "total_bytes" : 3211446689,          "finished_bytes" : 222491269,          "percent" : "6.0%"        },        "file" : {          "total_files" : 271,          "finished_files" : 12,          "percent" : "4.0%"        },        "rate_limit" : {          "paused_times" : 1,          "paused_nanos" : 946460970        }      },      {        "uuid" : "7OS-G1-tRke2jHZPlckexg",        "index" : {          "name" : "data1",          "index_id" : "4b5PHXJITLaS6AurImfQ9A",          "shard" : 0        },        "start_ms" : 1611972010998,        "end_ms" : -1,        "total_time" : "10.3s",        "total_time_in_millis" : 10359,        "stage" : "STARTED",        "failure" : null,        "size" : {          "total_bytes" : 3221418186,          "finished_bytes" : 272347118,          "percent" : "8.0%"        },        "file" : {          "total_files" : 372,          "finished_files" : 16,          "percent" : "4.0%"        },        "rate_limit" : {          "paused_times" : 5,          "paused_nanos" : 8269016764        }      },      {        "uuid" : "7OS-G1-tRke2jHZPlckexg",        "index" : {          "name" : "data1",          "index_id" : "4b5PHXJITLaS6AurImfQ9A",          "shard" : 1        },        "start_ms" : 1611972011021,        "end_ms" : -1,        "total_time" : "10.3s",        "total_time_in_millis" : 10336,        "stage" : "STARTED",        "failure" : null,        "size" : {          "total_bytes" : 3220787498,          "finished_bytes" : 305789614,          "percent" : "9.0%"        },        "file" : {          "total_files" : 323,          "finished_files" : 14,          "percent" : "4.0%"        },        "rate_limit" : {          "paused_times" : 3,          "paused_nanos" : 6057933087        }      }    ]  }}
    表4 返回参数说明

    参数名

    说明

    stage

    当前所处状态。取值包括:

    • INIT:刚启动或者正在初始化。
    • FAILURE:失败。
    • DONE:完成。
    • STARTED:已启动。
    • ABORTED:取消,预留字段。

    shards_stats

    处在各个状态的shard个数。

    indices

    每个索引的状态详情。

    表5 indices返回值说明

    参数名

    说明

    uuid

    freeze的uuid。

    index

    索引信息和shard信息。

    start_ms

    开始时间。

    end_ms

    结束时间,如果没有结束则显示为-1。

    total_time

    已花费时间。

    total_time_in_millis

    已花费时间毫秒数。

    stage

    当前shard所处的状态。

    failure

    失败原因,如果没有失败则显示为null。

    size.total_bytes

    总共需要冻结的文件的字节数。

    size.finished_bytes

    已经完成冻结的字节数。

    size.percent

    已经完成冻结的字节数百分比。

    file.total_bytes

    总共需要冻结的文件个数。

    file.finished_bytes

    已经完成冻结的文件个数。

    file.percent

    已经完成冻结的文件个数百分比。

    rate_limit.paused_times

    达到限速导致冻结暂停的次数。

    rate_limit.paused_nanos

    达到限速导致冻结暂停的时间纳秒数。

    冻结完成的索引会增加以下settings,可参考表6

    表6 冻结索引settings

    参数

    说明

    index.frozen_low_cost

    标识该索引为冻结索引。取值为true。

    index.blocks.write

    冻结后的索引禁止写入。取值为true。

    index.store.type

    标识该索引的存储类型为obs。取值为obs。

  6. 索引冻结后,会将数据进行缓存。执行如下命令获取当前缓存状态。关于缓存详见配置缓存
    GET _frozen_statsGET _frozen_stats/${node_id}
    表7 请求参数说明

    参数名

    说明

    node_id

    获取单个节点的缓存状态,此参数为需要获取的节点id。

    返回结果如下:

    {  "_nodes" : {    "total" : 3,    "successful" : 3,    "failed" : 0  },  "cluster_name" : "css-zzz1",  "nodes" : {    "7uwKO38RRoaON37YsXhCYw" : {      "name" : "css-zzz1-ess-esn-2-1",      "transport_address" : "10.0.0.247:9300",      "host" : "10.0.0.247",      "ip" : "10.0.0.247",      "block_cache" : {        "default" : {          "type" : "memory",          "block_cache_capacity" : 8192,          "block_cache_blocksize" : 8192,          "block_cache_size" : 12,          "block_cache_hit" : 14,          "block_cache_miss" : 0,          "block_cache_eviction" : 0,          "block_cache_store_fail" : 0        }      },      "obs_stats" : {        "list" : {          "obs_list_count" : 17,          "obs_list_ms" : 265,          "obs_list_avg_ms" : 15        },        "get_meta" : {          "obs_get_meta_count" : 79,          "obs_get_meta_ms" : 183,          "obs_get_meta_avg_ms" : 2        },        "get_obj" : {          "obs_get_obj_count" : 12,          "obs_get_obj_ms" : 123,          "obs_get_obj_avg_ms" : 10        },        "put_obj" : {          "obs_put_obj_count" : 12,          "obs_put_obj_ms" : 2451,          "obs_put_obj_avg_ms" : 204        },        "obs_op_total" : {          "obs_op_total_ms" : 3022,          "obs_op_total_count" : 120,          "obs_op_avg_ms" : 25        }      },      "reader_cache" : {        "hit_count" : 0,        "miss_count" : 1,        "load_success_count" : 1,        "load_exception_count" : 0,        "total_load_time" : 291194714,        "eviction_count" : 0      }    },    "73EDpEqoQES749umJqxOzQ" : {      "name" : "css-zzz1-ess-esn-3-1",      "transport_address" : "10.0.0.201:9300",      "host" : "10.0.0.201",      "ip" : "10.0.0.201",      "block_cache" : {        "default" : {          "type" : "memory",          "block_cache_capacity" : 8192,          "block_cache_blocksize" : 8192,          "block_cache_size" : 12,          "block_cache_hit" : 14,          "block_cache_miss" : 0,          "block_cache_eviction" : 0,          "block_cache_store_fail" : 0        }      },      "obs_stats" : {        "list" : {          "obs_list_count" : 17,          "obs_list_ms" : 309,          "obs_list_avg_ms" : 18        },        "get_meta" : {          "obs_get_meta_count" : 79,          "obs_get_meta_ms" : 216,          "obs_get_meta_avg_ms" : 2        },        "get_obj" : {          "obs_get_obj_count" : 12,          "obs_get_obj_ms" : 140,          "obs_get_obj_avg_ms" : 11        },        "put_obj" : {          "obs_put_obj_count" : 12,          "obs_put_obj_ms" : 1081,          "obs_put_obj_avg_ms" : 90        },        "obs_op_total" : {          "obs_op_total_ms" : 1746,          "obs_op_total_count" : 120,          "obs_op_avg_ms" : 14        }      },      "reader_cache" : {        "hit_count" : 0,        "miss_count" : 1,        "load_success_count" : 1,        "load_exception_count" : 0,        "total_load_time" : 367179751,        "eviction_count" : 0      }    },    "EF8WoLCUQbqJl1Pkqo9-OA" : {      "name" : "css-zzz1-ess-esn-1-1",      "transport_address" : "10.0.0.18:9300",      "host" : "10.0.0.18",      "ip" : "10.0.0.18",      "block_cache" : {        "default" : {          "type" : "memory",          "block_cache_capacity" : 8192,          "block_cache_blocksize" : 8192,          "block_cache_size" : 12,          "block_cache_hit" : 14,          "block_cache_miss" : 0,          "block_cache_eviction" : 0,          "block_cache_store_fail" : 0        }      },      "obs_stats" : {        "list" : {          "obs_list_count" : 17,          "obs_list_ms" : 220,          "obs_list_avg_ms" : 12        },        "get_meta" : {          "obs_get_meta_count" : 79,          "obs_get_meta_ms" : 139,          "obs_get_meta_avg_ms" : 1        },        "get_obj" : {          "obs_get_obj_count" : 12,          "obs_get_obj_ms" : 82,          "obs_get_obj_avg_ms" : 6        },        "put_obj" : {          "obs_put_obj_count" : 12,          "obs_put_obj_ms" : 879,          "obs_put_obj_avg_ms" : 73        },        "obs_op_total" : {          "obs_op_total_ms" : 1320,          "obs_op_total_count" : 120,          "obs_op_avg_ms" : 11        }      },      "reader_cache" : {        "hit_count" : 0,        "miss_count" : 1,        "load_success_count" : 1,        "load_exception_count" : 0,        "total_load_time" : 235706838,        "eviction_count" : 0      }    }  }}
  7. 执行如下命令重置缓存状态。
    POST _frozen_stats/reset

    返回结果如下:

    {  "_nodes" : {    "total" : 1,    "successful" : 1,    "failed" : 0  },  "cluster_name" : "Es-0325-007_01",  "nodes" : {    "mqTdk2YRSPyOSXfesREFSg" : {      "result" : "ok"    }  }}

    此命令用于性能问题的调试,如重置缓存状态后再次执行查询,可以清晰看到本次查询的缓存命令情况。在业务运行阶段不需要执行此命令。

  8. 执行如下命令获取当前已经冻结的所有索引。
    GET _cat/freeze_indices

    返回结果如下:

    green open data2 0bNtxWDtRbOSkS4JYaUgMQ 3 0  5 0  7.9kb  7.9kbgreen open data3 oYMLvw31QnyasqUNuyP6RA 3 0 51 0 23.5kb 23.5kb
    此命令的参数和返回值与开源ES的_cat/indices一致。
support.huaweicloud.com/usermanual-css/css_01_0114.html