<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Linux%E5%86%85%E5%AD%98%E6%9F%A5%E7%9C%8B%E5%8F%8A%E4%B8%80%E6%AC%A1%E9%87%8A%E6%94%BELinux%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98%E5%A4%84%E7%90%86%28Aliyun_ecs%29</id>
	<title>Linux内存查看及一次释放Linux内存问题处理(Aliyun ecs) - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Linux%E5%86%85%E5%AD%98%E6%9F%A5%E7%9C%8B%E5%8F%8A%E4%B8%80%E6%AC%A1%E9%87%8A%E6%94%BELinux%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98%E5%A4%84%E7%90%86%28Aliyun_ecs%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Linux%E5%86%85%E5%AD%98%E6%9F%A5%E7%9C%8B%E5%8F%8A%E4%B8%80%E6%AC%A1%E9%87%8A%E6%94%BELinux%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98%E5%A4%84%E7%90%86(Aliyun_ecs)&amp;action=history"/>
	<updated>2026-04-16T19:24:40Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=Linux%E5%86%85%E5%AD%98%E6%9F%A5%E7%9C%8B%E5%8F%8A%E4%B8%80%E6%AC%A1%E9%87%8A%E6%94%BELinux%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98%E5%A4%84%E7%90%86(Aliyun_ecs)&amp;diff=1636&amp;oldid=prev</id>
		<title>Evan：​/* see also */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Linux%E5%86%85%E5%AD%98%E6%9F%A5%E7%9C%8B%E5%8F%8A%E4%B8%80%E6%AC%A1%E9%87%8A%E6%94%BELinux%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98%E5%A4%84%E7%90%86(Aliyun_ecs)&amp;diff=1636&amp;oldid=prev"/>
		<updated>2025-10-09T15:48:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;see also&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025年10月9日 (四) 15:48的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l313&quot;&gt;第313行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第313行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://www.cnblogs.com/jackhub/p/3736877.html 手工释放linux内存——/proc/sys/vm/drop_caches]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://www.cnblogs.com/jackhub/p/3736877.html 手工释放linux内存——/proc/sys/vm/drop_caches]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[category:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ops&lt;/del&gt;]] [[category:linux]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[category:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;devops&lt;/ins&gt;]] [[category:linux]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-591:rev-1636:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=Linux%E5%86%85%E5%AD%98%E6%9F%A5%E7%9C%8B%E5%8F%8A%E4%B8%80%E6%AC%A1%E9%87%8A%E6%94%BELinux%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98%E5%A4%84%E7%90%86(Aliyun_ecs)&amp;diff=591&amp;oldid=prev</id>
		<title>Evan：​/* 2. 问题来了 */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Linux%E5%86%85%E5%AD%98%E6%9F%A5%E7%9C%8B%E5%8F%8A%E4%B8%80%E6%AC%A1%E9%87%8A%E6%94%BELinux%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98%E5%A4%84%E7%90%86(Aliyun_ecs)&amp;diff=591&amp;oldid=prev"/>
		<updated>2021-10-20T02:48:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;2. 问题来了&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=free命令buff/cache过高的一般处理办法 =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync &lt;br /&gt;
echo 1 &amp;gt; /proc/sys/vm/drop_caches #:表示清除pagecache。#This command will clear pagecache:&lt;br /&gt;
echo 2 &amp;gt; /proc/sys/vm/drop_caches #:表示清除回收slab分配器中的对象（包括目录项缓存和inode缓存）。slab分配器是内核中管理内存的一种机制，其中很多缓存数据实现都是用的pagecache。 #To clear dentries and inodes you can use:&lt;br /&gt;
echo 3 &amp;gt; /proc/sys/vm/drop_caches #:表示清除pagecache和slab分配器中的缓存对象。To free memory of the all above use a following command:&lt;br /&gt;
 &lt;br /&gt;
