本文介绍如何查看消耗内存高的事件和线程,为您解决内存相关问题提供参考。
内存是重要的性能参数,内存使用率过高会导致系统响应速度变慢,严重时内存耗尽实例会进行主备切换,导致业务中断。因此我们需要在内存异常升高时及时排查问题,避免影响业务。
前提条件 实例版本如下: MySQL 5.7 MySQL 8.0 操作步骤 登录RDS管理控制台。 在页面左上角,选择实例所在地域。
找到目标实例,单击实例ID。 在左侧导航栏中单击参数设置。 修改参数performance_schema为ON,如果已经为ON请忽略此步骤。 说明 该操作会重启实例造成连接中断,重启前请做好业务安排,谨慎操作。 单击


单击右上角提交参数,等待实例重启完成。

使用DMS或客户端连接MySQL实例。 执行如下命令打开内存监控: update performance_schema.setup_instruments set enabled = 'yes' where name like 'memory%'; select * from performance_schema.setup_instruments where name like 'memory%innodb%' limit 5; 说明 该命令是在线打开内存统计,所以只会统计打开后新增的内存对象,打开前的内存对象不会统计,建议您打开后等待一段时间再执行后续步骤,便于找出内存使用高的线程。 您可以执行命令统计事件和线程的内存消耗量,并进行排序展示。 统计事件消耗内存: select event_name,SUM_NUMBER_OF_BYTES_ALLOC from performance_schema.memory_summary_global_by_event_name order by SUM_NUMBER_OF_BYTES_ALLOC desc LIMIT 10;

统计线程消耗内存: select thread_id,event_name, SUM_NUMBER_OF_BYTES_ALLOC from performance_schema.memory_summary_by_thread_by_event_name order by SUM_NUMBER_OF_BYTES_ALLOC desc limit 20;

说明 您也可以执行如下命令查看详细的监控信息: select * from sys.x$memory_by_host_by_current_bytes ; select * from sys.x$memory_by_thread_by_current_bytes ; select * from sys.x$memory_by_user_by_current_bytes ; select * from sys.x$memory_global_by_current_bytes ; select * from sys.x$memory_global_total ; select * from performance_schema.memory_summary_by_account_by_event_name; select * from performance_schema.memory_summary_by_host_by_event_name; select * from performance_schema.memory_summary_by_thread_by_event_name; select * from performance_schema.memory_summary_by_user_by_event_name; select * from performance_schema.memory_summary_global_by_event_name; select event_name,current_alloc from sys.memory_global_by_current_bytes where event_name like '%innodb%'; select event_name,current_alloc from sys.memory_global_by_current_bytes limit 5; select m.thread_id tid, USER, esc.DIGEST_TEXT, total_allocated FROM sys.memory_by_thread_by_current_bytes m, performance_schema.events_statements_current esc WHERE m.`thread_id` = esc.THREAD_ID \G 下一步
找到问题事件或线程后,您可以排查业务代码和环境,解决内存高的问题。
相比其他Linux操作系统,Aliyun Linux 2有哪些优势?
Aliyun Linux 2与CentOS 7.6.1810发行版保持二进制兼容,在此基础上提供差异化的操作系统功能。
与CentOS及RHEL相比,Aliyun Linux 2的优势体现在: 满足您的操作系统新特性诉求,更快的发布节奏,更新的Linux内核、用户态软件及工具包。 开箱即用,最简用户配置,最短时间服务就绪。 最大化用户性能收益,与云基础设施联动优化。 与RHEL相比没有运行时计费,与CentOS相比有商业支持。如果您的用户域名需要通过HTTPS的方式访问OSS服务,必须购买相应的数字证书。您可以通过任何CA证书厂商或者阿里云云盾申请免费的证书或购买高级证书(详情请参见证书服务快速入门),并通过OSS托管您的证书。
如果没有开启CDN加速,则绑定用户域名后,您可以直接在OSS控制台上进行证书托管操作,步骤如下: 在域名管理页签,单击操作下的证书托管。说明:证书格式要求请您参见证书格式说明。
如果开启了CDN加速,则绑定用户域名后,您需要通过CDN控制台进行HTTPS证书管理。详情请参见设置HTTPS安全加速。发送到队列中的消息格式:{ “messageid”:”12345”, “messagetype”:”status/upload”, “topic”:”null/topic”, “payload”: {data}, “timestamp”: 1469564576}中有Topic字段。可根据Topic字段来判断。请参见文档中消息体格式。