首页 > 解决方案 > 服务端开始累积查询,线程在信号量中等待已久

问题描述

在日志文件中有很多行(250 个线程),输入

Feb 28 16:11:57 - mysqld: --Thread 139956102706944 has waited at row0ins.cc line 1982 for 115.00 seconds the semaphore:
Feb 28 16:11:57 - mysqld: S-lock on RW-latch at 0x55865ee04de0 created in file dict0dict.cc line 920
Feb 28 16:11:57 - mysqld: a writer (thread id 139953379993344) has reserved it in mode  wait exclusive
Feb 28 16:11:57 - mysqld: number of readers 4, waiters flag 1, lock_word: fffffffc
Feb 28 16:11:57 - mysqld: Last time write locked in file srv0srv.cc line 2029
Feb 28 16:11:57 - mysqld: --Thread 140022041876224 has waited at row0upd.cc line 181 for 275.00 seconds the semaphore:
Feb 28 16:11:57 - mysqld: S-lock on RW-latch at 0x55865ee04de0 created in file dict0dict.cc line 920
Feb 28 16:11:57 - mysqld: a writer (thread id 139953379993344) has reserved it in mode  wait exclusive
Feb 28 16:11:57 - mysqld: number of readers 4, waiters flag 1, lock_word: fffffffc
Feb 28 16:11:57 - mysqld: Last time write locked in file srv0srv.cc line 2029
Feb 28 16:11:57 - mysqld: --Thread 139956075943680 has waited at row0ins.cc line 1982 for 524.00 seconds the semaphore:
Feb 28 16:11:57 - mysqld: S-lock on RW-latch at 0x55865ee04de0 created in file dict0dict.cc line 920
Feb 28 16:11:57 - mysqld: a writer (thread id 139953379993344) has reserved it in mode  wait exclusive
Feb 28 16:11:57 - mysqld: number of readers 4, waiters flag 1, lock_word: fffffffc
Feb 28 16:11:57 - mysqld: Last time write locked in file srv0srv.cc line 2029
Feb 28 16:11:57 - mysqld: --Thread 139956085135104 has waited at row0undo.cc line 295 for 47.00 seconds the semaphore:
Feb 28 16:11:57 - mysqld: S-lock on RW-latch at 0x55865ee04de0 created in file dict0dict.cc line 920
Feb 28 16:11:57 - mysqld: a writer (thread id 139953379993344) has reserved it in mode  wait exclusive
Feb 28 16:11:57 - mysqld: number of readers 4, waiters flag 1, lock_word: fffffffc
Feb 28 16:11:57 - mysqld: Last time write locked in file srv0srv.cc line 2029
Feb 28 16:11:57 - mysqld: --Thread 139953379993344 has waited at srv0srv.cc line 2029 for 556.00 seconds the semaphore:
Feb 28 16:11:57 - mysqld: X-lock (wait_ex) on RW-latch at 0x55865ee04de0 created in file dict0dict.cc line 920
Feb 28 16:11:57 - mysqld: a writer (thread id 139953379993344) has reserved it in mode  wait exclusive
Feb 28 16:11:57 - mysqld: number of readers 4, waiters flag 1, lock_word: fffffffc
Feb 28 16:11:57 - mysqld: Last time write locked in file srv0srv.cc line 2029

innodb_adaptive_hash_index 已关闭。

版本:mysql Ver 15.1 Distrib 10.3.27-MariaDB,用于 debian-linux-gnu (x86_64) 使用 readline 5.2

我们在模式之间迁移了大量数据(6M 行 = 160GB),在迭代之间有暂停的小部分(500 行)可以改变什么,以便服务器在信号量中没有锁?

标签: mysqlmariadbsemaphore

解决方案


推荐阅读