要求每秒钟输出gis的进程所使用的内存数量,方法由于/etc/crontab这个时能对每分钟进行输出,所有职能把查询命令以进程的形式挂载到系统后台一直运行。
1,取的GIS使用的pid
ps -ef |grep NoAppLoader
查询结果为:(如果服务不重启pid是306 782 784 32767)
2,top -p <PID> -d 1 -b | grep <PID>
创建一名为mem.sql的可以执行文件。输入
#!/bin/bash
top -p 306 -d 1 -b | grep 306 > log1.txt 2>&1 & top -p 782 -d 1 -b | grep 782 > log2.txt 2>&1 & top -p 784 -d 1 -b | grep 784 > log3.txt 2>&1 & top -p 32767 -d 1 -b | grep 32767 > log4.txt 2>&1
3,此命令添加后台运行(终端可以断开)
nohup ./mem.sql &
4,杀掉此后台进程
ps axu |grep top
查看pid后
kill -9 <pid>
784 gis43200 16 0 2397m 901m 3156 S 0.0 11.1 39:18.20 java
784 gis43200 16 0 2397m 901m 3156 S 0.0 11.1 39:18.20 java
784 gis43200 16 0 2397m 901m 3156 S 0.0 11.1 39:18.20 java
901m为此进程使用数量(未释放内存),使用内存百分比为11.1%(用总内存程序11.1%这个更准确些)
需要注意的是top -p <PID> -d 1 -b | grep <PID> 和top命令之间用 & 转义字符
以下是更好的截取某一进程在,某一时刻进行动态使用的请款,输出每秒,进程24576使用的内存,cpu,及执行时间情况。
#!/bin/sh
top -p 24576 -d 1 -b | awk ‘$2=="-"{print $3}$1==24576‘ >> log.txt &
时间每5秒一次,cpu,内存每1秒一次
top -p 24576 -d 1 -b | awk ‘$2=="-"&&n++%5==0{print $3}$1==24576‘
2010-01-26
本文出自 “五片棱角” 博客,请务必保留此出处http://hi289.blog.51cto.com/4513812/1764632
原文地址:http://hi289.blog.51cto.com/4513812/1764632