【问题标题】:mysql using swap space even lot of RAM is freemysql 使用交换空间,甚至很多 RAM 都是免费的
【发布时间】: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 是个坏主意。所以所有数据都存放在一个文件中。只有重新导入每个表才能更改它

标签: mysql debian swap ram


【解决方案1】:

您还可以在 vm.swapiness 和 vm.vfs_cache_pressure 之间找到平衡点。

也许操作系统缓存了很多,这可能是交换内存回收的原因。

如果有帮助,请尝试降低 vm.vfs_cache_pressure。

【讨论】:

    猜你喜欢
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 2021-01-25
    相关资源
    最近更新 更多