我们的其中一台生产服务器出现严重问题。有问题的设置是 CentOS 7 64 位服务器,具有 16 GB 内存和 250 GB SSD(因此设置应该非常快)。LEMP 堆栈使用 MariaDB 10.1.29 进行配置。我们在这台服务器上运行了大约 20 个应用程序,每个应用程序都使用自己的数据库。
几周前,我们在状态监视器中看到(每隔 5 分钟 ping 每个应用程序并测量响应时间),有时有 3 个应用程序执行速度非常慢。(响应时间从 2 秒到 10 秒,而平均值约为 0.1 秒)。MariaDB 的慢日志充满了慢查询(其中大多数是针对会话存储的简单插入、选择和更新查询),有时需要长达 15 秒,但仅来自这三个应用程序。
与其他应用程序相比,这三个应用程序的共同点是,它们都使用InnoDB
而不是MyISAM
. 因此,为了进一步调试,我们将另外 3 个应用程序从 MyISAM 转换为 InnoDB,这些应用程序也开始遭受相同的延迟。
我能够捕捉到慢查询的配置文件,问题似乎与query end
.
问题是(或难以调试的原因),我们看不到任何规律性,并且查询在 99% 的情况下都在快速运行。
编辑以添加更多指标和统计数据,也在评论中提供更好的概述
示例:PROFILE 简单更新查询列表:
213 | 0.01676252 | update `users` set `remember_token` = 'PpIxVPJE4Hkc981B6C6dT0aeCaExgjmR2GOydFqDZpU36O6z0mOsGic1DYIO' where `id` = 1
214 | 0.00950012 | update `users` set `remember_token` = 'PpIxVPJE4Hkc981B6C6dT0aeCaExgjmR2GOydFqDZpU36O6z0mOsGic1DYIO' where `id` …
Run Code Online (Sandbox Code Playgroud)