Linux如何查看进程占用内存当前占用CPU或内存最多的K个进程

博客访问: 133786
博文数量: 46
博客积分: 2501
博客等级: 少校
技术积分: 485
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
&&& 前几天在网易博客上发了一篇“linux中限制用户进程CPU占用率”的文章,谈到限制进程CPU占用率的问题,给出了一个shell脚本代码如下:renice +10 `ps aux | awk '{ if ($3 & 0.8 && id -u $1 & 500) print $2}'`&&& 其中用到ps获取进程信息,其实ps中%CPU一列的意义是进程实际占有CPU时间和它存活时间的比值,这个值能反应进程对CPU的消耗,但不能准确反应进程所占CPU时间占整个系统CPU的百分比。而top输出中的%CPU这一列正是进程所占CPU时间占整个系统CPU的百分比,用于限制进程CPU占用率更加合理,同时%MEM一列还反应了进程占用内存的百分比,可以用于限制进程内存占用率。shell脚本代码如下:#!/bin/shPIDS=`top -bn 1 | grep "^ *[1-9]" | awk '{ if($9 & 50 || $10 & 25 && id -u $2 & 500) print $1}'`for PID in $PIDSdo&&&&&&& renice +10 $PID&&&&&&& echo "renice +10 $PID"done&&& 可以将这个脚本放到cron中运行,比如每分钟检查一次,只需以root身份添加crontab项:#crontab -e* * * * * limit.sh&&& 以后每个一分钟就会检查一次,调整占用50%以上CPU或25%内存的进程的nice值,从而使这样的进程优先级变低,被调度的机会减少,同时会向root发邮件提示该进程被调整过。&&& 不过,限制内存使用最好还是用PAM,RedHat可以在/etc/security/limits.conf中设置。
阅读(3357) | 评论(4) | 转发(1) |
上一篇:没有了
相关热门文章
给主人留下些什么吧!~~
“而top输出中的%CPU这一列正是进程所占CPU时间占整个系统CPU的百分比”这个理论依据就是错误的。请仔细参考man top 中关于%cpu的描述。
举例,下述cpu空闲率为85-90% ,而top 的输出进程中有如下占用CPU时间:
SHR S %CPU %MEM
0 m 9736 R
请问您的邮箱或者Q号是?
您好,我对您的文章很感兴趣
我最近正在做一个入侵检测系统,需要对客户机上进程的内存和CPU占用进行监测
请问您的邮箱是?^^
请登录后评论。中国领先的IT技术网站
51CTO旗下网站
Linux Pmap 命令:查看进程用了多少内存
Pmap 提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息。
作者:linux来源:| 15:01
Pmap 提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息。Pmap实际上是一个Sun OS上的命令,linux仅支持其有限的功能。但是它还是对查看完整的进程地址空间很有帮助。我们需要PID或者运行的进程的唯一进程ID来查看,我们可以通过/proc或者常规命令比如top或ps得到它。
语法或用法
#pmap PID&或者&#pmap [options] PID
在输出中它显示全部的地址,kbytes,mode还有mapping。
-x extended显示扩展格式
-d device显示设备格式
-q quiet不显示header/footer行
-V 显示版本信息
单一进程内存状态
[root@info&~]#&pmap&1013&&&1013:&/usr/sbin/sshd&0K&r-x-&/usr/lib/libcrypto.so.1.0.0&K&rw--&/usr/lib/libcrypto.so.1.0.0&K&rw--&[&anon&]&K&r-x-&/lib/libkrb5support.so.0.1&002a2000&4K&rw--&/lib/libkrb5support.so.0.1&002a3000&16K&r-x-&/lib/libplc4.so&002a7000&4K&rw--&/lib/libplc4.so&002ab000&88K&r-x-&/lib/libaudit.so.1.0.0&002c1000&4K&r--&/lib/libaudit.so.1.0.0&002c2000&4K&rw--&/lib/libaudit.so.1.0.0&002cK&r-x-&/lib/libgssapi_krb5.so.2.2&002f9000&4K&rw--&/lib/libgssapi_krb5.so.2.2&002fa000&808K&r-x-&/lib/libkrb5.so.3.3&003c4000&24K&rw--&/lib/libkrb5.so.3.3&003ca000&152K&r-x-&/lib/libk5crypto.so.3.1&003f0000&4K&rw--&/lib/libk5crypto.so.3.1&003f1000&92K&r-x-&/usr/lib/libnssutil3.so&K&r---&/lib/libresolv-2.12.so&K&rw--&/lib/libresolv-2.12.so&K&rw--&[&anon&]&K&r-x-&/lib/ld-2.12.so&K&r---&/lib/ld-2.12.so&K&rw--&/lib/ld-2.12.so&K&r-x-&/lib/libwrap.so.0.7.6&K&rw--&/lib/libwrap.so.0.7.6&K&r-x-&/usr/sbin/sshd&009c1000&8K&rw--&/usr/sbin/sshd&009c3000&20K&rw--&[&anon&]&009e0000&92K&r-x-&/lib/libpthread-2.12.so&009f7000&4K&r---&/lib/libpthread-2.12.so&&total&8232K&
多进程内存状态
我们可以检查多进程内存通过插入多个PID。加入多个PID中间使用空格分隔。
扩展进程内存
[root@info&~]#&pmap&-x&1013&1013:&/usr/sbin/sshd&Address&Kbytes&RSS&Dirty&Mode&Mapping&0&92&0&r-x-&libcrypto.so.1.0.0&&80&80&rw--&libcrypto.so.1.0.0&&8&4&rw--&[&anon&]&&0&0&r-x-&libkrb5support.so.0.1&002a&4&rw--&libkrb5support.so.0.1&002a&0&r-x-&libplc4.so&002a&4&rw--&libplc4.so&002ab000&88&4&0&r-x-&libaudit.so.1.0.0&002c&4&r---&libaudit.so.1.0.0&002c&4&rw--&libaudit.so.1.0.0&002c&0&r-x-&libgssapi_krb5.so.2.2&002f&4&rw--&libgssapi_krb5.so.2.2&002fa000&808&4&0&r-x-&libkrb5.so.3.3&003c&24&rw--&libkrb5.so.3.3&003ca000&152&4&0&r-x-&libk5crypto.so.3.1&003f&4&rw--&libk5crypto.so.3.1&003f&0&r-x-&libnssutil3.so&&12&12&rw--&libnssutil3.so&&0&0&r-x-&libplds4.so&&4&4&rw--&libplds4.so&&---&---&---&---&---&total&kB&8232&-&-&-&
这里的Address,Kbyte,Dirty,RSS,mode还有mapping的说明如下
扩展和设备格式区域
Address: 内存开始地址
Kbytes: 占用内存的字节数(KB)
RSS: 保留内存的字节数(KB)
Dirty: 脏页的字节数(包括共享和私有的)(KB)
Mode: 内存的权限:read、write、execute、shared、private (写时复制)
Mapping: 占用内存的文件、或[anon](分配的内存)、或[stack](堆栈)
Offset: 文件偏移
Device: 设备名 (major:minor)
via: 【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
热点头条热点头条热点
24H热文一周话题本月最赞
讲师:108833人学习过
讲师:112135人学习过
讲师:218473人学习过
精选博文论坛热帖下载排行
C#经典名著!2006年最受读者喜爱的十大技术开发类图书!也是Wrox红皮书中最畅销的品种之一,从第一版开始就名满天下;其第3版被中华读书报...
订阅51CTO邮刊linux下使用iostat查看进程使用资源情况 | 学习笔记}

我要回帖

更多关于 centos 查看内存占用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信