内存监控脚本,怎么写?

恨天低 2013-07-01 09:47:37
N个进程在跑,发现一个A进程内存涨到60%以上,杀掉A进程。

这个自动监控脚本要怎么写?高人指点一下!
...全文
201 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
恨天低 2013-07-03
  • 打赏
  • 举报
回复
引用 4 楼 adlay 的回复:
为什么不找找 A 进程占用那么多内存的原因呢? 如果是第三方的软件的, 找个替代品撒. contab 是不能定到秒, 不过可以定到分以后用多个 sleep(xx) && script_name 来运行.
ffmpeg工具产生的内存泄露。哎,是有点懒了,如果是自己写的程序内存泄露了,必刨根问底。
www_adintr_com 2013-07-02
  • 打赏
  • 举报
回复
为什么不找找 A 进程占用那么多内存的原因呢? 如果是第三方的软件的, 找个替代品撒. contab 是不能定到秒, 不过可以定到分以后用多个 sleep(xx) && script_name 来运行.
恨天低 2013-07-02
  • 打赏
  • 举报
回复
昨天自己写了个,比较蠢的方法: kill.sh
while :
do
    sleep 5;
    ps aux | grep -v PID | sort -rn -k +4 | head -1 | awk '{print $2, $4}' | xargs /home/applications//kill.pl;
done
kill.pl
#! /usr/bin/perl

use Log::Handler;

my $pid   = $ARGV[0];
my $mem   = $ARGV[1];

my $log = Log::Handler->create_logger( "kill" );
$log->add(
    file => {
        filename        => "/home/applications/record_upload_workspace/log/kill.log",
        maxlevel        => "debug",
        minlevel        => "emerg",
        timeformat      => "%Y-%m-%d %H:%M:%S",
        message_layout  => "%T [%p] %L: %m",
        }
);

$log->info("MaxUseMem: [Pid:$pid, UseMem:$mem]");

if ( $mem >= 20.0 )
{
    $log->debug("Kill -9 $pid");
    system("kill -9 $pid");
}
Linux下crontab貌似不能定时到“每隔多少秒执行一次”?
赵4老师 2013-07-01
  • 打赏
  • 举报
回复
C:\>tasklist /? TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH] 描述: 该工具显示在本地或远程机器上当前运行的进程列表。 参数列表: /S system 指定连接到的远程系统。 /U [domain\]user 指定应该在哪个用户上下文执行这个命令。 /P [password] 为提供的用户上下文指定密码。如果忽略,提示 输入。 /M [module] 列出当前使用所给 exe/dll 名称的所有任务。 如果没有指定模块名称,显示所有加载的模块。 /SVC 显示每个进程中主持的服务。 /V 显示详述任务信息。 /FI filter 显示一系列符合筛选器指定的标准的任务。 /FO format 指定输出格式。 有效值: "TABLE"、"LIST"、"CSV"。 /NH 指定列标题不应该在输出中显示。 只对 "TABLE" 和 "CSV" 格式有效。 /? 显示帮助消息。 筛选器: 筛选器名 有效操作符 有效值 ----------- --------------- -------------------------- STATUS eq, ne RUNNING | NOT RESPONDING | UNKNOWN IMAGENAME eq, ne 映像名称 PID eq, ne, gt, lt, ge, le PID 值 SESSION eq, ne, gt, lt, ge, le 会话编号 SESSIONNAME eq, ne 会话名 CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为 hh:mm:ss。 hh - 时, mm - 分,ss - 秒 MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量,单位为 KB USERNAME eq, ne 用户名,格式为 [domain\]user SERVICES eq, ne 服务名称 WINDOWTITLE eq, ne 窗口标题 MODULES eq, ne DLL 名称 说明: 当查询远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。 示例: TASKLIST TASKLIST /M TASKLIST /V /FO CSV TASKLIST /SVC /FO LIST TASKLIST /M wbem* TASKLIST /S system /FO LIST TASKLIST /S system /U domain\username /FO CSV /NH TASKLIST /S system /U username /P password /FO TABLE /NH TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running" C:\>taskkill /? TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F] 描述: 使用该工具按照进程 ID (PID) 或映像名称终止任务。 参数列表: /S system 指定要连接到的远程系统。 /U [domain\]user 指定应该在哪个用户上下文执行这个命令。 /P [password] 为提供的用户上下文指定密码。如果忽略,提示 输入。 /FI filter 应用筛选器以选择一组任务。 允许使用 "*"。例如,映像名称 eq acme* /PID processid 指定要终止的进程的 PID。 使用 TaskList 取得 PID。 /IM imagename 指定要终止的进程的映像名称。通配符 '*'可用来 指定所有任务或映像名称。 /T 终止指定的进程和由它启用的子进程。 /F 指定强制终止进程。 /? 显示帮助消息。 筛选器: 筛选器名 有效运算符 有效值 ----------- --------------- ------------------------- STATUS eq, ne RUNNING | NOT RESPONDING | UNKNOWN IMAGENAME eq, ne 映像名称 PID eq, ne, gt, lt, ge, le PID 值 SESSION eq, ne, gt, lt, ge, le 会话编号。 CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为 hh:mm:ss。 hh - 时, mm - 分,ss - 秒 MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量,单位为 KB USERNAME eq, ne 用户名,格式为 [domain\]user MODULES eq, ne DLL 名称 SERVICES eq, ne 服务名称 WINDOWTITLE eq, ne 窗口标题 说明 ---- 1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。 2) 远程进程总是要强行 (/F) 终止。 3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。 例如: TASKKILL /IM notepad.exe TASKKILL /PID 1230 /PID 1241 /PID 1253 /T TASKKILL /F /IM cmd.exe /T TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*" TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM * TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*" C:\>
图灵狗 2013-07-01
  • 打赏
  • 举报
回复
参考http://huangrs.blog.51cto.com/2677571/781312

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