
如图所示,基本逻辑为:
客户端 - 本机器dns解析器(如host,dnsmasq)- 本地dns服务器(比如家庭路由器)- 网络dns服务器
为了加速查询,在解析器和服务器上都有缓存在,一般而言我们要清理的是本机器上的dns缓存
显然,我们必须首先了解本地机器用的是什么解析器,可以通过看哪个进程占据了53端口来查询,因为53端口是dns服务器端口。
可以通过以下指令:
分别会下列结果
针对不同的解析器
可以用不同的命令清理
针对system-resolved:
同时为了验证dns缓存真的被清理了,可以用命令来查看缓存
针对dnsmasq:
参考:
https://devconnected.com/how-to-flush-dns-cache-on-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 – 释放所有缓存
1
2
3
4
5
6
7
[root@oracle ~]# sysctl -p
#查看剩余内存
[root@oracle ~]# free -m
total used free sharedbuffers cached
Mem: 3383 1952 1431 0 1 1136
-/+ buffers/cache:814 2568
Swap: 1983195 1788
如果系统下有nscd,那么就直接
sudo /etc/init.d/nscd restart
如果没有也没关系,网上接受的方法大都是
sudo aptitude install nscd
sudo /etc/init.d/nscd restart
其实也可以直接
sudo /etc/init.d/dns-clean start
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)