能会遇到了 &amp;quot;bash: /proc/sys/vm/drop_caches: Permission denied&amp;quot;的问题，即使加上sudo也不行．&lt;br /&gt;
&lt;br /&gt;
原因：重定向符号 “&amp;gt;” 和 &amp;quot;&amp;gt;&amp;gt;&amp;quot; 也是 bash 的命令。使用 sudo 只是让 echo 命令具有了 root 权限，但是没有让 “&amp;gt;” 和 &amp;quot;&amp;gt;&amp;gt;&amp;quot; 命令也具有 root 权限，所以 bash 会认为这两个命令都没有向 drop_caches 文件写入信息的权限。&lt;br /&gt;
&lt;br /&gt;
解决方法：&lt;br /&gt;
&lt;br /&gt;
方法一是利用 &amp;quot;sh -c&amp;quot; 命令，它可以让 bash 将一个字串作为完整的命令来执行，这样就可以将 sudo 的影响范围扩展到整条命令。具体用法如下：&lt;br /&gt;
&lt;br /&gt;
$ sudo sh -c &amp;#039;echo 3 &amp;gt; /proc/sys/vm/drop_caches&amp;#039;&lt;br /&gt;
&lt;br /&gt;
方法二是利用管道和 tee 命令，该命令可以从标准输入中读入信息并将其写入标准输出或文件中，具体用法如下：&lt;br /&gt;
&lt;br /&gt;
$ echo 3 | sudo tee -a /proc/sys/vm/drop_caches&lt;br /&gt;
&lt;br /&gt;
注意，tee 命令的 &amp;quot;-a&amp;quot; 选项的作用等同于 &amp;quot;&amp;gt;&amp;gt;&amp;quot; 命令，如果去除该选项，那么 tee 命令的作用就等同于 &amp;quot;&amp;gt;&amp;quot; 命令。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1.linux查看的一般方法: ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
按照离CPU由近到远的顺序依次是CPU寄存器、Cache、内存、硬盘，越靠近CPU的存储器容量越小但访问速度越快&lt;br /&gt;
&lt;br /&gt;
1).free -m  # or free -g &lt;br /&gt;
常用参数为 -m  -g  -h   -s &lt;br /&gt;
#注意 正常情况下free不能太小  不能有swap used 不然一般是有问题的，虽然说少量地使用swap是不是影响到系统性能的 &lt;br /&gt;
[root@vm ~]# free -m &lt;br /&gt;
             total       used       free     shared    buffers     cached&lt;br /&gt;
Mem:           999        256        743          0         21        136&lt;br /&gt;
-/+ buffers/cache:         99        900&lt;br /&gt;
Swap:         2015          0       2015&lt;br /&gt;
&lt;br /&gt;
2). top -&amp;gt;M &lt;br /&gt;
一般就可以看到这些使用内存比较多的程序的 &lt;br /&gt;
如果这两个看到的不多，但是free很少 那就是有问题了 如昨天&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. 问题来了 == &lt;br /&gt;
&amp;lt;pre&amp;gt;Q: Linux系统used内存占用很大，而实际系统中个进程并没有占用这么多内存&lt;br /&gt;
[root@evan]# free -m &lt;br /&gt;
             total       used       free     shared    buffers     cached&lt;br /&gt;
Mem:         15950      15229        721          0        331       1020&lt;br /&gt;
&lt;br /&gt;
[root@ ~]# top &lt;br /&gt;
Mem:  16333644k total, 15589488k used,   744156k free,   339752k buffers&lt;br /&gt;
Swap:        0k total,        0k used,        0k free,  1044796k cached&lt;br /&gt;
&lt;br /&gt;
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                           &lt;br /&gt;
 1993 redis     20   0  150m  25m 1144 S  0.7  0.2 373:35.07 mem-server                                      &lt;br /&gt;
               20   0 39720  23m 1660 S  0.0  0.1   0:04.27 apache                                             &lt;br /&gt;
 &lt;br /&gt;
