云数据库 RDS-RDS for MySQL性能调优-解决内存使用率高问题:查看内存使用情况

时间:2023-12-13 14:11:42

查看内存使用情况

  • 通过智能DBA助手查看实例的内存使用情况,具体请参见查看性能指标

  • 您还可以使用performance_schema,设置相关的内存仪表(instrumentation),通过内存占用统计表查看内存占用。更多信息,请参见MySQL官方文档

    MySQL5.6不支持performance_schema内存检测,不能使用performance_schema进行内存检测。

  1. 参考修改当前实例参数,设置performance_schema = ON。

  2. 重启实例使参数修改生效。
  3. 查询sys.memory_global_total视图,查看当前总的内存使用。

    select * from sys.memory_global_total;

  4. 查询sys.session视图。
    1. 查询sys.session视图,current_memory字段记录每个会话的内存使用。

      select thd_id,conn_id, current_memory from sys.session;

    2. 查看performance_schema下占用内存较高的会话线程内存明细。

      select * from memory_summary_by_thread_by_event_name where thread_id= "占用内存较高的线程id" order by CURRENT_NUMBER_OF_BYTES_USED;

  5. 查询sys.memory_by_thread_by_current_bytes。
    1. 查询sys.memory_by_thread_by_current_bytes,current_allocated字段记录每个后台线程的内存使用。

      select thread_id, user, current_allocated from memory_by_thread_by_current_bytes;

    2. 查看performance_schema下占用内存较高的后台线程内存明细。

      select * from memory_summary_by_thread_by_event_name where thread_id= "占用内存较高的线程id" order by CURRENT_NUMBER_OF_BYTES_USED;

  6. 查询memory_global_by_current_bytes视图,按照内存分配类型获取内存使用统计信息。

    select event_name,current_alloc from sys.memory_global_by_current_bytes where event_name not like 'memory/performance_schema%' ;

  7. 根据查询结果分析内存使用过高原因。
support.huaweicloud.com/bestpractice-rds/rds_02_0017.html