避免使用swap的方法,及解决方法

1、  swappiness=0

这是一个倾向性的值,并不能完全避免swap的使用。该值的范围是0~100,默认值是60,当swappiness=0时,会最大可能性尽量避免使用swap

 

2、  innodb_flush_method设为O_DIRECT

innodb_flush_method的选项有:fdatasyncO_DSYNCO_DIRECT

 

/* We disable OS caching (O_DIRECT) only ondata files */
if (type != OS_LOG_FILE &&
  srv_unix_file_flush_method == SRV_UNIX_O_DIRECT)
{
    os_file_set_nocache(file, name, mode_str);
}

说明了除日志文件外,buffer  pool都会绕过cache,直接对应磁盘。但是日志文件还是会写入cache中。也有可能会使用swap,但是由于mysqllog是覆盖循环写入的,因此影响并不会很大。

 

3、  memlock强制使用物理内存

memlock将不会使用swap,但是必须以root用户启动mysql,局限性较大。

 

解决方法:

l  重启swap

1、  free 查看是否有内存足以存放swap中的数据

total       used       free    shared    buffers     cached

Mem:         64410      64117        292          0        127       9846

-/+buffers/cache:      54143      10267

Swap:        12287      3346       8941

 

注:Mem中的free并没有实际意义,它用于表示未被分配为buffer/cache的内存大小,而这里我们需要关注的是buffer/cachefree的大小,该大小大于swapused的大小,方可重启swap,不然mysql进程可能会被强制关闭。

 

2、  swapoff -a && swapon -a&

关闭,再打开swap

 

 

以上可能有所疏漏,但是为自己所理解,并会不断改进,欢迎多多指教。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值