重启了常用的服务还是不行  &lt;br /&gt;
&lt;br /&gt;
原因 :&lt;br /&gt;
这是因为linux的缓存机制造成的 可以使用下面的方法测试下&lt;br /&gt;
&lt;br /&gt;
#释放前sync一下，防止丢数据。&lt;br /&gt;
&lt;br /&gt;
至于 sync 命令。它和 cached 有关。它的功能是，把脏页写回磁盘，也就是把修改过的数据还没写到磁盘的数据写到磁盘上。因为内核会延迟提交，每次提交多积累一些数据，以提高效率、降低延迟。没有使用的必要，只会让系统卡一下而已&lt;br /&gt;
https://segmentfault.com/q/1010000002439931&lt;br /&gt;
&lt;br /&gt;
sync #释放内存前先使用sync命令做同步，以确保文件系统的完整性，将所有未写的系统缓冲区写到磁盘中，包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。否则在释放缓存的过程中，可能会丢失未保存的文件。&lt;br /&gt;
#释放&lt;br /&gt;
echo 3 &amp;gt; /proc/sys/vm/drop_caches &lt;br /&gt;
&lt;br /&gt;
drop_caches的值可以是0-3之间的数字，代表不同的含义：&lt;br /&gt;
0：不释放（系统默认值）&lt;br /&gt;
1：释放页缓存&lt;br /&gt;
2：释放dentries和inodes&lt;br /&gt;
3：释放所有缓存&lt;br /&gt;
&lt;br /&gt;
# 这个是有可能影响业务的，建议在适当的时间清理一下&lt;br /&gt;
#释放完内存后改回去让系统重新自动分配内存。&lt;br /&gt;
echo 0 &amp;gt; /proc/sys/vm/drop_caches &lt;br /&gt;
# /usr/bin/echo: 写入错误: 无效的参数  centos7  Oct20 2021&lt;br /&gt;
&lt;br /&gt;
处理后 &lt;br /&gt;
[root@evan]# free -m &lt;br /&gt;
             total       used       free     shared    buffers     cached&lt;br /&gt;
Mem:         15950        433      15517          0          3         31&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
处理问题用到的知识点如下 &lt;br /&gt;
######### Linux释放内存的相关知识 ###############&lt;br /&gt;
&lt;br /&gt;
在Linux系统下，我们一般不需要去释放内存，因为系统已经将内存管理的很好。但是凡事也有例外，有的时候内存会被缓存占用掉，导致系统使用SWAP空 间影响性能，例如当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。，此时就需 要执行释放内存（清理缓存）的操作了。&lt;br /&gt;
&lt;br /&gt;
Linux系统的缓存机制是相当先进的，他会针对dentry（用于VFS，加速文件路径名到inode的转换）、Buffer Cache（针对磁盘块的读写）和Page Cache（针对文件inode的读写）进行缓存操作。但是在进行了大量文件操作之后，缓存会把内存资源基本用光。但实际上我们文件操作已经完成，这部分 缓存已经用不到了。这个时候，我们难道只能眼睁睁的看着缓存把内存空间占据掉吗？所以，我们还是有必要来手动进行Linux下释放内存的操作，其实也就是 释放缓存的操作了。/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段.也就是说可以通过修改 /proc中的文件,来对当前kernel的行为做出调整.那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。要达到释 放缓存的目的，我们首先需要了解下关键的配置文件/proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数，默认值为0，也就 是不释放缓存。&lt;br /&gt;
&lt;br /&gt;
一般复制了文件后,可用内存会变少，都被cached占用了，这是linux为了提高文件读取效率的做法：为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式：Buffer Cache和Page Cache。前者针对磁盘块的读写，后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。&amp;quot;&lt;br /&gt;
&lt;br /&gt;
########################&lt;br /&gt;
&lt;br /&gt;
2020&lt;br /&gt;
改默认为0 的时候报这个错是正常的，无法修改为0，您可以参考一下：&lt;br /&gt;
https://www.dazhuanlan.com/2019/10/05/5d986e3c55468/&lt;br /&gt;
&lt;br /&gt;
这边处理重启后会自动重置为0，如果不重启，是会自动恢复为0，您可以参考如下文档：&lt;br /&gt;
http://bbs.chinaunix.net/thread-4231822-1-1.html  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.知识点:==&lt;br /&gt;
&amp;lt;pre&amp;gt;free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中，free命令是最经常使用的命令之一。 常用参数为 -m  -g  -h   -s &lt;br /&gt;
&lt;br /&gt;
命令功能：&lt;br /&gt;
free 命令显示系统使用和空闲的内存情况，包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略&lt;br /&gt;
命令参数：&lt;br /&gt;
&lt;br /&gt;
-b 　以Byte为单位显示内存使用情况。 &lt;br /&gt;
-k 　以KB为单位显示内存使用情况。 &lt;br /&gt;
-m 　以MB为单位显示内存使用情况。&lt;br /&gt;
-g   以GB为单位显示内存使用情况。 &lt;br /&gt;
-o 　不显示缓冲区调节列。 &lt;br /&gt;
-s&amp;lt;间隔秒数&amp;gt; 　持续观察内存使用状况。 &lt;br /&gt;
-t 　显示内存总和列。 &lt;br /&gt;
-V 　显示版本信息。 &lt;br /&gt;
&lt;br /&gt;
root@service]# free&lt;br /&gt;
             total       used       free     shared    buffers     cached&lt;br /&gt;
