導航:首頁 > 操作系統 > linux清楚緩存

linux清楚緩存

發布時間:2022-11-28 10:39:00

1. linux下清理dns 緩存

首先我們要了解,dns查詢的基本邏輯和緩存的存在位置

如圖所示,基本邏輯為:
客戶端 - 本機器dns解析器(如host,dnsmasq)- 本地dns伺服器(比如家庭路由器)- 網路dns伺服器

為了加速查詢,在解析器和伺服器上都有緩存在,一般而言我們要清理的是本機器上的dns緩存

顯然,我們必須首先了解本地機器用的是什麼解析器,可以通過看哪個進程占據了53埠來查詢,因為53埠是dns伺服器埠。
可以通過以下指令:

分別會下列結果

針對不同的解析器
可以用不同的命令清理
針對system-resolved:

同時為了驗證dns緩存真的被清理了,可以用命令來查看緩存

針對dnsmasq:

參考:
https://devconnected.com/how-to-flush-dns-cache-on-linux/

2. 如何手動釋放Linux內存

Linux釋放內存的命令:x0dx0asyncx0dx0aecho 1 > /proc/sys/vm/drop_cachesx0dx0ax0dx0adrop_caches的值可以是0-3之間的數字,代表不同的含義:x0dx0a0:不釋放(系統默認值)x0dx0a1:釋放頁緩存x0dx0a2:釋放dentries和inodesx0dx0a3:釋放所有緩存x0dx0ax0dx0a釋放完內存後改回去讓系統重新自動分配內存。x0dx0aecho 0 >/proc/sys/vm/drop_cachesx0dx0ax0dx0afree -m #看內存是否已經釋放掉了。x0dx0ax0dx0a如果我們需要釋放所有緩存,就輸入下面的命令:x0dx0aecho 3 > /proc/sys/vm/drop_cachesx0dx0ax0dx0a######### Linux釋放內存的相關知識 ###############x0dx0ax0dx0a在Linux系統下,我們一般不需要去釋放內存,因為系統已經將內存管理的很好。但是凡事也有例外,有的時候內存會被緩存佔用掉,導致系統使用SWAP空 間影響性能,例如當你在linux下頻繁存取文件後,物理內存會很快被用光,當程序結束後,內存不會被正常釋放,而是一直作為caching。,此時就需 要執行釋放內存(清理緩存)的操作了。x0dx0ax0dx0aLinux系統的緩存機制是相當先進的,他會針對dentry(用於VFS,加速文件路徑名到inode的轉換)、Buffer Cache(針對磁碟塊的讀寫)和Page Cache(針對文件inode的讀寫)進行緩存操作。但是在進行了大量文件操作之後,緩存會把內存資源基本用光。但實際上我們文件操作已經完成,這部分 緩存已經用不到了。這個時候,我們難道只能眼睜睜的看著緩存把內存空間占據掉嗎?所以,我們還是有必要來手動進行Linux下釋放內存的操作,其實也就是 釋放緩存的操作了。/proc是一個虛擬文件系統,我們可以通過對它的讀寫操作做為與kernel實體間進行通信的一種手段.也就是說可以通過修改 /proc中的文件,來對當前kernel的行為做出調整.那麼我們可以通過調整/proc/sys/vm/drop_caches來釋放內存。要達到釋 放緩存的目的,我們首先需要了解下關鍵的配置文件/proc/sys/vm/drop_caches。這個文件中記錄了緩存釋放的參數,默認值為0,也就 是不釋放緩存。x0dx0ax0dx0a一般復制了文件後,可用內存會變少,都被cached佔用了,這是linux為了提高文件讀取效率的做法:為了提高磁碟存取效率, Linux做了一些精心的設計, 除了對dentry進行緩存(用於VFS,加速文件路徑名到inode的轉換), 還採取了兩種主要Cache方式:Buffer Cache和Page Cache。前者針對磁碟塊的讀寫,後者針對文件inode的讀寫。這些Cache有效縮短了 I/O系統調用(比如read,write,getdents)的時間。"x0dx0ax0dx0a釋放內存前先使用sync命令做同步,以確保文件系統的完整性,將所有未寫的系統緩沖區寫到磁碟中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射文件。否則在釋放緩存的過程中,可能會丟失未保存的文件。x0dx0ax0dx0a[[email protected] ~]# free -mx0dx0a total used free shared buffers cachedx0dx0aMem: 7979 7897 82 0 30 3918x0dx0a-/ buffers/cache: 3948 4031x0dx0aSwap: 4996 438 4558x0dx0ax0dx0a第一行用全局角度描述系統使用的內存狀況:x0dx0atotal 內存總數x0dx0aused 已經使用的內存數,一般情況這個值會比較大,因為這個值包括了cache 應用程序使用的內存x0dx0afree 空閑的內存數x0dx0ashared 多個進程共享的內存總額x0dx0abuffers 緩存,主要用於目錄方面,inode值等(ls大目錄可看到這個值增加)x0dx0acached 緩存,用於已打開的文件x0dx0ax0dx0a第二行描述應用程序的內存使用:x0dx0a-buffers/cache 的內存數:used - buffers - cachedx0dx0abuffers/cache 的內存數:free buffers cachedx0dx0a前個值表示-buffers/cache 應用程序使用的內存大小,used減去緩存值x0dx0a後個值表示 buffers/cache 所有可供應用程序使用的內存大小,free加上緩存值x0dx0ax0dx0a第三行表示swap的使用:x0dx0aused 已使用x0dx0afree 未使用 x0dx0ax0dx0a可用的內存=free memory buffers cached。x0dx0ax0dx0a為什麼free這么小,是否關閉應用後內存沒有釋放?x0dx0a但實際上,我們都知道這是因為Linux對內存的管理與Windows不同,free小並不是說內存不夠用了,應該看的是free的第二行最後一個值:-/ buffers/cache: 3948 4031 ,這才是系統可用的內存大小。x0dx0a實際項目中的經驗告訴我們,如果因為是應用有像內存泄露、溢出的問題,從swap的使用情況是可以比較快速可以判斷的,但free上面反而比較難查看。我覺得既然核心是可以快速清空buffer或cache,但核心並沒有這樣做(默認值是0),我們不應該隨便去改變它。x0dx0a一般情況下,應用在系統上穩定運行了,free值也會保持在一個穩定值的,雖然看上去可能比較小。當發生內存不足、應用獲取不到可用內存、OOM錯 誤等問題時,還是更應該去分析應用方面的原因,如用戶量太大導致內存不足、發生應用內存溢出等情況,否則,清空buffer,強制騰出free的大小,可 能只是把問題給暫時屏蔽了,所以說一般情況下linux都不用經常手動釋放內存。

