Linux 內存使用率

free -m 以M爲單位查看內存

在這裏插入圖片描述
Linux/Unix系統是非常穩健的,雖然內存佔用顯示90%以上,但依然可保證365天以上無須重啓。對於Linux系統,評估其壓力的主要指標是最近5分鐘的負載指數:比如用w命令或者top去看,可以看到“0.70 0.35 0.01”這樣的數字,分別表示5分鐘內的、10分鐘內的、15分鐘內排隊的進程數,只要第一個數字即5分鐘內的負載不大於5,系統就是健康的,不用做任何維護;如果這個數字大於了5,那麼通常系統速度就會變慢,一般有如下幾種可能:

1) 有程序佔用大量CPU,使用top命令來檢查(看看是否有java程序鎖死之類的故障)

2) 有程序佔用大量內存,使得內存真正不夠用了(這個纔是真正需要加內存的時候),比如由於MySQL在較大負載下運行容量爲GB級別的數據庫導致內存不夠用,需要給服務器插入更多物理內存

3) 磁盤系統讀寫故障,IO吞吐錯誤造成CPU負載上升,需要光盤引導進入單用戶模式掃描修復磁盤,修不好就只能更換新硬盤了

因此,對於Linux/Unix系統內存佔用的百分比,無須過於關心,一般檢查系統負載參數即可

首先cat /proc/sys/vm/drop_caches的值,默認爲0
手動執行sync命令(描述:sync 命令運行 sync 子例程。如果必須停止系統,則運行 sync 命令以確保文件系統的完整性。sync 命令將所有未寫的系統緩衝區寫到磁盤中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射文件)
然後手動釋放緩存echo 3 > /proc/sys/vm/drop_caches
生產環境不推薦直接釋放緩存

MEM應用使用率計算
mem可用=memfree+buffers+cached

memusd utl =(memtotal - memfree-buffers-cached)/memtotal
或者
100 - (memfree+buffers+cached)/memtotal =memuse utl

計算:寫個內存使用率的腳本結果輸出到文件
vim memuseutl.sh
#!/bin/bash
memfree=free -m | grep -w Mem | awk '{print $4}'
membuff=free -m | grep -w Mem | awk '{print $6}'
#可用的等於memfree+buffers+cached
#memcache=free -m | grep -w Mem | awk '{print $7}'
memtotal=free -m | grep -w Mem | awk '{print $2}'
memmsg=echo "scale=2;($memtotal-$memfree-$membuff)/$memtotal*100" | bc
memuse=echo $memmsg | awk -F "." '{print $1}'
echo -e 內存使用率: $memuse% >> /mnt/script/memutl

查看執行結果
在這裏插入圖片描述

或者
free -m | grep -w Mem | awk ‘{print ($2-$4-$6)/$2*100}’ |awk -F “.” '{print $1}
其中$2是total $4是free $6(cache+free)
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章