<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post/4704/</link>
<title><![CDATA[[实践OK]得到linux下某一进程占用内存 ， /proc/{$pid}/status 里的VmRSS字段就是实际占用多少内存。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Fri, 07 Oct 2011 07:12:47 +0000</pubDate> 
<guid>http://jackxiang.com/post/4704/</guid> 
<description>
<![CDATA[ 
	nux 系统文件 /proc/&#123;$pid&#125;/status 会记录某个进程的运行状态，里面的 VmRSS 字段记录了该进程使用的常驻物理内存(Residence)，这个就是该进程实际占用的物理内存了，用这个数据比较靠谱，在程序里面提取这个值也很容易<br/>ps：虽然垃圾回收让php开发者在内存管理上无需担心了，但也有极端的反例：php界著名的包管理工具composer曾因加入一行gc_disable();性能得到极大提升。<br/>两步：<br/>1）Top查看进程PID。<br/>ps -ef&#124;grep redis<br/>redis&nbsp;&nbsp;&nbsp;&nbsp;22261&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;7 Sep28 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5-00:29:08 /usr/local/redis/bin/redis-server 0.0.0.0:6380<br/><br/>2）查看进程的内存大小：<br/><textarea name="code" class="php" rows="15" cols="100">
cat /proc/22261/status&#124;grep -Ei &quot;VmSize&#124;VmRSS&quot;
VmSize: 11037068 kB 
VmRSS: 8149080 kB

VmSize(KB) 任务虚拟地址空间的大小
VmRSS(KB) 应用程序正在使用的物理内存的大小，就是用ps命令的参数rss的值 (rss)
</textarea><br/>换算公式：<br/>1 GB = 1,048,576 kB（=1024×1024）<br/><br/>VmSize 换算成 GB：<br/>11037068 / 1,048,576 ≈ 10.53 GB<br/><br/>VmRSS（真实占用内存）<br/>8149080 / 1,048,576 ≈ 7.77 GB<br/><br/>#redis-cli -p 6380 <br/>127.0.0.1:6380&gt; auth Kiz456!@*****<br/>OK<br/>127.0.0.1:6380&gt; info memory<br/>used_memory_human:8.83G<br/>used_memory_rss_human:7.77G<br/>......<br/><br/>重点字段：<br/>used_memory_human（实际 Redis 使用内存）<br/>used_memory_rss_human（进程 RSS）<br/><br/>3）将KB换为G或M看：<br/>https://www.wntool.com/filesize/<br/>5020236 kb = 4.787670135498047GB<br/><br/>常用ps命令参数:最常用的三个参数是u、a、x，下面将通过例子来说明其具体用法。<br/>p <br/>pid <br/>进程ID <br/>u <br/>user <br/>用户名<br/>x 显示没有控制终端的进程。<br/><br/>可以使用u选项来查看进程所有者及其他一些详细信息，如下所示：<br/>ps aux&#124;grep dio_open_usb2&#124;grep -v grep<br/>root&nbsp;&nbsp;&nbsp;&nbsp; 10952&nbsp;&nbsp;0.0&nbsp;&nbsp;0.2&nbsp;&nbsp;37436&nbsp;&nbsp;8848 pts/0&nbsp;&nbsp;&nbsp;&nbsp;S+&nbsp;&nbsp; 14:50&nbsp;&nbsp; 0:00 php dio_open_usb2.php<br/>从上面可以得到信息如下：<br/>还可以看到%CPU、%MEM两个选项，前者指该进程占用的CPU时间和总时间的百分比；后者指该进程占用的内存和总内存的百分比。<br/>即：该程序占用内存8848，我们只看内存，也也以这样看内存，10952是它的PID号，则这样看：<br/><textarea name="code" class="php" rows="15" cols="100">
cat /proc/2645/status&#124;grep -Ei &quot;VmSize&#124;VmRSS&quot;
VmSize:&nbsp;&nbsp;8238612 kB
VmRSS:&nbsp;&nbsp; 5020236 kB
</textarea><br/><br/><br/>该文件里面有很多项的，如下：<br/>cat /proc/10952/status<br/>Name:&nbsp;&nbsp; php<br/>State:&nbsp;&nbsp;S (sleeping)<br/>Tgid:&nbsp;&nbsp; 10952<br/>Pid:&nbsp;&nbsp;&nbsp;&nbsp;10952<br/>......<br/>VmSize:&nbsp;&nbsp;&nbsp;&nbsp;37436 kB<br/>VmRSS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8848 kB<br/>......<br/><br/>解释：<br/>VmSize(KB) 任务虚拟地址空间的大小<br/>VmRSS(KB) 应用程序正在使用的物理内存的大小，就是用ps命令的参数rss的值 (rss)<br/><br/><br/><br/><br/><br/><br/>参考来源：<br/>http://apps.hi.baidu.com/share/detail/17897258<br/>http://enterparse.blog.163.com/blog/static/11713797420096921232931/
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/4704/#blogcomment63367</link>
<title><![CDATA[[评论] [实践OK]得到linux下某一进程占用内存 ， /proc/{$pid}/status 里的VmRSS字段就是实际占用多少内存。]]></title> 
<author>hunhu36619 &lt;1622280492@qq.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Wed, 19 Oct 2011 10:50:52 +0000</pubDate> 
<guid>http://jackxiang.com/post/4704/#blogcomment63367</guid> 
<description>
<![CDATA[ 
	神马
]]>
</description>
</item>
</channel>
</rss>