[英]How to clear cache memory on linux machine for a user?
我在 Linux 機器上運行 c++ 工具。 該工具因 memory 問題而崩潰。 我已經檢查了我機器的 RAM 詳細信息。
total used free shared buffers cached
Mem: 15798 15747 50 0 15 12758
-/+ buffers/cache: 2972 12825
Swap: 8001 345 7655
幾乎沒有空間來運行我的應用程序。 我怎樣才能安全地清除選定的緩存 memory 以便該工具執行。(為此我如何列出緩存 memory 的詳細信息)我需要至少 3GB 的 memory 來運行我的應用程序。
我沒有嘗試清除緩存,因為它可能會殺死當前的應用程序。
注意:該工具至少需要 40 小時才能達到 memory 閾值限制。 紅帽 Linux
請幫忙。
我在我的linux ubuntu 19.04上嘗試這個,它成功清除了緩存
# echo 1 > /proc/sys/vm/drop_caches
要么
# echo 2 > /proc/sys/vm/drop_caches
# echo 3 > /proc/sys/vm/drop_caches
注意 :
# echo 3 > /proc/sys/vm/drop_caches
命令用於從pagecache,dentries和inode清除內存。
請創建一個文件並將以下內容復制到 /bin/mfree 文件中。 通過運行chmod +x /bin/mfree
給它執行權限。 現在您可以運行 mfree 命令來清除緩存 memory 以及之后/之前的報告。
注意:您可以選擇任何文件名。
#!/bin/bash
#purpose: purging cache memory
#author: bablish jaiswal
free -wh > ~/old #moving file to store last memory report before purging
purging () {
sudo sync; sudo echo 1 > /proc/sys/vm/drop_caches #droping chache meory
sudo sync; sudo echo 1 > /proc/sys/vm/drop_caches #droping chache meory
sudo sync; sudo echo 1 > /proc/sys/vm/drop_caches #droping chache meory
sudo sync; sudo echo 2 > /proc/sys/vm/drop_caches #droping chache meory
sudo sync; sudo echo 2 > /proc/sys/vm/drop_caches #droping chache meory
sudo sync; sudo echo 2 > /proc/sys/vm/drop_caches #droping chache meory
sudo sync; sudo echo 3 > /proc/sys/vm/drop_caches #droping chache meory
sudo sync; sudo echo 3 > /proc/sys/vm/drop_caches #droping chache meory
sudo sync; sudo echo 3 > /proc/sys/vm/drop_caches #droping chache meory
}
report(){
echo -e "\n\n\n\nServer $(curl -s -4 ident.me;echo)'s cache Purging report:-\n-----Before Purging----\n$(cat ~/old)\n\n-----After Purging-----\n$(free -wh)\nTimeStamp:- $(TZ='Asia/Kolkata' date)\n\n"
}
purging > /dev/null 2>&1 && report || echo -e "Kindly run with sudo rights\nExample:- sudo mfree" #guide to run
mfree 命令的示例 output 如下所示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.