美文网首页
记一次MySQL夯住问题

记一次MySQL夯住问题

作者: 爱钓鱼的码农 | 来源:发表于2021-11-02 16:01 被阅读0次

MySQL现象

1.因为发生时间在凌晨基本业务流量
2.Show processlist的结果显示大量的线程状态为 Opening tables

错误日志

--Thread 139667773060864 has waited at trx0sys.ic line 80 for 241 seconds the semaphore:
X-lock on RW-latch at 0x7f085bcf7800 created in file buf0buf.cc line 778
a writer (thread id 139668311451392) has reserved it in mode SX
number of readers 0, waiters flag 1, lock_word: 10000000
Last time read locked in file trx0undo.ic line 143
Last time write locked in file /export/home/pb2/build/sb_0-38523192-1585233826.98/rpm/BUILD/mysql-8.0.20/mysql-8.0.20/storage/innobase/
buf/buf0flu.cc line 1330
2021-11-02T00:35:35.452008+08:00 0 [Warning] [MY-012985] [InnoDB] A long semaphore wait:
--Thread 139667707242240 has waited at row0upd.cc line 3038 for 241 seconds the semaphore:
X-lock on RW-latch at 0x7f0727730810 created in file buf0buf.cc line 778
a writer (thread id 139668311451392) has reserved it in mode SX
number of readers 0, waiters flag 1, lock_word: 10000000
Last time read locked in file row0sel.cc line 3458
Last time write locked in file /export/home/pb2/build/sb_0-38523192-1585233826.98/rpm/BUILD/mysql-8.0.20/mysql-8.0.20/storage/innobase/
buf/buf0flu.cc line 1330
InnoDB: ###### Starts InnoDB Monitor for 30 secs to print diagnostic info:
InnoDB: Pending preads 0, pwrites 0

=====================================
2021-11-02 00:35:43 0x7f07075a3700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 21 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 12864293 srv_active, 0 srv_shutdown, 2072908 srv_idle
srv_master_thread log flush and writes: 0
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 5018111
--Thread 139667707442944 has waited at trx0trx.cc line 531 for 111 seconds the semaphore:
Mutex at 0x7f086c3521b0, Mutex TRX_SYS created trx0sys.cc:508, lock var 1

--Thread 139667708245760 has waited at trx0trx.cc line 531 for 134 seconds the semaphore:
Mutex at 0x7f086c3521b0, Mutex TRX_SYS created trx0sys.cc:508, lock var 1

--Thread 139667712395008 has waited at trx0trx.cc line 531 for 132 seconds the semaphore:
Mutex at 0x7f086c3521b0, Mutex TRX_SYS created trx0sys.cc:508, lock var 1

--Thread 139667706238720 has waited at trx0trx.cc line 531 for 102 seconds the semaphore:
Mutex at 0x7f086c3521b0, Mutex TRX_SYS created trx0sys.cc:508, lock var 1

--Thread 139666166765312 has waited at trx0trx.cc line 531 for 91 seconds the semaphore:
Mutex at 0x7f086c3521b0, Mutex TRX_SYS created trx0sys.cc:508, lock var 1

--Thread 139666163418880 has waited at trx0trx.cc line 531 for 90 seconds the semaphore:
Mutex at 0x7f086c3521b0, Mutex TRX_SYS created trx0sys.cc:508, lock var 1

故障恢复

当时因为mysql已经无法响应任何读写操作,且业务流量也比较小就直接选择了重启后恢复

原因分析

解决方案

1.系统层面
[root@vm10-218-23-165 ~]# cat /proc/sys/kernel/sem
250 32000 32 128
[root@vm10-218-23-165 ~]# echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf
[root@vm10-218-23-165 ~]# sysctl -p
2.MySQL层面
关闭自适应hash索引
set global innodb_adaptive_hash_index=off;

相关文章

  • 记一次MySQL夯住问题

    MySQL现象 1.因为发生时间在凌晨基本业务流量2.Show processlist的结果显示大量的线程状态为 ...

  • 关于httpClient请求夯住的问题

    情景: 在生成环境里,平时跑了大半个月的程序突然有一天不正常了,其余的服务一切正常,接口请求等都没有异常,唯独有个...

  • Forcing close of thread 123 use

    记一次mysql5.5假死的问题 状态表现重启mysql网站就可以正常访问排查在mysql文件中找到了日志文件搜索...

  • Mysql 8.0+ 版本修改密码

    记一次 Ubuntu 16.04 下修改 Mysql root 用户密码的过程, 期间遇到过很多问题, 这里只记录...

  • 记一次mysql死锁问题

    场景:innodb下不同的事务进行更新和插入操作导致数据库死锁,代码如下,在批量插入之前,进行了逻辑删除操作,这段...

  • 记一次MySQL问题排查

    背景 运维监控显示,线上环境Kafka上报上下线消息积压严重。此topic主要存储设备状态变化的消息,消费者负责消...

  • 【MySQL】如何快速删除大表

    前言:MySQL运维内参中有提到如何快速删除大表。看到书中案列说drop大表的时候导致MySQL实例夯住了,但是本...

  • MySQL索引和字段类型,字段长度

    记一次MySQL不走索引的原因 问题描述: 首先是两个表,user_info和user_identify_info...

  • java程序线上问题排查基本步骤

    java程序线上问题排查基本步骤 观察cpu、内存使用情况 记一次集群中一台服务器查mysql慢 场景 问题1 问...

  • 记一次安装mysql过程

    记一次安装mysql过程 更新 2019年6月10日10:57:03忘记了mysql的密码,重新安装了mysql-...

网友评论

      本文标题:记一次MySQL夯住问题

      本文链接:https://www.haomeiwen.com/subject/kmtfzltx.html