mysql进程不断超载

时间:2013-10-02 06:07:25

标签: mysql overloading cpu

我正确地问了一个没有答案的问题,但我没有资源,必须尝试任何可能有办法解决这个问题的方法。首先。我不是程序员,我只是一个在线商店工作人员,分配处理服务器和类似的东西。我对cpanel有基本的知识,但没有编程方面的经验。

我们最近看到我们的服务器速度非常慢,我进去看看cpu使用情况时不时地保持200%高达2000%(是的,2000%),然后我查看了流程管理器和看到一条与我接壤的特定线:

pid991 - 在大多数情况下,我使用这个用户至少100%的cpu,命令是

/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/www.(domain).com.err --pid-file=/var/lib/mysql/www.(domain).com.pid

如果我进入追踪,我会一次又一次地看到这段代码重复

>fcntl(12, F_GETFL)                      = 0x2 (flags O_RDWR)
>fcntl(12, F_SETFL, O_RDWR|O_NONBLOCK)   = 0
>accept(12, {sa_family=AF_FILE, NULL}, [2]) = 95
>fcntl(12, F_SETFL, O_RDWR)              = 0
>getsockname(95, {sa_family=AF_FILE, path="/var/lib/mysql/mysql.sock"}, [28]) = 0
>gettimeofday({1380692546, 638961}, NULL) = 0
>fcntl(95, F_SETFL, O_RDONLY)            = 0
>fcntl(95, F_GETFL)                      = 0x2 (flags O_RDWR)
>setsockopt(95, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
>setsockopt(95, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
>fcntl(95, F_SETFL, O_RDWR|O_NONBLOCK)   = 0
>setsockopt(95, SOL_IP, IP_TOS, [8], 4)  = -1 EOPNOTSUPP (Operation not supported)
>gettimeofday({1380692546, 641571}, NULL) = 0
>clone(child_stack=0x7ff0ead58ff0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7ff0ead599d0, tls=0x7ff0ead59700, child_tidptr=0x7ff0ead599d0) = 6590
>poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=12, revents=POLLIN}])

只有数字字符串的差异,可能是一些ID。我实际上有一个程序员在这里,但他是一个自由职业者并告诉我们他不知道发生了什么,所以...

  1. 我们只能通过这些重复的ode来知道这是做什么的吗?
  2. 流程管理器中有一个kill按钮,简单地终止进程是否安全?
  3. 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

跟踪消息无法确定性能问题的原因。见https://serverfault.com/questions/374120/setsockopt-eopnotsupp-operation-not-supported

简单地杀死这个过程并不安全;那是你的MySQL数据库,所以我希望你杀了这个过程,你的网站就会崩溃。

很可能您在该服务器上有长时间运行的查询或大量的数据库活动,因此您需要在该方向而不是在跟踪中进行调查。从MySQL控制台中的SHOW PROCESSLIST开始,查看当前正在运行的内容以及持续时间,这应该指向您要查看的语句和连接的方向。