mysql已经占用swap了。怎么安全释放swap?
如题,mysql已经占用swap了。怎么安全释放swap?麻烦先确认几个问题:
1. 物理内存多大。
2. mysqld进程占用多少内存。
3. 怎么确认mysqld进程用到了swap的。 yejr 发表于 2022-9-21 13:39
麻烦先确认几个问题:
1. 物理内存多大。
2. mysqld进程占用多少内存。
先说下现状,swap情况已经缓解了。怀疑有内存泄漏情况。
主要做下下面操作。
sync && swapoff -a
swapon -a
1. 内存128G swap 30G
2.
通过free 查看
mysql 当时占用70G的样子。而swap几乎使用完
3. 使用iotop查看swapin 有使用swap gavinlee 发表于 2022-9-21 13:51
先说下现状,swap情况已经缓解了。怀疑有内存泄漏情况。
主要做下下面操作。
sync && swapoff -a
可以把free的结果贴出来看看 yejr 发表于 2022-9-21 14:01
可以把free的结果贴出来看看
total used free sharedbuff/cache available
Mem: 125 63 13 2 47 58
Swap: 30 6 24
Total: 155 70 37
gavinlee 发表于 2022-9-21 14:05
total used free sharedbuff/cache available
Mem: 12 ...
看起来是“曾经”用到了swap,不过也并没有把全部swap用尽,物理内存也有剩余。
另外,从这个结果看,似乎确实存在内存泄露,可以尝试升级版本再看看。
在确保物理内存还有剩余的情况下,确认innodb buffer pool也还有free pages,这时候就可以在负载低谷时期执行 swapoff -a ,释放swap。 对了,可以看下numa关了没。
不想关numa的话,可以在mysqld启动前,设置下numa策略,具体可自行搜索参考。
页:
[1]