3. 如何清理Linux伺服器磁碟空間

1、刪除無用的安裝包

在之前的Linux實驗室中,筆者介紹過apt-get及其相似命令,而在apt-get命令中,有一項「autoremove」自動移除選項。

這個選項能夠移除一些無用的自動安裝包和庫,也可以刪除那些在系統升級中自動安裝的就得Linux內核。

這是一個傻瓜式的命令,你隨時都可以運行,以加大你的磁碟可用空間。

sudoapt-getautoremove


比如Stacer就是這樣一個工具,它可以展示你系統中的內存、CPU等各種部件狀態信息,當然還有很多其他類似的工具,等著你不斷去發掘。

4. 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 中說道的的所有緩存

5. 怎樣清除linux的web緩存

1、先清除dns緩存,再清除瀏覽器緩存
2、清除dns緩存,可重新啟動NSCD服務來達成清除DNS
Cache的效果。命令如下:
#
service
nscd
restart
或是
#/etc/init.d/nscd
restart
3、清除瀏覽器緩存,有的在工具裡面,有的在設置裡面,根據瀏覽器的不同找一下,應該能找到;清除緩存之後重新打開瀏覽器即可。
4、如果是清除BIND伺服器上的CACHE,命令:
#
rndc
flush

6. linux 怎麼清除瀏覽的緩存

1、先清除dns緩存,再清除瀏覽器緩存
2、清除dns緩存,可重新啟動NSCD服務來達成清除DNS Cache的效果。命令如下:
# service nscd restart
或是
#/etc/init.d/nscd restart
3、清除瀏覽器緩存,有的在工具裡面,有的在設置裡面,根據瀏覽器的不同找一下,應該能找到;清除緩存之後重新打開瀏覽器即可。
4、如果是清除BIND伺服器上的CACHE,命令:
# rndc flush

7. 如何手動釋放Linux內存的方法

1、首先打開Linux命令窗口,可使用快捷鍵Ctrl+Alt+T打開。

8. 如何為linux釋放緩存

