【发布时间】:2020-07-16 17:58:19
【问题描述】:
这是我的.cnf
symbolic-links=0
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
log-error = /var/log/mysql/error.log
log-warnings = 2
symbolic-links=0
lc-messages-dir = /usr/share/mysql
skip-external-locking
key_buffer_size = 2G
thread_stack = 192K
thread_cache_size = 350
myisam-recover = BACKUP
max_connections = 1500
query_cache_limit = 100M
query_cache_size = 512M
general_log = 1
long_query_time = 10
bind-address = 0.0.0.0
old_passwords=1
skip-secure-auth
innodb_buffer_pool_size = 30G
innodb_stats_on_metadata=0
table_open_cache = 4096
skip-external-locking
skip-name-resolve
ft_min_word_len = 2
innodb_buffer_pool_instances = 25
innodb_file_per_table=0
innodb_checksum_algorithm=INNODB
binlog_checksum=NONE
24 Core + 60GB of RAM + RAID controller + 4 TB dataset in MySQL-- mostly MySQL with some INNODB
和 MySQL 服务器 开始消耗交换空间,即使有大约 40GB 的可用 RAM。这是一个生产系统,在工作时间内平均有 1000 个连接
这是一个 Debian-9.12 Stretch Dell-R320 系统,仅运行 MySQL 数据库 服务器。
top/htop 都显示服务器处于痛苦状态,因为 swap ( 4GB ) 已被完全使用,并且没有进一步的操作更顺畅。
我必须每周重新启动服务器以清除交换等。
我想增加 RAM 使用率,但它依赖于 SWAP
vm.swappiness=0
【问题讨论】:
-
主要是 MyISAM,包括 INNODB
-
innodb_file_per_table=0 是个坏主意。所以所有数据都存放在一个文件中。只有重新导入每个表才能更改它