<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/post//</link>
<title><![CDATA[Linux内存占用较高问题排查]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[运维管理]]></category>
<pubDate>Thu, 23 Sep 2021 06:52:10 +0000</pubDate> 
<guid>https://www.heckjj.com/post//</guid> 
<description>
<![CDATA[ 
	<span style="font-size: 14px;">一 、查看内存情况</span><br/>#按 k 查看<br/><br/>free<br/><a href="https://www.heckjj.com/attachment.php?fid=207" target="_blank"><img src="https://www.heckjj.com/attachment.php?fid=207" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>#按兆M查看<br/><br/>free -m<br/><br/><br/>total:总计物理内存的大小。<br/>used:已使用多大。<br/>free:可用有多少。<br/>Shared:多个进程共享的内存总额。<br/>Buffers/cached:磁盘缓存的大小。<br/>#所以空闲内存=free+buffers+cached=total-used<br/>内存的使用情况<br/>cat /proc/meminfo<br/><br/>查看进程的内存占用<br/>pidstat -r -p 24427 1 5<br/><br/>内存占用高的前20<br/>ps aux &#124; head -1;ps aux &#124;grep -v PID &#124;sort -rn -k +4 &#124; head -20<br/><br/>动态查看内存占用<br/>slabtop<br/><br/><span style="font-size: 14px;">二 、问题定位</span><br/>cached 占用过高问题<br/>buffer,cached的作用：<br/><br/>cached主要负责缓存文件使用, 日志文件过大造成cached区内存增大把内存占用完 .<br/>Free中的buffer和cache：（它们都是占用内存）：<br/>buffer : 作为buffer cache的内存，是块设备(磁盘)的缓冲区，包括读、写磁盘<br/>cache: 作为page cache的内存, 文件系统的cache，包括读、写文件<br/>如果 cache 的值很大，说明cache住的文件数很多。<br/><br/>linux服务器会自动释放内存，保障系统运行，但只会释放够用的内存，而不会去释放更多的内存。<br/><br/>解决方法：<br/>手动释放cached方法有三种（系统默认值是0，释放之后你需要再改回0值）：<br/>释放前最好sync一下，防止丢数据<br/><br/>sync 在启动机器或关机之前一定要运行sync命令。记住在任何情况下，慎重地执行sync命令决不会有任何坏处,sync命令强制把磁盘缓冲的所有数据写入磁盘<br/><br/><br/>To free pagecache: #echo 1 > /proc/sys/vm/drop_caches<br/><br/>To free dentries and inodes: #echo 2 > /proc/sys/vm/drop_caches<br/><br/>To free pagecache, dentries and inodes: #echo 3 > /proc/sys/vm/drop_caches<br/><br/>#常用方法是<br/><br/>sync<br/><br/>echo 1 > /proc/sys/vm/drop_caches<br/><br/>#清除后要还原系统默认配置：<br/>echo 0 > /proc/sys/vm/drop_caches<br/><br/>#查看设置<br/>sysctl -a &#124; grep drop_caches<br/>补充： echo 字符串 > 文件 就是把字符串内容从定向到文件中<br/><a href="https://www.heckjj.com/attachment.php?fid=208" target="_blank"><img src="https://www.heckjj.com/attachment.php?fid=208" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>这时查看 free 可以看到 cached 降低了很多
]]>
</description>
</item><item>
<link>https://www.heckjj.com/post//#blogcomment</link>
<title><![CDATA[[评论] Linux内存占用较高问题排查]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>