Mem:      32940112   30841684    2098428          0    4545340   11363424&lt;br /&gt;
-/+ buffers/cache:   14932920   18007192&lt;br /&gt;
Swap:     32764556    1944984   30819572&lt;br /&gt;
&lt;br /&gt;
下面是对这些数值的解释：&lt;br /&gt;
total:总计物理内存的大小。&lt;br /&gt;
used:已使用多大。&lt;br /&gt;
free:可用有多少。&lt;br /&gt;
Shared:多个进程共享的内存总额。&lt;br /&gt;
Buffers/cached:磁盘缓存的大小。&lt;br /&gt;
第三行(-/+ buffers/cached):&lt;br /&gt;
used:已使用多大。&lt;br /&gt;
free:可用有多少。&lt;br /&gt;
第四行是交换分区SWAP的，也就是我们通常所说的虚拟内存。&lt;br /&gt;
区别：第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看，第一行是从OS的角度来看，因为对于OS，buffers/cached 都是属于被使用，所以他的可用内存是2098428KB,已用内存是30841684KB,其中包括，内核（OS）使用+Application(X, oracle,etc)使用的+buffers+cached.&lt;br /&gt;
第三行所指的是从应用程序角度来看，对于应用程序来说，buffers/cached 是等于可用的，因为buffer/cached是为了提高文件读取的性能，当应用程序需在用到内存的时候，buffer/cached会很快地被回收。&lt;br /&gt;
所以从应用程序的角度来说，可用内存=系统free memory+buffers+cached。&lt;br /&gt;
如本机情况的可用内存为：&lt;br /&gt;
18007156=2098428KB+4545340KB+11363424KB&lt;br /&gt;
&lt;br /&gt;
那buffers和cached都是缓存，两者有什么区别呢？&lt;br /&gt;
为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式：Buffer Cache和Page Cache。前者针对磁盘块的读写，后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。&lt;br /&gt;
磁盘的操作有逻辑级（文件系统）和物理级（磁盘块），这两种Cache就是分别缓存逻辑和物理级数据的。&lt;br /&gt;
Page cache实际上是针对文件系统的，是文件的缓存，在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘，这种映射关系由文件系统来完成。当page cache的数据需要刷新时，page cache中的数据交给buffer cache，因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了，没有真正意义上的cache操作。&lt;br /&gt;
Buffer cache是针对磁盘块的缓存，也就是在没有文件系统的情况下，直接对磁盘进行操作的数据会缓存到buffer cache中，例如，文件系统的元数据都会缓存到buffer cache中。&lt;br /&gt;
简单说来，page cache用来缓存文件数据，buffer cache用来缓存磁盘数据。在有文件系统的情况下，对文件操作，那么数据会缓存到page cache，如果直接采用dd等工具对磁盘进行读写，那么数据会缓存到buffer cache。&lt;br /&gt;
所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准.&lt;br /&gt;
如果是应用服务器的话，一般只看第二行，+buffers/cache,即对应用程序来说free的内存太少了，也是该考虑优化程序或加内存了。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
每天一个linux命令（45）：free 命令&lt;br /&gt;
http://www.cnblogs.com/peida/archive/2012/12/25/2831814.html&lt;br /&gt;
&lt;br /&gt;
http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html&lt;br /&gt;
&lt;br /&gt;
手动释放Linux内存的方法&lt;br /&gt;
http://www.cnblogs.com/waterdragon/archive/2013/03/01/2938289.html&lt;br /&gt;
&lt;br /&gt;
Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决&lt;br /&gt;
http://www.cnblogs.com/panfeng412/p/drop-caches-under-linux-system.html&lt;br /&gt;
&lt;br /&gt;
Linux Used内存到底哪里去了？&lt;br /&gt;
http://blog.yufeng.info/archives/2456&lt;br /&gt;
&lt;br /&gt;
http://www.myjishu.com/?p=82&lt;br /&gt;
&lt;br /&gt;
http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4.其它常用命令 == &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
获得当前系统中运行的最占内存的前10个程序:&lt;br /&gt;
ps aux | sort -k 6 -rn | head -n10&lt;br /&gt;
ps aux| grep -v &amp;quot;USER&amp;quot; |sort -n -r -k 4 |awk &amp;#039;NR==1{ print $0}&amp;#039;&lt;br /&gt;
ps aux --sort -rss&lt;br /&gt;
&lt;br /&gt;
pmap PID #查看静态内存使用情况&lt;br /&gt;
top #按shift+m 按照内存使用情况进行排序。 &lt;br /&gt;
ps -ef | grep apache #查看PID 比如是1234&lt;br /&gt;
cat /proc/1234/status #查看详细的信息&lt;br /&gt;
&lt;br /&gt;
top -b -n  1 | grep apache&lt;br /&gt;
top -b -n 1 |grep apache |awk &amp;#039;{print &amp;quot;cpu:&amp;quot;$9&amp;quot;%&amp;quot;,&amp;quot;mem:&amp;quot;$10&amp;quot;%&amp;quot;}&amp;#039;&lt;br /&gt;
&lt;br /&gt;
cat /proc/meminfo&lt;br /&gt;
ps -eo pid,args,rss|grep apache|grep -v grep|awk ‘{a+=$NF}END{print a}’&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
然后top看了下，没有特别吃内存的程序。用ps大概统计下所有程序占用的总内存&lt;br /&gt;
差不多8g&lt;br /&gt;
&lt;br /&gt;
[root@prod-1 ~]# ps aux | awk &amp;#039;{mem += $6} END {print mem/1024/1024}&amp;#039;&lt;br /&gt;
7.9253&lt;br /&gt;
&lt;br /&gt;
  http://www.cnblogs.com/panfeng412/p/drop-caches-under-linux-system.html&lt;br /&gt;
 sar 找出系统瓶颈的利器&lt;br /&gt;
 &lt;br /&gt;