當在Linux下頻繁存取文件後,物理內存會很快被用光,當程序結束後,內存不會被正常釋放,而是一直作為caching。這個問題,貌似有不少人在問,不過都沒有看到有什麼很好解決的辦法。那麼我來談談這個問題。
一、通常情況
先來說說free命令:
# free -m
total used free shared buffers cached
Mem: 249 163 86 0 10 94
-/+ buffers/Cache: 58 191
SWAP: 511 0 511
其中:
total 內存總數
used 已經使用的內存數
free 空閑的內存數
shared 多個進程共享的內存總額
buffers buffer Cache和cached Page Cache 磁碟緩存的大小
-buffers/cache (已用)的內存數:used - buffers - cached
+buffers/cache(可用)的內存數:free + buffers + cached
可用的memory=free memory+buffers+cached
有了這個基礎後,可以得知,我現在used為163MB,free為86MB,buffer和cached分別為10MB,94MB。
那麼我們來看看,如果我執行復制文件,內存會發生什麼變化。
# cp -r /etc ~/test/
# free -m
total used free shared buffers cached
Mem: 249 244 4 0 8 174
-/+ buffers/cache: 62 187
Swap: 511 0 511
在我命令執行結束後,used為244MB,free為4MB,buffers為8MB,cached為174MB,天吶,都被cached吃掉了。別緊張,這是為了提高文件讀取效率的做法。
為了提高磁碟存取效率,Linux做了一些精心的設計,除了對dentry進行緩存(用於VFS,加速文件路徑名到inode的轉換),還採取了兩種主要Cache方式:Buffer Cache和Page Cache。前者針對磁碟塊的讀寫,後者針對文件inode的讀寫。這些Cache有效縮短了 I/O系統調用(比如read,write,getdents)的時間。
那麼有人說過段時間,linux會自動釋放掉所用的內存。等待一段時間後,我們使用free再來試試,看看是否有釋放?
# free -m
total used free shared buffers cached
Mem: 249 244 5 0 8 174
-/+ buffers/cache: 61 188
Swap: 511 0 511
似乎沒有任何變化。(實際情況下,內存的管理還與Swap有關)那麼我能否手動釋放掉這些內存呢?回答是可以的!
二、手動釋放緩存
/proc是一個虛擬文件系統,我們可以通過對它的讀寫操作做為與Kernel實體間進行通信的一種手段。也就是說可以通過修改/proc中的文件,來對當前kernel的行為做出調整。那麼我們可以通過調整/proc/sys/vm/drop_caches來釋放內存。操作如下:
# cat /proc/sys/vm/drop_caches
0
首先,/proc/sys/vm/drop_caches的值,默認為0。
# sync
手動執行sync命令(描述:sync 命令運行 sync 子常式。如果必須停止系統,則運行sync 命令以確保文件系統的完整性。sync 命令將所有未寫的系統緩沖區寫到磁碟中,包含已修改的 i-Node、已延遲的塊 I/O 和讀寫映射文件)
# echo 3 > /proc/sys/vm/drop_caches
# cat /proc/sys/vm/drop_caches
3
將/proc/sys/vm/drop_caches值設為3
# free -m
total used free shared buffers cached
Mem: 249 66 182 0 0 11
-/+ buffers/cache: 55 194
Swap: 511 0 511
再來運行free命令,會發現現在的used為66MB,free為182MB,buffers為0MB,cached為11MB。那麼有效的釋放了buffer和cache。
有關/proc/sys/vm/drop_caches的用法在下面進行了說明
/proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches,dentries and inodes from memory, causing that memory to become free.
To free pagecache, use echo 1 > /proc/sys/vm/drop_caches;
to free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;
to free pagecache, dentries and inodes, use echo 3 > /proc/sys/vm/drop_caches.
Because this is a non-destructive operation and dirty objects are not freeable, the user should run sync first.

9. Linux如何清理ARP緩存

1、系統初始arp環境
[root@esx ~]# arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.1.175 ether 00:24:1D:97:B6:7F C vswif0
192.168.1.120 ether 00:1F:C6:3A:DC:81 C vswif0
192.168.1.51 (incomplete) vswif0

2、執行清除所有arp 緩存命令
[root@esx ~]# arp -n|awk '/^[1-9]/{print "arp -d " $1}'|sh -x
+ arp -d 192.168.1.175
+ arp -d 192.168.1.120
+ arp -d 192.168.1.51

3、執行命令後,本機arp緩存信息
[root@esx ~]# arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.1.175 (incomplete) vswif0
192.168.1.120 (incomplete) vswif0
192.168.1.51 (incomplete) vswif0

10. 如何在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清楚緩存相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163