首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >percona工具箱pt-kill命令-忽略-状态标志

percona工具箱pt-kill命令-忽略-状态标志
EN

Server Fault用户
提问于 2019-08-28 16:41:40
回答 1查看 307关注 0票数 0

我有下面的pt-杀死daemon设置。它可以工作,但不会杀死查询(如SELECT GET_LOCK(300) )。如果我删除--ignore-state 'User lock',这会修复它吗?

代码语言:javascript
复制
sudo /usr/bin/pt-kill --ignore-state 'User lock' --rds --match-command Query --victims all --match-user phppoint --daemonize --busy-time 15 --kill --print h=HOST,u=master,p=PASSWORD,P=3306

看起来,如果我不指定--ignore-state,那么默认设置是锁定的。这个还能用吗?

来自手册:

默认情况下,如果线程在等待另一个线程时被锁定,则它们将不会被杀死。

杀死锁定查询的缺点是什么?

EN

回答 1

Server Fault用户

发布于 2019-09-03 10:39:27

代码语言:javascript
复制
User lock

The thread is going to request or is waiting for an advisory lock requested with a GET_LOCK() call. For SHOW PROFILE, this state means the thread is requesting the lock (not waiting for it). 

所以我想您的查询不属于这个类别。请为线程状态找到适当的状态,并应用相同的https://dev.mysql.com/doc/refman/8.0/en/general-thread-states.html

如果您杀死锁定的查询,我看到的主要缺点是依赖的应用程序/后端可能会改变行为。在终止之前,请检查SHOW FULL PROCESSLISTEXPLAIN查询,这样您就可以知道其影响(Who/When/D3)。

Edit1:因此,首先检查什么类型的线程SELECT GET_LOCK(300),并相应地更改命令,如果您选择正确的状态,确保它将工作,直到它遇到一些错误。

希望这能帮上忙。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/981053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档