我有一个拥有约130个客户端的Owncloud服务器。现在2个星期,CPU的使用率非常高(介于85 - 100%之间)
以下是VM的配置:
我尝试了几个方法来解决这个问题但没有一个工作:
这是mysql的配置
[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 = 400M
max_allowed_packet = 800M
thread_stack = 192K
thread_cache_size = 8
myisam-recover = BACKUP
query_cache_limit = 128M
query_cache_size = 64M
log_error = /var/log/mysql/error.log
expire_logs_days = 10
max_binlog_size = 100M
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[isamchk]
key_buffer = 16M
另外,在mysql错误日志中我可以看到数据库频繁关闭(每天约2次),但我不知道为什么。
有人可以帮我解决这个问题吗?
谢谢
对你的my.cnf [mysqld]的建议
thread_cache_size=64 # from 8 to support your workload
这是一个动态变量,可以从MySQL提示符设置root登录
SET GLOBAL thread_cache_size=64;
并将有效的新连接。请在下一次停止/启动MySQL之前更改my.cnf。
应该在配置中使用这三个更改来关闭查询缓存。
query_cache_type=OFF;
query_cache_size=0;
query_cache_limit=0;
节省CPU周期。通过使用适当的表索引使您的查询更有效。
它主要是猜测没有更多的调查,但这里有一些可能有帮助的指针:
参考文献:
祝你好运,如果你需要更多详细说明,请在评论或新问题中提问。