Resource Manager同时提供了CPU使用率和内存使用率的实时监控,资源监控的维度可以基于用户线程也可以基于资源组。您可以通过实时监控CPU和内存使用率,了解系统运行的实时状况,区分系统压力来源,帮助您通过业务调度将压力合理分散。本文将介绍如何使用Resource Manager功能。

注意事项

  • 资源组目前不提供配置功能,所有的用户线程连接后都属于默认的user_default资源组,系统后台线程属于sys_default资源组。
  • 开启线程池(Thread Pool)功能会导致CPU和内存统计不准确,因此目前资源组功能不能和线程池(Thread Pool)功能同时启用。

参数配置

Resource Manager监控功能支持配置以下参数:

说明 启用Resource Manager的监控功能需要同时开启resource_group_enabledperformance_schemacpu_usage_capture_enabled的开关。
参数 说明
resource_group_enabled 是否开启Resource Group功能。取值为ON或OFF,默认值为OFF。
performance_schema 是否开启Performance Schame功能。取值为ON或OFF,默认值为OFF。
cpu_usage_capture_enabled 是否开启CPU使用率采集功能。取值为ON或OFF,默认值为OFF。
cpu_usage_capture_interval CPU使用率采集间隔,单位为毫秒。取值范围为100~1000,默认值为500。
cpu_usage_summarize_interval CPU使用率统计间隔,单位为毫秒。取值范围为1000~ULONG_MAX,默认值为2000。
performance_schema_minimal 是否开启将performance_schema的内存使用最小化。取值为ON或OFF,默认值为OFF。
说明 仅当performance_schema状态为ON时,才支持配置该参数。performance_schema状态为OFF时该参数无效。

资源监控

  • 您可以使用如下SQL查询线程的资源使用情况。
    call db_resource_manager.show_processlist();
    call db_resource_manager.show_processlist_verbose();

    使用上述语句默认只显示当前用户的线程信息,如果您具有PROCESS权限,则可以显示全部用户的线程信息。

    • show_processlist不会单独显示子线程的信息,而是将并行子线程使用的资源加到主线程上统一显示。
    • show_processlist_verbose会独立展示子线程信息。1
  • 您可以使用如下SQL查询当前系统中所有的资源组以及资源组的配置情况。
    select * from information_schema.resource_group;
    说明 查询前请确保resource_group_enabled功能已开启。