CPU 负载非常高 VPS 上的 RAM 使用率低到中等 (mysql CPU 超过 100%)

CPU 负载非常高 VPS 上的 RAM 使用率低到中等 (mysql CPU 超过 100%)

我在 VPS Virtuozzo 服务器上,配置如下:
8GB RAM
6 CPU
SSD 硬盘
Debian 8.8
PHP 5.6.30
MySQL 5.5.55

只有一个网站提供服务。
这是一个启用了 SSL 的 wordpress 网站,包含大约 22000 篇文章。该网站
流量中等,每天大约有 8000 名用户和 18000 个页面浏览量。
由于网站的性质,我们收到了很多恶意的机器人请求和黑客攻击尝试。fail2ban 配置良好,报告良好。

top -i 有时报告 mysql CPU% 为 200。

Virtuozzo 报告
CPU 使用率 99.9%
CPU 平均负载 7.13、7.42、6.97
内存 42%

结果,Apache 在某个时候停止并重新启动。

我的.cnf:

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

#bind-address       = 127.0.0.1

key_buffer          = 16M
max_allowed_packet  = 16M
thread_stack        = 192K
thread_cache_size   = 8

myisam-recover         = BACKUP
max_connections        = 100
#table_cache           = 64
#thread_concurrency    = 10

query_cache_limit   = 1M
query_cache_size    = 128M
tmp_table_size      = 256M
max_heap_table_size = 256M
table_open_cache    = 3200

#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1

log_error = /var/log/mysql/error.log

slow_query_log_file = /var/log/mysql/mysql-slow.log
slow_query_log      = 1
#long_query_time = 2
#log_queries_not_using_indexes

#server-id          = 1
#log_bin            = /var/log/mysql/mysql-bin.log
expire_logs_days    = 10
max_binlog_size     = 100M
#binlog_do_db       = include_database_name
#binlog_ignore_db   = include_database_name

innodb_buffer_pool_size = 5G

[mysqldump]
quick
quote-names
max_allowed_packet  = 16M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
key_buffer      = 16M

!includedir /etc/mysql/conf.d/

慢查询日志未报告任何慢查询。

(my.cnf 文件由我聘请的服务器管理专家配置,因为我不是服务器管理专家)

MySQL 配置是否错误?

更新:我尝试禁用所有插件并应用基本主题。没有特定的插件导致这种情况。不用说,CPU 使用率较低,但 RAM 负载也较低。顺便说一句,如果没有插件并且我们应用了基本主题,则用户的参与度不会很高。为了正确调试,我们无法使用基本设置达到每分钟 200 个用户...

答案1

正如你所说,你正在使用 word-press,请检查是否有坏插件,因为有些插件可能会受到损害,请逐个禁用插件进行测试

我可以看到innodb_buffer_pool_size = 5G您的内存使用量仍然是 42%,总内存使用量为 8GB,应该大于,您在更改 my.cnf 设置后是否重新启动了 mysql 服务,因为更改仅在重新启动后才会生效,主要针对 innodb_buffer

使用 top 命令检查等待资源的时间如果存在某个值,则意味着硬盘或内存等资源存在问题,可能是您的固态硬盘或内存存在读写速度慢的问题

另外你可以使用Percona 配置向导根据您的服务器配置来配置您的 my.cnf

相关内容