yum install -y  sysstat &amp;amp;&amp;amp; echo &amp;#039;ENABLED=”true”&amp;#039; &amp;gt; /etc/default/sysstat &amp;amp;&amp;amp; /etc/init.d/sysstat start&lt;br /&gt;
 sar -q: 查看平均负载&lt;br /&gt;
 &lt;br /&gt;
 sar参数说明&lt;br /&gt;
&lt;br /&gt;
-A 汇总所有的报告&lt;br /&gt;
-a 报告文件读写使用情况&lt;br /&gt;
-B 报告附加的缓存的使用情况&lt;br /&gt;
-b 报告缓存的使用情况&lt;br /&gt;
-c 报告系统调用的使用情况&lt;br /&gt;
-d 报告磁盘的使用情况 &lt;br /&gt;
-g 报告串口的使用情况&lt;br /&gt;
-h 报告关于buffer使用的统计数据&lt;br /&gt;
-m 报告IPC消息队列和信号量的使用情况&lt;br /&gt;
-n 报告命名cache的使用情况&lt;br /&gt;
-p 报告调页活动的使用情况&lt;br /&gt;
-q 报告运行队列和交换队列的平均长度&lt;br /&gt;
-R 报告进程的活动情况&lt;br /&gt;
-r 报告没有使用的内存页面和硬盘块&lt;br /&gt;
-u 报告CPU的利用率&lt;br /&gt;
-v 报告进程、i节点、文件和锁表状态&lt;br /&gt;
-w 报告系统交换活动状况&lt;br /&gt;
-y 报告TTY设备活动状况&lt;br /&gt;
 &lt;br /&gt;
 http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/sar.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 执行过程==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@prod-sns ~]# sync &lt;br /&gt;
[root@prod-sns- ~]# free -m &lt;br /&gt;
              total        used        free      shared  buff/cache   available&lt;br /&gt;
