orecle系统(orecal update)

orecle系统(orecal update)环境 现象 从应用服务上看 在同一时间 4 个查询与更新的服务副本 更新操作的线程一直卡在 IO 读上 也就是没有 Mysql 应答 导致其中部分服务的 2 6 个 jdbc 连接被卡死 直到 540xxx 毫秒 9 分钟 后统一给了应答 服务才解除卡死 线程栈大致如下 java net SocketInputS socketRead0 com mysql jdbc util

大家好,我是讯享网,很高兴认识大家。



环境:
现象

从应用服务上看,在同一时间,4个查询与更新的服务副本,更新操作的线程一直卡在IO读上,也就是没有Mysql应答,导致其中部分服务的2-6个jdbc连接被卡死,直到540xxx毫秒(9分钟)后统一给了应答,服务才解除卡死。
线程栈大致如下:
java.net.SocketInputStream.socketRead0
com.mysql.jdbc.util.ReadAheadInputStream.fill
com.mysql.jdbc.MysqlIO.readFully
jdbc.pool.ProxyConnection.invoke
xxxxx.业务代码模块的updateDao

分析

目前怀疑跟数据库刷脏页导致一瞬间Mysql暂停服务了,且这部分查询处于一直执行的卡死状态,后来发现Mysql配置基本原始,需要很多参数的优化。


讯享网

记录一些目前状态可能有问题的指标。

  1. innodb_io_capacity
  1. innodb redolog
  1. 慢查询日志未开启
  2. buffer池
  1. 脏页刷新策略
  1. 缓存利用率
    innodb_buffer_pool_reads:表示InnoDB缓冲池无法满足的请求数。需要从磁盘中读取。
    innodb_buffer_pool_read_requests:表示从内存中读取逻辑的请求数。
  2. java updateStrategy置为null_mysql

  3. 大概有3%的数据需要读磁盘。应该降低到1%以下。
  4. 缓存池中数据表明缓存池太小,这个pool_wait_free严重,如何调节:
  5. java updateStrategy置为null_sql_02


  6. java updateStrategy置为null_缓冲池_03


  7. java updateStrategy置为null_缓冲池_04

  1. innodb_flush_neighbors=1 临近数据脏页刷新策略 默认是
  1. skip-external-locking #如果是单服务器环境,则将其禁用即可
调整后参数
过程学习参数

小讯
上一篇 2025-04-17 22:51
下一篇 2025-04-25 12:16

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/142099.html