Linux系統中內存問題排查思路與解決方法


內存是為提高效率而生,實際分析問題的時候,內存出現問題可能不只是影響性能,而是影響服務或者引起其他問題。

一、宿主機層面:

查看內存使用

[root@sh-dev-backup-4-2 ~]# free -h
\              total        used        free      shared  buff/cache   available
Mem:            62G        2.4G        354M        208M         59G         59G
Swap:          8.0G          0B        8.0G

詳解:

1、total:總的物理內存

2、used:系統使用的內存,包括buff+cache。並非系統真正使用的內存。系統真正使用的內存=used-buff/cache

3、free:空閑的內存,系統未使用的內存,並不是系統啟動應用程序可以真正使用的內存。

4、shared:共享內存

5、buff/cache:磁盤緩存的大小

6、available:在舊版free中,沒有這個選項。這個選項指的是,系統啟動程序時可以利用的內存,當這個選項很小或者不夠啟動程序所需的內存,會提示系統內存不足,無法啟動,此時就需要處理問題,是物理內存真的不足,還是清理系統緩存。

Cached主要負責緩存文件使用, 日志文件過大,索引太多(redis,es,log處理等)造成cached區內存增大把內存占用完 ,Linux服務器會自動釋放內存,保障系統運行,但只會釋放夠用的內存,而不會去釋放更多的內存。

查看當前節點占用內存高的前3個進程:

ps aux |awk '{if($4>0.1){{printf "PID: "$2" Memory: "$3"% --> "}for(i=11;i<=NF;i++)if(i==NF)printf $i"\n";else printf $i}}' |sort -k4 -nr |head -3


免責聲明!

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



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