暂无图片
内存回收方式
我来答
分享
暂无图片 匿名用户
内存回收方式

内存回收方式

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
S
seven

kswapd
kswapd是一个内核进程,定期运行,在watermark low阈值以下时会被唤醒,在后台进行内存回收,回收到high阈值以上时会休眠。由于是异步回收,不会阻塞其他进程,但由于涉及磁盘读写,对于时间敏感的SQL,可能会感受到性能下降。

direct memory reclaim
由于kswapd是定时运行,如果有进程一次申请过多内存,可用内存可能会降到min阈值以下,此时kswapd会触发直接内存回收。这种内存回收方式是同步的,会阻塞其他进程,造成长时间的延迟,系统IO、CPU利用率会升高,SQL执行明显变慢,因此要尽量避免直接内存回收。

OOM
如果直接内存回收后,系统的可用内存还不足以进行内存分配,则会进一步触发OOM机制。

OOM机制会根据算法选择并kill掉一个占用物理内存较高的进程,以释放内存资源,目标是回收到high阈值以上。如果达不到,会继续杀死占用物理内存较高的进程,直到达到high阈值。由于DB通常是占用内存最多的,通常都是最先被OOM杀掉的,造成严重事故。 

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交