Linux系統內存還有剩余就開始使用swap交換區了


程序運行緩慢,查看內存剩余的時候發現Linux系統內存還有60G剩余就開始使用swap交換區了。發現vm/swappiness設置是默認值60,也就是內存使用超過40%(100-60)的時候就會使用交換區了。

系統把物理內存中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序,這些被釋放的空間被臨時保存到Swap分區中,等到那些程序要運行時,再從Swap分區中恢復保存的數據到內存中。

這個swap交換區是從硬盤中預先划分一定的空間,所以使用swap交換區就需要在硬盤和內存間讀寫,增加IO,影響系統性能。

 

查看vm.swappiness

    cat /proc/sys/vm/swappiness

     設置vm.swappiness=0 后並不代表禁用swap分區,只是告訴內核,能少用到swap分區就盡量少用到,設置vm.swappiness=100的話,則表示盡量使用swap分區,默認的值是60

修改vm.swappiness
    echo 0 > /proc/sys/vm/swappiness
永久設置
    /etc/sysctl.conf增加一行 vm.swappiness = 0
 

可以使用vmstat命令查看swap交換區使用情況

si

  • Amount of memory swapped in from disk (/s).
  • 從磁盤交換到swap虛擬內存的交換頁數量,單位:KB/秒。如果這個值大於0,表示物理內存不夠用或者內存泄露了

 

參考:

https://v2ex.com/t/615860

 


免責聲明!

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



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