gavinlee 发表于 2022-9-21 13:32:30

mysql已经占用swap了。怎么安全释放swap?

如题,mysql已经占用swap了。怎么安全释放swap?

yejr 发表于 2022-9-21 13:39:40

麻烦先确认几个问题:
1. 物理内存多大。
2. mysqld进程占用多少内存。
3. 怎么确认mysqld进程用到了swap的。

gavinlee 发表于 2022-9-21 13:51:51

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

yejr 发表于 2022-9-21 14:01:10

gavinlee 发表于 2022-9-21 13:51
先说下现状,swap情况已经缓解了。怀疑有内存泄漏情况。
主要做下下面操作。
sync && swapoff -a


可以把free的结果贴出来看看

gavinlee 发表于 2022-9-21 14:05:32

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

yejr 发表于 2022-9-21 15:05:06

gavinlee 发表于 2022-9-21 14:05
total      used      free      sharedbuff/cache   available
Mem:            12 ...

看起来是“曾经”用到了swap,不过也并没有把全部swap用尽,物理内存也有剩余。
另外,从这个结果看,似乎确实存在内存泄露,可以尝试升级版本再看看。

在确保物理内存还有剩余的情况下,确认innodb buffer pool也还有free pages,这时候就可以在负载低谷时期执行 swapoff -a ,释放swap。

yejr 发表于 2022-9-21 15:25:19

对了,可以看下numa关了没。
不想关numa的话,可以在mysqld启动前,设置下numa策略,具体可自行搜索参考。
页: [1]
查看完整版本: mysql已经占用swap了。怎么安全释放swap?