MySQL进程占用150-400%的CPU

时间:2018-12-06 03:48:28

标签: php mysql server process centos

我的软件对服务器进行很多MySQL查询,过去我从来没有遇到过任何问题,但是最近没有任何负载,没有网页,没有SQL运行,什么也没有。我设法在服务器上使用WHM并终止了该过程,只是看到它飙升至300%。我无能为力使它崩溃。我需要共享哪些信息以获取帮助?我不是系统管理员,也没有一个或一个资源。我通常不会寻求帮助,只是优化我的所有查询来进行类似的事情,因为在过去的三个月中这不是问题,但突然间我变得无处不在,至少我没有注意到。此时,我的程序正在说我的一个数据库表已崩溃,需要修复...我该怎么办?预先感谢您的帮助...

我已经考虑过优化,但是我希望有一个快速的解决方案,因为有客户在等待我,所以我可以花几天时间来优化我的SQL,就像我说的那样,以前没有任何问题。我对此感到困惑。

我也不确定这是否有帮助,但是在WHM中跟踪该过程会重复打印此内容,而无其他结果:

fcntl(16, F_GETFL)                      = 0x2 (flags O_RDWR)
fcntl(16, F_SETFL, O_RDWR|O_NONBLOCK)   = 0
accept(16, {sa_family=AF_LOCAL, NULL}, [2]) = 35
fcntl(16, F_SETFL, O_RDWR)              = 0
setsockopt(35, SOL_IP, IP_TOS, [8], 4)  = -1 EOPNOTSUPP (Operation not supported)
futex(0x13298a4, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x13298a0, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x1327240, FUTEX_WAKE_PRIVATE, 1) = 1
poll([{fd=14, events=POLLIN}, {fd=16, events=POLLIN}], 2, -1) = 1 ([{fd=16, revents=POLLIN}])

/etc/my.conf

innodb_file_per_table=1
default-storage-engine=MyISAM
performance-schema=0
max_allowed_packet=268435456
open_files_limit=10000

这是我可以使用的所有my.conf文件。错误日志在/var/log中不存在,因此我在这方面没有任何帮助...

SQL版本: [Server] # mysql -V mysql Ver 14.14 Distrib 5.6.41, for Linux (x86_64) using EditLine wrapper

我还有一个其他问题或附加内容。我不知道这是否有很大的区别,但是,例如,我的代码在mysql进程上使用30%CPU运行,实际上我可以关闭代码,并且mysql进程的CPU使用率不会改变。这是什么意思?

编辑:(这些都将在2018年12月9日起一周内到期)

我列出的my.cnf文件内容就在那里。没有其他的。当我再次全速运行该软件以查看结果时,将得到top命令和iostat -xm 5 3

1 个答案:

答案 0 :(得分:0)

每秒速率=基于您的Linux ulimit -a报告要考虑的RPS建议。

ulimit -n 16384       to raise Open Files limit from 1024 to support your activities.

要使其在Linux关机/重新启动过程中持续存在,请查看此URL。

https://glassonionblog.wordpress.com/2013/01/27/increase-ulimit-and-file-descriptors-limit/

由于Linux版本不同,您的详细信息可能会略有不同。

您的my.cnf [mysqld]部分要考虑的建议

innodb_lru_scan_depth=100  # from 1024 to reduce CPU busy every second.  93% savings for this one function.
thread_cache_size=32  # from 9 for thread breathing room and growth.
innodb_io_capacity=1800  # from 200 to take advantage of your HDD IOPS capacity
key_cache_age_threshold=7200  # from 300 seconds to reduce key_reads RPS of 16 
query_cache_size=0  # from 1M to conserve RAM - QC is OFF and not used
query_cache_limit=0  # from 1M to conserve RAM - QC is OFF and not used
key_buffer_size=128M  # from 8M which had NO free space at the end of your work day

有关其他建议,请参阅我的个人资料,网络个人资料以获取联系信息。