03-05-2009
Unix Script to find and kill a process with high memory utilization
Hi Unix Gurus i am somewhat new to unix scripting so need your help to
create a script as below.
# This script would find the process consuming memory beyond a certain #limit. if the meemory consumption is more than 100% for a period of 1
# minute for the specific process. the script would kill the process
top -n 1 -u user | grep ABC | awk '{print $1" "$10}' > pid_mem
#Example pid_mem where $1 is process id and $10 is %memory consumed
# file contains the pid and memory % as below example
12258 21.6
12298 51.5
19207 107.5
#read the text for file and determine the pid for process with %mem > 100
# example pid = 19207
#if exist # then iterate for sometime for the same process id to determine if the memory spike comes down for example
count=0
while (count <=5) {
top -n 1 -u user | grep $pid
if ($10 > 100)
sleep 10
if (count =5)
then if ($10 >100)
kill -9 $pid
echo "Memory is more than 100 so process killed" | mailx -r %date -s 'memory > 90%'
abc@z.com
endif
endif
count =count + 1
endif
}
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi Experts, we do have a shell script for Unix Solaris, which will kill all the process manullay, it used to work in my previous env, but now it is throwing this error.. could some one please help me to resolve it
This is how we execute the script (and this is the requirement) ... (2 Replies)
Discussion started by: jonnyvic
2 Replies
2. AIX
Hi ,
we upgarded our AIX from 5.3 to 6.1 and upgraded our xlc compiler from ver 6.0 to 9.0 .
After this upgrade one of our pro*C program is utilizing around 20% of the CPU. Before upgarde its using only 0.2 %.
when i try to debug using the truss command i got the below error.
$... (6 Replies)
Discussion started by: mugunthanvh
6 Replies
3. Shell Programming and Scripting
Hello Team,
I need help in preparing script to check for high cpu utilisation for java process.
I have many java process on my system which consumes high cpu so i have to monitor
it using script.
---------- Post updated 12-10-10 at 02:21 AM ---------- Previous update was 12-09-10 at... (1 Reply)
Discussion started by: coolguyamy
1 Replies
4. UNIX for Dummies Questions & Answers
Hi ,
We need to get the CPU% and Memory utilization of process by process id.
Is there any way to do get them ?
I tried few commands like top -p <PID> ,
but am getting error "Quitting top: pset <PID> doesn't exist"
also i tried with ps -eo option but am getting error "ps: illegal option --... (1 Reply)
Discussion started by: suresh_g
1 Replies
5. Shell Programming and Scripting
Hello,
I'd like to set a cron job that runs a shell script every 30 minutes or so to restart a java based service if the memory gets above 80%. Any advice on how to do this?
Thanks in advance!
- Ryan (19 Replies)
Discussion started by: prometheon123
19 Replies
6. Shell Programming and Scripting
hi,
Am a newbie to unix and wasnt able to write script to my requirement.
I need a shell script, which should find a process by name and kill it. For eg: let the process name be "abc". I have different processes running by this name(abc), so should kill them all.
Condition would be: if... (7 Replies)
Discussion started by: fop4658
7 Replies
7. Emergency UNIX and Linux Support
Can someone please help me with a script that will help in identifying the CPU & memory usage by a process name, rather than a process id.This is to primarily analyze the consumption of resources, for performance tweaking.
G (4 Replies)
Discussion started by: ggayathri
4 Replies
8. Solaris
Hi Experts,
Our servers running Solaris 10 with SAP Application. The memory utilization always >90%, but the process on SAP is too less even nothing.
Why memory utilization on solaris always looks high?
I have statement about memory on solaris, is this true:
Memory in solaris is used for... (4 Replies)
Discussion started by: edydsuranta
4 Replies
9. Solaris
Hello Guys,
I have one Solaris server with high memory utilization >90%. As per checking, below is the output for memory usage.
bash-3.00# ps -efo pmem,uid,pid,ppid,pcpu,comm | sort -r
%MEM UID PID PPID %CPU COMMAND
1.7 29496 20668 1 0.0 /opt/app/iw-home/tools/java/bin/java
1.5... (1 Reply)
Discussion started by: myrpthidesis
1 Replies
10. HP-UX
Hi All,
I am using HP-UX 11i v1(B11.11) servers for my work and its memory (RAM) utilization is consistenly 80% for the last one year. Though I am not facing any issues with this high memory utilization I just want to know the below queries:
1) Is it the default behavior of HP-UX systems?
2)... (20 Replies)
Discussion started by: ssk250
20 Replies
LEARN ABOUT HPUX
serialize
serialize(1) General Commands Manual serialize(1)
NAME
serialize - force target process to run serially with other processes
SYNOPSIS
command [command_args]
pid]
DESCRIPTION
The command is used to force the target process to run serially with other processes also marked by this command. The target process can
be referred to by pid value, or it can be invoked directly on the command. Once a process has been marked by the process stays marked
until process completion unless is reissued on the serialized process with the option. The option causes the pid specified with the option
to return to normal timeshare scheduling algorithms.
This call is used to improve process throughput, since process throughput usually increases for large processes when they are executed
serially instead of allowing each program to run for only a short period of time. By running large processes one at a time, the system
makes more efficient use of the CPU as well as system memory, since each process does not end up constantly faulting in its working set, to
only have the pages stolen when another process starts running. As long as there is enough memory in the system, processes marked by
behave no differently from other processes in the system. However, once memory becomes tight, processes marked by are run one at a time
with the highest priority processes being run first. Each process will run for a finite interval of time before another serialized process
is allowed to run.
Options
supports the following options:
Indicates the process specified by
pid should be returned to timeshare scheduling.
Indicates the
pid of the target process.
If neither option is specified, is invoked on the command line passed in.
RETURN VALUE
returns the following value:
Successful completion.
Invalid
pid specification, nonnumeric entry, or pid specification is that of a special system process.
Could not execute the specified command.
No such process.
Must be root or a member of a group having the
privilege to execute
ERRORS
fails under the following condition and sets (see errno(2)) to the following value:
The pid passed in does not exist.
EXAMPLES
Use to force a database application to run serially with other processes marked for serialization:
Force a currently running process with a pid value of 215 to run serially with other processes marked for serialization:
Return a process previously marked for serialization to normal timeshare scheduling. The pid of the target process for this example is
WARNINGS
The user has no way of forcing an execution order on serialized processes.
AUTHOR
was developed by HP.
SEE ALSO
setprivgrp(1M), getprivgrp(2), serialize(2).
serialize(1)