我有一个云服务器,其配置如下:
CPU:8 vCore (4 Core, 4 Processor)
RAM:16 GB
SSD:240 GB
该服务器采用 CentOS7-64 位,以 MariaDB 作为数据库运行。(日期错误已修复)
该服务器的数据库非常密集,并且几乎不断更新。
我看到服务器的利用率超过 95%,但我相信默认配置比资源耗尽更应该受到指责。
我希望将更多的工作转移到 MySQL/MariaDB 仅使用了 11% 的 RAM 上。
41724 mysql 20 0 10.163g 1.765g 9704 S 298.0 11.3 19:10.43 mysqld
使用此 Serverfault 问题,我已尽可能地调整了我的数据库配置文件。
这确实有所改善,但是除了升级 CPU 之外,还有什么其他方法可以提高性能吗?
[mysqld]
bind-address = ::
skip_name_resolve
local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
key_buffer_size=4G
max_allowed_packet=128M
query_cache_type = 1
query_cache_limit = 100M
query_cache_min_res_unit = 2k
query_cache_size = 784M
tmp_table_size= 2048M
max_heap_table_size= 2048M
skip-name-resolve
innodb_buffer_pool_size= 7G
innodb_file_per_table=1
答案1
您还可以调整以下参数:
thread_concurrency = 65
read_buffer_size = 524288
thread_cache_size = 16
join_buffer_size = 12M
tmpdir = /tmp(it should be on tmpfs)
innodb_log_buffer_size = 25M
innodb_log_file_size = 512M