1 先寫一個腳本存為一個文件,比如 clearmem.sh
#!/bin/bash
sync
echo 3 > /proc/sys/vm/drop_caches
2 然後給這個腳本加一個可執行許可權
chmod +x chearmem.sh
3 先試試運行一下看看內存釋放沒有,free -m
sh clearmem.sh
free -m
4 最後創建一個計劃任務
crontab -e
加如下內容,比如每天1點清理一次
00 1 * * * sh /xxx/路徑/clearmem.sh
② 如何在linux命令中刪除緩存
#清理Linux系統緩存
1
[root@oracle ~]# echo 1 > /proc/sys/vm/drop_caches
註:1>. /proc是一個虛擬文件系統,可以通過對它的讀寫操作作為與kernel實體間進行通信的一種手段。也就是說可以通過修改/proc中的文件,來對當前kernel的行為做出調整。也就是說我們可以通過調整/proc/sys/vm/drop_caches來釋放內存。
0 – 不釋放
1 – 釋放頁緩存
2 – 釋放文件節點緩存和目錄項緩存
3 – 釋放所有緩存
[root@oracle ~]# sysctl -p
#查看剩餘內存
[root@oracle ~]# free -m
total used free shared buffers cached
Mem: 3383 1952 1431 0 1 1136
-/+ buffers/cache: 814 2568
Swap: 1983 195 1788
③ 如何清除linux的內存緩存,緩沖和交換空間
linux和其他操作系統一樣,已經實現了很有效的內存管理機制,但是任何一個進程損壞了系統的內存,那麼你就必須清理它,linux提供了一個比較好的方式刷新\清除RAM緩存。
注意:並不是什麼時候都需要清除RAM緩存的,大家都知道,linux查找數據都是優先從RAM緩存中查找的,一旦清空緩存,所有的數據都需要從磁碟讀取,所以只在需要的時候清空緩存,才是正確的選擇。
如何清除linux緩存?
1.只清除PageCache:
# sync; echo 1 > /proc/sys/vm/drop_caches
2.清除dentries and inodes
# sync; echo 2 > /proc/sys/vm/drop_caches
3.同時清除PageCache和dentries and inodes
# sync; echo 3 > /proc/sys/vm/drop_caches
對上面的命令的解釋:
sync將會刷新系統的buffer 緩存。
根據官方內核文檔描述,對drop_caches寫入值將會在不殺死任何應用服務的情況下清空緩存。
在生產環境中建議使用echo 1,因為它會優先清空磁碟緩存。
效果展示:
使用shell腳本自動在晚上2點清除RAM緩存:
vim clearcache.sh
#!/bin/bash
echo "echo 1 > /proc/sys/vm/drop_caches"
# chmod 755 clearcache.sh
# crontab -e
0 3 * * * /path/to/clearcache.sh
如何清除交換空間?
簡單的清除可以使用如下的命令
1
# swapoff -a && swapon -a
結合上面的腳本:
vim clearcache.sh
#!/bin/bash
echo "echo 1 > /proc/sys/vm/drop_caches" && swapoff -a && swapon -a &&
printf '\n%s\n' 'Ram-cache and Swap Cleared'
希望我的回答能幫到您,滿意請採納,謝謝!
④ Linux串口怎麼清空
tcflush函數清除串口輸入緩存(終端驅動已接到,但用戶尚未讀取)或串口輸出緩存(用戶已經寫如緩存,但尚未發送)。
函數原型:
int tcflush(int filedes,int quene)
參數解釋
filedes: 描述符。
quene取值及含義:
*TCIFLUSH 清除輸入隊列
*TCOFLUSH 清除輸出隊列
*TCIOFLUSH 清除輸入、輸出隊列
舉例:tcflush(fd,TCIOFLUSH);
⑤ linux下如何清空串口的輸入輸出緩存
tcflush函數清除串口輸入緩存(終端驅動已接到,但用戶尚未讀取)或串口輸出緩存(用戶已經寫如緩存,但尚未發送)。
函數原型:
int tcflush(int filedes,int quene)
參數解釋
filedes: 描述符。
quene取值及含義:
*TCIFLUSH 清除輸入隊列
*TCOFLUSH 清除輸出隊列
*TCIOFLUSH 清除輸入、輸出隊列
舉例:tcflush(fd,TCIOFLUSH);
⑥ 如何手動釋放Linux內存的方法
1、首先打開Linux命令窗口,可使用快捷鍵Ctrl+Alt+T打開。
⑦ linux 清除緩存 釋放內存
這里的默認顯示單位是kb,我的伺服器是128G內存,所以數字顯得比較大。這個命令幾乎是每一個使用過Linux的人必會的命令,但越是這樣的命令,似乎真正明白的人越少(我是說比例越少)。一般情況下,對此命令輸出的理解可以分這幾個層次:
1.不了解。這樣的人的第一反應是:天啊,內存用了好多,70個多G,可是我幾乎沒有運行什麼大程序啊?為什麼會這樣?Linux好占內存!
2.自以為很了解。這樣的人一般評估過會說:嗯,根據我專業的眼光看的出來,內存才用了17G左右,還有很多剩餘內存可用。buffers/cache佔用的較多,說明系統中有進程曾經讀寫過文件,但是不要緊,這部分內存是當空閑來用的。
3.真的很了解。這種人的反應反而讓人感覺最不懂Linux,他們的反應是:free顯示的是這樣,好吧我知道了。神馬?你問我這些內存夠不夠,我當然不知道啦!我特么怎麼知道你程序怎麼寫的?
根據目前網路上技術文檔的內容,我相信絕大多數了解一點Linux的人應該處在第二種層次。大家普遍認為,buffers和cached所佔用的內存空間是可以在內存壓力較大的時候被釋放當做空閑空間用的。但真的是這樣么?在論證這個題目之前,我們先簡要介紹一下buffers和cached是什麼意思:
什麼是buffer/cache?
buffer和cache是兩個在計算機技術中被用濫的名詞,放在不通語境下會有不同的意義。在Linux的內存管理中,這里的buffer指Linux內存的:Buffer cache。這里的cache指Linux內存中的:Page cache。翻譯成中文可以叫做緩沖區緩存和頁面緩存。在歷史上,它們一個(buffer)被用來當成對io設備寫的緩存,而另一個(cache)被用來當作對io設備的讀緩存,這里的io設備,主要指的是塊設備文件和文件系統上的普通文件。但是現在,它們的意義已經不一樣了。在當前的內核中,page cache顧名思義就是針對內存頁的緩存,說白了就是,如果有內存是以page進行分配管理的,都可以使用page cache作為其緩存來管理使用。當然,不是所有的內存都是以頁(page)進行管理的,也有很多是針對塊(block)進行管理的,這部分內存使用如果要用到cache功能,則都集中到buffer cache中來使用。(從這個角度出發,是不是buffer cache改名叫做block cache更好?)然而,也不是所有塊(block)都有固定長度,系統上塊的長度主要是根據所使用的塊設備決定的,而頁長度在X86上無論是32位還是64位都是4k。
明白了這兩套緩存系統的區別,就可以理解它們究竟都可以用來做什麼了。
什麼是page cache?
Page cache主要用來作為文件系統上的文件數據的緩存來用,尤其是針對當進程對文件有read/write操作的時候。如果你仔細想想的話,作為可以映射文件到內存的系統調用:mmap是不是很自然的也應該用到page cache?在當前的系統實現里,page cache也被作為其它文件類型的緩存設備來用,所以事實上page cache也負責了大部分的塊設備文件的緩存工作。
什麼是buffer cache?
Buffer cache則主要是設計用來在系統對塊設備進行讀寫的時候,對塊進行數據緩存的系統來使用。這意味著某些對塊的操作會使用buffer cache進行緩存,比如我們在格式化文件系統的時候。一般情況下兩個緩存系統是一起配合使用的,比如當我們對一個文件進行寫操作的時候,page cache的內容會被改變,而buffer cache則可以用來將page標記為不同的緩沖區,並記錄是哪一個緩沖區被修改了。這樣,內核在後續執行臟數據的回寫(writeback)時,就不用將整個page寫回,而只需要寫回修改的部分即可。
如何回收cache?
Linux內核會在內存將要耗盡的時候,觸發內存回收的工作,以便釋放出內存給急需內存的進程使用。一般情況下,這個操作中主要的內存釋放都來自於對buffer/cache的釋放。尤其是被使用更多的cache空間。既然它主要用來做緩存,只是在內存夠用的時候加快進程對文件的讀寫速度,那麼在內存壓力較大的情況下,當然有必要清空釋放cache,作為free空間分給相關進程使用。所以一般情況下,我們認為buffer/cache空間可以被釋放,這個理解是正確的。
⑧ 在linux環境里,怎麼用命令刪除網卡緩存
如何清空linux的DNS查詢緩存一、Linux下清空DNS緩存Linux下DNS緩存實現通常有兩種方式:一種是用DNS緩存程序NSCD(nameservicecachedaemon)負責管理DNS緩存。一種實現DNS緩存則是用Bind來架設CachingNameServer來實現。如果是清除NSCD上的Cache,可重新啟動NSCD服務來達成清除DNSCache的效果。用這個命令:#servicenscdrestart或是#/etc/init.d/nscdrestart如果是清除BIND伺服器上的CACHE,用這個命令:#rndcflush如果你的DNS伺服器是用dnsmasq實現的,用下面這個命令:$sudo/etc/init.d/dnsmasqrestart註:DNSmasq是一個輕巧的,容易使用的DNS服務工具,它可以應用在內部網和Internet連接的時候的IP地址NAT轉換,也可以用做小型網路的DNS服務。二、其它操作系統下清空DNS緩存的方法1、MacOSX下如何清空DNS緩存:在MacOSX中,你可以用以下命令來清空DNS緩存內容:bash-2.05a$lookupd-flushcache
⑨ linux清理內存緩存命令
看緩存的命令
free -m
清理緩存的命令
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
echo 0 是不釋放緩存
echo 1 是釋放頁緩存 《Linux就該這么學》
ehco 2 是釋放dentries和inodes緩存
echo 3 是釋放 1 和 2 中說道的的所有緩存
⑩ linux用shell命令怎樣清理系統緩存
可以使用以下命令清理系統垃圾
sudo apt-get autoclean 清理舊版本的軟體緩存
sudo apt-get clean 清理所有軟體緩存
sudo apt-get autoremove 刪除系統不再使用的孤立軟體
執行
sudo nautilus /boot
刪除除了最新內核以外的其它文件,(比如2006-08-17 官方內核是 26,那就可以刪除所有 23,25結尾的舊內核文件)
整理grub啟動菜單
sudo gedit /boot/grub/menu.lst
刪除除最新內核以外的其它啟動項(如23,25等)
---------------------------------
Ubuntu Linux與Windows系統不同,Ubuntu Linux不會產生無用垃圾文件,但是在升級緩存中,Ubuntu Linux不會自動刪除這些文件,今天就來說說這些垃圾文件清理方法。
1,非常有用的清理命令:
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove
這三個命令主要清理升級緩存以及無用包的。
2,清理opera/ firefox的緩存文件:
ls ~/.opera/cache4
ls ~/.mozilla/firefox/*.default/Cache
3,清理Linux下孤立的包:
圖形界面下我們可以用:gtkorphan
sudo apt-get install gtkorphan -y
終端命令下我們可以用:deborphan
sudo apt-get install deborphan -y
4,卸載:tracker
這個東西一般我只要安裝Ubuntu就會第一刪掉tracker 他不僅會產生大量的cache文件而且還會影響開機速度。所以在新得利裡面刪掉就行。
5,刪除多餘的內核:一定不要刪錯哦,切記!!
打開終端敲命令:dpkg --get-selections|grep linux
有image的就是內核文件
刪除老的內核文件:
sudo apt-get remove 內核文件名 (例如:linux-image-2.6.27-2-generic)
內核刪除,釋放空間了,應該能釋放130-140M空間。
最後不要忘了看看當前內核:uname -a
附錄:
包管理的臨時文件目錄:
包在
/var/cache/apt/archives
沒有下載完的在
/var/cache/apt/archives/partial