Mem:           7821        3868         332        2288        3619        1323&lt;br /&gt;
Swap:             0           0           0&lt;br /&gt;
[root@prod-sns1 ~]# echo 1 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
[root@prod-sns ~]# free -m &lt;br /&gt;
              total        used        free      shared  buff/cache   available&lt;br /&gt;
Mem:           7821        3868        1349        2288        2602        1336&lt;br /&gt;
Swap:             0           0           0&lt;br /&gt;
[root@prod-sns- ~]# sync &lt;br /&gt;
[root@prod-sns ~]# echo 2 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
[root@prod-sns1 ~]# free -m &lt;br /&gt;
              total        used        free      shared  buff/cache   available&lt;br /&gt;
Mem:           7821        3868        1344        2288        2607        1339&lt;br /&gt;
Swap:             0           0           0&lt;br /&gt;
&lt;br /&gt;
[root@prod-sns ~]# sync &lt;br /&gt;
[root@prod-sns ~]# echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
[root@prod-sns-1 ~]# free -m &lt;br /&gt;
              total        used        free      shared  buff/cache   available&lt;br /&gt;
Mem:           7821        3867        1376        2288        2576        1350&lt;br /&gt;
Swap:             0           0           0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==还有问题 2020 ==&lt;br /&gt;
&lt;br /&gt;
以前执行的 现在执行了也没有效果  应该只能重启vm &lt;br /&gt;
&lt;br /&gt;
[https://zhuanlan.zhihu.com/p/95813254 内核珠玑：/proc/sys/vm/drop_caches为啥不灵了]&lt;br /&gt;
&lt;br /&gt;
==2020的一些办法 没试过==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
解决办法：&lt;br /&gt;
1.运行 sync 将 dirty 的内容写回硬盘&lt;br /&gt;
$sync&lt;br /&gt;
&lt;br /&gt;
2.通过修改 proc 系统的 drop_caches 清理free的cache&lt;br /&gt;
$echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
&lt;br /&gt;
  3 . 修改/etc/sysctl.conf 添加如下选项后就不会内存持续增加&lt;br /&gt;
vm.dirty_ratio = 1&lt;br /&gt;
vm.dirty_background_ratio=1&lt;br /&gt;
vm.dirty_writeback_centisecs=2&lt;br /&gt;
vm.dirty_expire_centisecs=3&lt;br /&gt;
vm.drop_caches=3&lt;br /&gt;
vm.swappiness =100&lt;br /&gt;
vm.vfs_cache_pressure=163&lt;br /&gt;
vm.overcommit_memory=2&lt;br /&gt;
vm.lowmem_reserve_ratio=32 32 8&lt;br /&gt;
kern.maxvnodes=3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
drop_caches 的详细文档如下：&lt;br /&gt;
&lt;br /&gt;
Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.&lt;br /&gt;
To free pagecache:&lt;br /&gt;
* echo 1 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
To free dentries and inodes:&lt;br /&gt;
* echo 2 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
To free pagecache, dentries and inodes:&lt;br /&gt;
* echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;br /&gt;
As this is a non-destructive operation, and dirty objects are notfreeable, the user should run &amp;quot;sync&amp;quot; first in order to make sure allcached objects are freed.&lt;br /&gt;
This tunable was added in 2.6.16.&lt;br /&gt;
&lt;br /&gt;
上面的设置比较粗暴，使cache的作用基本无法发挥。需要根据机器的状况进行适当的调节寻找最佳的折衷&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=see also=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.jianshu.com/p/016f7cf0380d good echo N&amp;gt;/proc/sys/vm/drop_caches清理缓存]&lt;br /&gt;
&lt;br /&gt;
[https://focusss.github.io/2019/02/10/Linux%E4%B8%ADbuff-cache%E5%8D%A0%E7%94%A8%E8%BF%87%E9%AB%98%E8%A7%A3%E5%86%B3%E6%89%8B%E6%AE%B5/ Linux中buff-cache占用过高解决手段]&lt;br /&gt;
&lt;br /&gt;
[http://mawenbao.com/research/linux-ate-my-memory.html 记一次内存占用问题的调查过程]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.cnblogs.com/jackhub/p/3736877.html 手工释放linux内存——/proc/sys/vm/drop_caches]&lt;br /&gt;
[[category:ops]] [[category:linux]]&lt;/div&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
</feed>