我正在运行 MariaDB 11.4.4 和一个繁忙的网站(Debian12+nginx+php-fpm)。
每隔几天 MariaDB 线程就会冻结一次,直到达到最大连接数。即使终止查询也不会释放线程。MariaDB 无法关闭 最后systemctl stop mariadb
我需要killall -9 mariadbd
恢复操作。mysql/error.log 或 slow_query.log 中没有任何意外
以下是在 MariaDB 完全锁定之前拍摄的 SHOW FULL PROCESSLIST、SHOW GLOBAL STATUS 和 SHOW ENGINE INNODB STATUS 图像:
https://pastejustit.com/mariadb-debug-info
显示变量在这里:
过去也曾有过类似的报告,但它们与旧版本的 MariaDB 有关,没有明确的解决方案,并且很可能在 MariaDB 10.6 中得到修复。*
有什么想法可以避免这个问题吗?
添加:fully_ping
表定义
CREATE TABLE `fully_ping` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`devid` varchar(255) NOT NULL,
`appid` int(11) NOT NULL DEFAULT 1,
`firstping_time` datetime DEFAULT NULL COMMENT 'UTC',
`lastping_time` datetime NOT NULL COMMENT 'UTC',
`message` mediumtext NOT NULL,
`pass` varchar(255) DEFAULT NULL,
`ip` varchar(255) DEFAULT NULL,
`serial` varchar(255) DEFAULT NULL,
`counter` int(11) NOT NULL DEFAULT 0,
`version` int(11) DEFAULT NULL,
`tls_version` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `devid` (`devid`(191)),
KEY `appid` (`appid`),
KEY `lastping_time` (`lastping_time`),
KEY `counter` (`counter`),
KEY `serial` (`serial`),
CONSTRAINT `fully_ping_ibfk_1` FOREIGN KEY (`appid`) REFERENCES `fully_apps` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=180169 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci