导航:首页 > 操作系统 > 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