當前位置 主頁 > 服務器問題 > Linux/apache問題 > 最大化 縮小

    Linux如何實現自動化的內存釋放

    欄目:Linux/apache問題 時間:2019-06-28 16:02

      Linux在使用中內存會隨著時間慢慢的變小,已經是經常能見到的事了,這個時候就需要我們去人工干預,來進行內存的釋放。本文將使用Linux的Cron定時任務結合Shell腳本來實現自動化的內存釋放。
      基本流程:
      1、編寫Shell腳本,檢測當前服務器的內存使用率,如果達到了我們預設的值則強制釋放內存。
      2、將編寫好的Shel腳本,添加到Cron定時任務列表中,設置運行周期。
      釋放緩存的Shell腳本:
      如果在終端中我們通常是使用下面的命令來釋放內存:
      sync命令用于強制被改變的內容立刻寫入磁盤,更新超塊信息,echo 3 >> /proc/sys/vm/drop_caches 命令是強制釋放緩存的命令,下面給出shell腳本freeMemory.sh
      腳本中獲取并計算了當前內存的使用率,在執行腳本的時候需要加一個參數,也就是我們設置的最大內存使用率,當超過這個值時便會執行釋放內存的命令。ok我們的shell腳本保存在了/root/freeMemory.sh.添加定時任務。在定時任務這我們用到了cron這個定時工具,我們這里就不詳細解釋了,下面只說用法,后面我會寫一篇專門的文章來介紹該定時工具。在終端中執行下面的命令,來查看當前的定時任務:
      看上面的格式,一共是6列,前五列是時間周期,第6列是我們要執行的命令。前五列的解釋如下:
      根據上面時間的格式規則我們可以設置我們自己的定時周期,這里我設置了每天的23點執行一個腳本,步驟如下:
      1、執行命令crontab -e打開編輯定時配置文件;
      2、在文件的最后面添加下面的命令:
      上面我們設置了每天的23點執行命令我們的腳本,參數設置70,就是當檢測到內存使用率大于70的時候回執行釋放緩存命令,后面的>>是重定向命令嗎,會將腳本的執行結果寫進文件freeMemoryLog.txt中,便于我們查看。
777亚洲人成视频免费视频