前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >--MySql 那些监控参数 问 与 答 (二) 之从监控看配置是否合理

--MySql 那些监控参数 问 与 答 (二) 之从监控看配置是否合理

作者头像
AustinDatabases
发布2019-12-26 16:24:29
8600
发布2019-12-26 16:24:29
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

实在抱歉,上期的 谁说Postgresql 没有靠谱的高可用为(4)期,疏忽忘记打标识了,特此道歉

___________________________________________________________________

接上期,上期讲到内存的问题

关于内存的问题在MYSQL 并不是一件容易讲清楚的问题,而关注于内存的问题也是蛮多的。

8 问:MYSQL innodb_buffer_pool_size 我到底用了多少内存 ?

关于innodb_buffer_pool_size,上期说了计算利用率的计算方法,而到底使用了多少内存是否能给一个明确的数字。

(innodb_buffer_pool_pages_total - innodb_buffer_pool_pages_free) * 16/1024

就是你正在使用的innodb_buffer_pool_size 的尺寸。

同时如果你不确认你的MYSQL 的PAGE SIZE ,可以查阅一下

说完内存下面该是关注I/O的问题了,和相关问题

9 问:我们的MYSQL服务器上有多个库,现在需要拆库或者迁库吗?

问这个问题的时候,一般情况是当初服务器的性能强悍,所以不同的库都往这一个服务器上放,而后期就是服务器的性能已经不能满足现在越来越多的库的压榨。(实际上MYSQL 适合库少表少的情况,模块化,而不是和其他数据库一样集中,什么都往里面放)

所以到了这个时期,要回答的第一个问题就是,这个服务器上众多的库,到底哪个最HOT

SELECT schema_name , SUM(count_star) count , ROUND( (SUM(sum_timer_wait) / SUM(count_star)) / 1000000) AS avg_microsec FROM performance_schema.events_statements_summary_by_digest WHERE schema_name IS NOT NULL GROUP BY schema_name;

但这样的展示其实也是有缺陷的,不知道大家知道不知道,这里就不再啰嗦了。所以只能计算一个大概的量

(The average query time is wrong, because when you open the library but query the tables in other databases, the counters that open the database are also counted,)

同时我们还可以计算出当前这些库查询中出错的情况

代码语言:javascript
复制
SELECT schema_name
     , SUM(sum_errors) err_count
  FROM performance_schema.events_statements_summary_by_digest
 WHERE schema_name IS NOT NULL
 GROUP BY schema_name;

10 问:那我想知道某个库中那些总体语句的延迟比较高,执行次数与错误的次数的对比

其实在MYSQL 5.7 后sys 库的使用越来越多,也导致 slow log 的使用越来越少(这也是商业数据库通用的方法,ORACLE SQL SERVER),PG 是将慢查询打印到日志 类似MYSQL SLOW LOG

所以在MYSQL 越来越往SYS 库去获取性能的数据的情况,下面就是一个例子 使用 sys.statements_with_runtimes_in_95th_percentile

sys.statements_with_errors_or_warnings

11 问MYSQL系统日志的写请求是否有瓶颈

这需要关注 innodb_log_waits 这个状态值,如果一直为0则说明日志的写入并未有因日志的缓存太小而造成写等待,如果不为0 则可以和 innodb_log_write_requestes 这个值进行一个百分比的计算,看有日志的等待比有多大。

当然这还没完,Innodb_os_log_pending_fsyncs的数值是否为0 ,证明物理刷入磁盘的日志是否有延迟,与Innodb_os_log_fsyncs 匹配,也可以看到未及时刷入的日志的比率有多少。

以上两个方面可以部分反映MYSQL的日志写这个过程是否有一些性能方面的瓶颈。

12 问 我的innodb_log_file_size 设置的合理吗,有没有阻塞日志写入造成性能问题?

MYSQL 系统如果是大量写入的系统,是需要关注 innodb_log_file_size的,怎么来通过监控来查看设置的innodb_log_file_size 是否合适

innodb_log_files_in_group * innodb_log_file_size / Innodb_os_log_written

定时刷新可以看出平均刷新时间段的日志的写入量,在对比你设置的量看看有没有平均,另外调整相关参数要注意,需要有特殊的操作(具体请百度)。

待...... (3)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档