手工釋放服務器的swap分區緩存


時間     恢復時間 狀態 信息 主機 問題 • 嚴重性 持續時間 確認 動作
2019-03-21 20:29:30     09:51:30     -ai-代理 Lack of free swap space on ai-代理-73

監控顯示swap分區溢出,需要手動清理釋放swap分區占用的內存。

/proc/sys/vm/drop_caches 該配置文件記錄釋放緩存文件的記錄

0-不釋放

1-不釋放頁緩存

2-釋放dentries和inodes

3-釋放所有緩存

首先用sync指令,將所有未寫的系統緩沖區寫到磁盤中,包含已修改的inode,已延遲的塊I/O和讀寫映射文件,否則在釋放緩存的過程中,可能會丟失未保存的文件

接下來設置參數: echo 3 > /proc/sys/vm/drop_caches

cat /proc/sys/vm/drop_caches

若遇到 無法分配內存的情況:

[root@localhost /]# sudo swapoff -a
swapoff: /dev/dm-1: swapoff failed: Cannot allocate memory

查看哪個程序占用內存比較大的,將該程序重啟即恢復

通過查看知曉php-fpm 程序占用內存較大,將其重啟后內存占用情況即恢復。

 

 

swapon -s 查看swap分區的掛載點

然后swapoff /dev/dm-1 停掉swap分區,然后再進行打開

swapon -a

我們的swap分區內存已經成功釋放到了實際內存當中。

如果出現無法釋放掉swap占用的內存的情況下 可以通過如下方法解決

[root@localhost felix]# swapoff /dev/dm-1
swapoff: /dev/dm-1: swapoff failed: Cannot allocate memory

先用free -mh 查看內存占用情況

netstat -ntlup  查看哪些程序在運行

top命令查看內存占用較高的程序。

以我的例子來分析,得出,nginx和php程序占用的內存較多,

可以重啟下相關程序,釋放下緩存

service php-fpm restart

/usr/local/nginx/sbin/nginx -s reload

然后發現內存釋放掉了,

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM