apt缓存 linux 清空
2014-03-22 21:52:20 cjfeii 阅读数 4467

清空缓存:

echo 1|sudo tee /proc/sys/vm/drop_caches

查看系统内存占用信息(单位是MB):

free -m

例如:

$ echo 1|sudo tee /proc/sys/vm/drop_caches
[sudo] password for chenjianfei: 
1
$ free -m
             total       used       free     shared    buffers     cached
Mem:          7191       2703       4487          0          0        103
-/+ buffers/cache:       2599       4591
Swap:         8191         11       8180



2014-07-01 11:57:12 yuxinghai2008 阅读数 603
原文:http://www.linuxidc.com/Linux/2012-04/58184.htm
今天用spot on light 查了一下开发服务器的内存占用,只剩下60MB
用下面的方法就可以实现清空缓存
频繁的文件访问会导致系统的Cache使用量大增
首先使用free -m查看剩余内存
[root@Oracle ~]# free -m
                                     total       used       free     shared    buffers     cached
Mem:                            3383       3319         63          0         97       2395
-/+ buffers/cache:         826         2556
Swap:                           1983       195       1788

total 内存总数  used 已经使用的内存数 free 空闲的内存数 shared 多个进程共享的内存总额

说明,释放前最好sync一下,防止丢数据。 

使用方式 : sync 
使用说明 : Linux 系统中欲写入硬盘的资料有的时候会了效率起见,

     会写到 filesystem buffer 中,这个 buffer 是一块记忆体空间,

     如果欲写入硬盘的资料存于此 buffer 中,而系统又突然断电的话,

     那么资料就会流失了,sync 指令会将存于 buffer 中的资料强制写入硬盘中。


 

[root@oracle ~]# echo 1 > /proc/sys/vm/drop_caches
[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

 

说明:
1>. /proc是一个虚拟文件系统,我们可以通过对它的读写操作作为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。也就是说我们可以通过调整/proc/sys/vm/drop_caches来释放内存。
0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存
数字1是用来清空最近放问过的文件页面缓存
数字2是用来清空文件节点缓存和目录项缓存
数字3是用来清空1和2所有内容的缓存。
2>. 关于drop_caches的官方说明如下:
Writing to this file causes the kernel to drop clean caches,dentries and inodes from memory, causing that memory to becomefree.
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.
 
3>. Linux内核会将它最近访问过的文件页面缓存在内存中一段时间,这个文件缓存被称为pagecache。
Inode是linux/unix操作系统中的一种数据结构,包含了各文件相关的一些重要信息。在创建文件系统时,就会同时创建大量的inode。一般inode表会占用文件系统磁盘空间的1%。

 

目录项缓存(dcache)dentries

 

各参数含义:
total:总物理内存
used:已使用内存
free:完全未被使用的内存
shared:应用程序共享内存
buffers:缓存,主要用于目录方面,inode值等
cached:缓存,用于已打开的文件
-buffers/cache:应用程序使用的内存大小,used减去缓存值
+buffers/cache:所有可供应用程序使用的内存大小,free加上缓存值
 
其中:
total = used + free
-buffers/cache=used-buffers-cached,这个是应用程序真实使用的内存大小
+buffers/cache=free+buffers+cached,这个是服务器真实还可利用的内存大小

[oracle@cddserver1 ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:         32096      10379      21717          0         38       7942
-/+ buffers/cache:       2398      29698
Swap:        34287          0      34287
这里面的第二行才是真正服务器的空闲内存
 
 
2. Linux的内存分配方式
大家都知道,Linux服务器为了提高效率,会提前申请内存,即使这些内存没有被具体应用使用,Linux也会提前申请这些内存,然后利用这些内存做缓存用,即将刚打开的文件系统存入cache中,这样对应的服务器free值会越来越少,buffers和cached会越来越大,因此给大家表象就是内存越来越少了,大家就紧张了;其实,大家完全不用紧张,Linux服务器在发现内存不足时,会自动清理cached区域,释放内存,然后继续增大cache,free继续减少。因此,那样手动降低内存使用率的方法,其实就是图一时之快,呵呵。
 
 

 

 

echo 1 > /proc/sys/vm/drop_caches 可以暂时清空cache和buffer

在rhel5和Ubuntu上(rhel4不可以),可以直接修改内核文件
# /etc/sysctl.conf
vm.drop_caches = 1

#sysctl -p 

 


 $ sync
$ free -m
             total       used       free     shared    buffers     cached
Mem:         32096      30084       2011          0        590      26162
-/+ buffers/cache:       3332      28764
Swap:        34287          0      34287
echo 3 > /proc/sys/vm/drop_caches
free -m

 
原本以为是oracle缓存占满了,
在SQLPLUS中输入
ALTER SYSTEM FLUSH BUFFER_CACHE;
alter system flush shared_pool;
 但是看了一下效果不明显
 后面试试Linux清除ARP缓存
一、 arp -n|awk '/^[1-9]/ {print "arp -d "$1}' | sh
清除所有ARP缓存,推荐!
二、for((ip=2;ip<255;ip++));do arp -d 192.168.0.$ip &>/dev/null;done
清除192.168.0.0网段的所有缓存
三、arp -d IP
这样可以清除单一IP 的ARP缓存
注意:以上均需要root权限,尤其是最后一个,如果不再root下执行,则改为:
arp -n|awk '/^[1-9]/ {print "arp -d "$1}' | sudo sh
2016-03-27 17:43:24 books_world 阅读数 1270


http://blog.chinaunix.net/uid-20564848-id-74763.html


tcflush(int fd, int queue_selector)   //对以写但未发出,或已接收但未读数据的flush.
discards data written to the object referred to by fd but not transmitted, or data received but not read, depending on the value of
       queue_selector:

       TCIFLUSH
              flushes data received but not read.

       TCOFLUSH
              flushes data written but not transmitted.

       TCIOFLUSH
              flushes both data received but not read, and data written but not transmitted.
              
tcgetattr(int fd, struct termios *termios_p)   //get串口termios结构
gets the parameters associated with the object referred by fd and stores them in the termios structure referenced by termios_p. This function may be invoked from a background process; however, the terminal attributes may be subsequently changed by a foreground process.

tcsetattr(int fd, int optional_actions, const struct termios *termios_p)   //设置串口termios结构
sets the parameters associated with the terminal (unless support is required from the underlying hardware that is not available) from the termios structure referred to by termios_p.   optional_actions specifies when the changes take effect:
TCSANOW
   the change occurs immediately.

TCSADRAIN
   the change occurs after all output written to fd has been transmitted. This function should be used when changing parameters that affect output.

TCSAFLUSH
   the change occurs after all output written to the object referred by fd has been transmitted, and all input that has been received but not read will be discarded before the change is made.

2012-10-19 20:48:38 kumu_Linux 阅读数 8117
drop_caches

Writing to this will cause thekernel to drop clean caches, dentries and

inodes from memory, causing thatmemory to become free.

To free pagecache:

         echo1 > /proc/sys/vm/drop_caches

To free dentries and inodes:

         echo2 > /proc/sys/vm/drop_caches

To free pagecache, dentries andinodes:

         echo3 > /proc/sys/vm/drop_caches

As this is a non-destructiveoperation and dirty objects are not freeable, the

user should run `sync' first.

http://www.kernel.org/doc/Documentation/sysctl/vm.txt

注意:在清空缓存之前使用sync命令同步数据到磁盘

-------------------------------------------------------------------------------------------------------------------------------

# cat /proc/sys/vm/drop_caches

0

默认是0,1表示清空页缓存,2表示清空inode和目录树缓存,3清空所有的缓存

# sync
# free -m
                     total       used       free     shared    buffers     cached
Mem:           499        323        175          0         52                188
-/+ buffers/cache:       82        416
Swap:         2047          0       2047
# echo 3 > /proc/sys/vm/drop_caches
# free -m     //发现缓存明显减少了
                    total       used       free     shared    buffers     cached
Mem:           499         83         415          0          1                17
-/+ buffers/cache:      64        434
Swap:         2047          0       2047
#
-------------------------------------------------------------------------------------------------------------------------------

2013-07-25 12:07:21 md_555 阅读数 1026

一、Linux下清空DNS缓存

Linux下DNS缓存实现通常有两种方式:
一种是用DNS缓存程序NSCD(name service cache daemon)负责管理DNS缓存。
一种实现DNS缓存则是用Bind来架设Caching Name Server来实现。

如果是清除NSCD上的Cache,可重新启动NSCD服务来达成清除DNS Cache的效果。用这个命令:
# service nscd restart
或是
#/etc/init.d/nscd restart

如果是清除BIND服务器上的CACHE,用这个命令:
# rndc flush

如果你的DNS服务器是用dnsmasq实现的,用下面这个命令:
$ sudo /etc/init.d/dnsmasq restart

注:DNSmasq是一个轻巧的,容易使用的DNS服务工具,它可以应用在内部网和Internet连接的时候的IP地址NAT转换,也可以用做小型网络的DNS服务。

二、其它操作系统下清空DNS缓存的方法
1、微软windows下如何清空dns:
你可以用以下命令来清空dns 缓存内容。
ipconfig /flushdns

你也可以用以下命令来查看dns缓存内容。
ipconfig/displaydns
windows下的DNS Cache 是由DNS Client后台进程控制的,你可以在控制面板 ->服务中将其关闭,
这样windows就不会进行DNS缓存,每次都将直接查询DNS Server。

2、Mac OSX下如何清空DNS缓存:
在Mac OSX中,你可以用以下命令来清空DNS缓存内容:
bash-2.05a$lookupd-flushcache

三、其它一些DNS Cache小技巧
Q: 如何查看BIND DNS Server的Cache :
A: 在 bind 9中,可以使用rndc -dumpdb命令来查看DNS Cache,当然你的rndc要先配置好。这个命令会在/var/named(这个目录是在 named.conf 文件中指定的)目录中生成named_dump.db文件。
在bind8下,可以试试用kill -INT named_pid。

Q: DNS Cache的时间如何设置:
A: 在bind9 中,使用TTL参数来设置DNS默认的缓存时间,但要记住这个是你解析的域名在别人的DNS中的缓存时间。

Q: 在客户端如何清空DNS Cache:
A: 在Unix下,DNS客户端只是几个例程,负责转发和接受查询的功能,并不缓存。

Q: 在DNS服务器端如何清空DNS Cache:
A: 最简单的方法就是重新启动 named 进程;当然也有不用重启的方法: rndc flush


 

drop_caches Linux清空缓存

阅读数 90

drop_cachesWritingtothiswillcausethekerneltodropcleancaches,dentriesandinodesfrommemory,causingthatmemorytobecomefree.Tofreepagecache:        echo1>/proc/sys/vm/drop_cachesTofr

博文 来自: qq_34646172

Linux串口编程——清空输入输出缓存

阅读数 1440

Linux串口编程——清空输入输出缓存背景在我们的工作中,串口是一种比较常用的数据传输方式。在某些应用场景下,当程序启动并打开串口后,我们不希望读出串口打开之前的输入缓存数据(即内核驱动已接收但是并未被应用层读出的数据),因此需要对输入缓存数据进行清空(刷清、丢弃)操作。下面以Linux系统上串口编程为例进行说明:测试环境硬件环境:PC操作系统:Ubuntu14.04...

博文 来自: zuoao123

如何清空linux的DNS缓存

阅读数 23297

一、Linux下清空DNS缓存Linux下DNS缓存实现通常有两种方式:一种是用DNS缓存程序NSCD(nameservicecachedaemon)负责管理DNS缓存。一种实现DNS缓存则是用Bind来架设CachingNameServer来实现。如果是清除NSCD上的Cache,可重新启动NSCD服务来达成清除DNSCache的效果。用这个命令:#se

博文 来自: summerviva

elasticsearch 清空缓存与关闭索引 和 linux清空缓存 top系统监控命令 与iostat的应用

阅读数 1372

概要:  1:介绍背景  2:使用指令介绍:最近为了做es的从磁盘读取效率需要用到清空缓存和关闭其他索引的需求,这里分享一下自己的找到的使用指令1:清空elasticsearch索引缓存      清空所有索引缓存:              POST   _flush                 POST _cache/_clear      清空指定索引的缓存:  ...

博文 来自: ailice001

清linux缓存,完全清空需要root

阅读数 3514

dspeak@lm-vm01:~/luowl/soft/lucene-3.0.1/demo-jar$cat/proc/sys/vm/drop_caches   3dspeak@lm-vm01:~/luowl/soft/lucene-3.0.1/demo-jar$ dspeak@lm-vm01:~/luowl/soft/lucene-3.0.1/demo-jar$echo3 >/proc/sys/vm/drop_caches

博文 来自: lwl_ls
没有更多推荐了,返回首页