<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.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://www.jackxiang.com/post//</link>
<title><![CDATA[Linux 如何查看当前占用CPU或内存最多的K个进程， linux下查看最消耗CPU、内存的进程 。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Unix/LinuxC技术]]></category>
<pubDate>Fri, 16 Dec 2016 13:55:21 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	自定义查看rss,也就是实际占用内存量：<br/><textarea name="code" class="php" rows="15" cols="100">
 ps -o &#039;rss,cmd&#039;&#124;head -1;ps -eo&#039;rss,cmd&#039;&#124;grep -E &#039;redis&#92;
-(server&#124;rdb)&#039;
&nbsp;&nbsp;RSS CMD
3400908 /usr/local/redis/bin/redis-server 0.0.0.0:6379&nbsp;&nbsp;
</textarea><br/><br/>背景：有时发现一些进程运行着运行着其CPU的负载就变高了，怎么发现？怎么知道是进程还是线程高了，定位是一个问题，层层定位也是个问题，这对于Window不是个问题，对于Linux就是一个大问题。<br/>定位一下进程PID:<br/>ps auxw&#124;head -1;ps auxw&#124;sort -rn -k3&#124;head -10<br/>USER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID %CPU %MEM&nbsp;&nbsp;&nbsp;&nbsp;VSZ&nbsp;&nbsp; RSS TTY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STAT START&nbsp;&nbsp; TIME COMMAND<br/>root&nbsp;&nbsp;&nbsp;&nbsp; 22381&nbsp;&nbsp;2.1&nbsp;&nbsp;0.5 273728&nbsp;&nbsp;5860 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;&nbsp;&nbsp;&nbsp;20:03&nbsp;&nbsp; 2:22 php WebSocketServer.php<br/><br/>看线程：<br/>[root@a php]# ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu<br/>USER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID&nbsp;&nbsp;PPID&nbsp;&nbsp; TID&nbsp;&nbsp;&nbsp;&nbsp; TIME %CPU CMD<br/>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3851&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;3851 00:00:46&nbsp;&nbsp;0.0 php task.php<br/>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3851&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;3853 00:00:00&nbsp;&nbsp;0.0 php task.php<br/>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3852&nbsp;&nbsp;3851&nbsp;&nbsp;3852 00:00:00&nbsp;&nbsp;0.0 php task.php<br/><br/><br/>1.CPU占用最多的前10个进程：<br/> <br/>ps auxw&#124;head -1;ps auxw&#124;sort -rn -k3&#124;head -10<br/> <br/>2.内存消耗最多的前10个进程<br/> <br/>ps auxw&#124;head -1;ps auxw&#124;sort -rn -k4&#124;head -10<br/> <br/>3.虚拟内存使用最多的前10个进程<br/> <br/>ps auxw&#124;head -1;ps auxw&#124;sort -rn -k5&#124;head -10<br/><br/>来自：http://blog.chinaunix.net/uid-15007890-id-3413584.html<br/><br/>如果是10个进程，K=10，如果是最高的三个，K=3<br/>说明：ps -aux中（a指代all——所有的进程，u指代userid——执行该进程的用户id，x指代显示所有程序，不以终端机来区分）<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps -aux的输出格式如下：<br/>USER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID %CPU %MEM&nbsp;&nbsp;&nbsp;&nbsp;VSZ&nbsp;&nbsp; RSS TTY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STAT START&nbsp;&nbsp; TIME COMMAND<br/>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0.0&nbsp;&nbsp;0.0&nbsp;&nbsp;19352&nbsp;&nbsp;1308 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ss&nbsp;&nbsp; Jul29&nbsp;&nbsp; 0:00 /sbin/init<br/>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;0.0&nbsp;&nbsp;0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp; 0 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;&nbsp;&nbsp;&nbsp;Jul29&nbsp;&nbsp; 0:00 [kthreadd]<br/>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;0.0&nbsp;&nbsp;0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp; 0 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;&nbsp;&nbsp;&nbsp;Jul29&nbsp;&nbsp; 0:11 [migration/0]<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; sort -k4nr中（k代表从第几个位置开始，后面的数字4即是其开始位置，结束位置如果没有，则默认到最后；n指代numberic sort，根据其数值排序；r指代reverse，这里是指反向比较结果，输出时默认从小到大，反向后从大到小。）。本例中，可以看到%MEM在第4个位置，根据%MEM的数值进行由大到小的排序。<br/>&nbsp;&nbsp;&nbsp;&nbsp; head -K（K指代行数，即输出前几位的结果）<br/>&nbsp;&nbsp;&nbsp;&nbsp; &#124;为管道符号，将查询出的结果导到下面的命令中进行下一步的操作。<br/>方法2：top （然后按下M，注意大写）<br/>二、可以使用下面命令查使用CPU最多的K个进程<br/>方法1：<br/>ps -aux &#124; sort -k3nr &#124; head -K<br/><br/>方法2：top （然后按下P，注意大写）<br/><br/>来自：https://zhidao.baidu.com/question/371525749314218684.html<br/><br/>可以用下面的命令将 cpu 占用率高的线程找出来:<br/> ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu<br/><br/>这个命令首先指定参数&#039;H&#039;，显示线程相关的信息，格式输出中包含:user,pid,ppid,tid,time,%cpu,cmd，然后再用%cpu字段进行排序。这样就可以找到占用处理器的线程了。<br/><br/>直接使用 ps Hh -eo pid,tid,pcpu &#124; sort -nk3 &#124;tail 获取对于的进程号和线程号，然后跳转到3.<br/>查看哪个进程线程占用cpu过高； top / ps -aux， 获得进程号<br/>确定哪个线程占用cpu过高，进入进程号的目录：/proc/pid/task， <br/>执行：grep SleepAVG&nbsp;&nbsp;**/status&nbsp;&nbsp;&#124; sort -k2,2 &#124; head，&nbsp;&nbsp;确定cpu占用较高的线程号。<br/>使用kill -3 pid 会打印线程堆栈的情况<br/><br/>来自：http://www.cnblogs.com/lidabo/p/4738113.html<br/><br/>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] Linux 如何查看当前占用CPU或内存最多的K个进程， linux下查看最消耗CPU、内存的进程 。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>