Using "ps" command to find high processes

 
Thread Tools Search this Thread
Operating Systems Linux Red Hat Using "ps" command to find high processes
# 1  
Old 06-26-2013
Using "ps" command to find high processes

Sometimes idle process(%98) and load average(98.32) are very high. When its happen I check with "top" command and I kill visible process. After killing machine status already same. How can I check high process using ps command.

I want to find that which processes are using more than %50 CPU or something like that witout top. Thanks for your kindly feedbacks.
# 2  
Old 06-26-2013
ps usually shows the usage as average since the process was started. So spikes etc. are never visible that way. I am not completely sure if there is an option for ps on RedHat Linux to specify an interval.
So instead I would use the batch mode of top for a quick solution, which is -b and parse it's output.
# 3  
Old 06-26-2013
You could look at the current C value from a ps command.
Code:
ps -ef | sort -nb -k4

You might need to check the column it is sorting on (I'm assuming the fourth) This should sort the processes based on what is busy that the moment. It's a little hit-and-miss I agree, but it can help. As a process is actually running, the counter gets incremented. When it is idle or swapped out it slowly reduces. This way, the process scheduler can determine which process is next in line so busy processes get (in theory) pushed out a little if the system is busy.

Of course processes will run as fast as they can, so they may get swapped in & out frequently. The trick is to run this a few times and compare the output. A process with a consistently high C value is busy - and you'll probably see the CPU time clocking up too.


How are you measuring your CPU use? If you just use something like:-
Code:
vmstat 1 1

... then the first (and only) line is the average since last boot. If the server has been very busy for a very long time, then that figure can be skewed. Can you post some sample stats and the commands you are getting them with? The tail end of the output from my ps command may help us to. Make sure you sanitise them if need be. We have plenty of users who start Oracle connections specifying the user/password on the command line for everyone to see.



To check the columns and their order, use:-
Code:
ps -ef | head -1

I hope that this helps,

Robin
Liverpool/Blackburn
UK

Last edited by rbatte1; 06-26-2013 at 11:56 AM.. Reason: Added questions
# 4  
Old 06-27-2013
Thanks for reply. We fix our issue. Application user ran find command more than one times so load average and CPU were high. We can't saw these process on output of top command at that time. Later we killed find process and load average fixed.

I found below commands to show percentage of CPU and RAM process. These are very useful commands. I am going to test when load average is high. I think this shows unfinished find commands or somethings like that.

Code:
# ps axo %mem,comm,pid,euser | sort -nr | head -n 10  // top 10 memory
# ps axo pcpu,comm,pid,euser | sort -nr | head -n 10  // top 10 CPU

This User Gave Thanks to getrue For This Post:
# 5  
Old 06-27-2013
Thanks for posting these useful hints. Always nice to share and someone else may have need of them in future.


Robin
# 6  
Old 06-27-2013
Sorry but that is usually not helping. It is exact the problem I formerly described. You just display the CPU usage of the process, since the process has been started and so with an average. An average over such a long time/interval never gets peaks of any kind. They will be flattened away. I saw Nagios-plugins, that used something like that, but they are useless in terms of alarming threshold of unwanted kinds of peaks for example.

Example:
So when a process runs for 20 hours now, with a CPU usage of 40% and then another hour with 99%, you will get displayed a somewhat constant value which is the average of 21 hours which would be (20*40 + 1*99) / 21 = 42.8%.
If you take this to decide if you kill a process, then good night Smilie

Sorry but, I strongly doubt that your ps helps you at all for this.
Maybe check out the top -b I mentioned.

The C column Robin stated is helpful too, but as he discribed is hard to set into relation to other processes and has to be monitored over some time to get a feeling for what is high and what is low.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

find . -path "*_nobackup*" -prune -iname "*.PDF" \( ! -name "*_nobackup.*" \)

These three finds worked as expected: $ find . -iname "*.PDF" $ find . -iname "*.PDF" \( ! -name "*_nobackup.*" \) $ find . -path "*_nobackup*" -prune -iname "*.PDF" They all returned the match: ./folder/file.pdf :b: This find returned no matches: $ find . -path "*_nobackup*" -prune... (3 Replies)
Discussion started by: wolfv
3 Replies

2. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

3. Shell Programming and Scripting

What is the use of "finger" command & how to use it to kill the online processes ?

Hi there, I am eager to know what exactly is the use of "finger" command & how to use it to kill the online processes ? :b: (1 Reply)
Discussion started by: abhijitpaul0212
1 Replies

4. Shell Programming and Scripting

Find lines with "A" then change "E" to "X" same line

I have a bunch of random character lines like ABCEDFG. I want to find all lines with "A" and then change any "E" to "X" in the same line. ALL lines with "A" will have an "X" somewhere in it. I have tried sed awk and vi editor. I get close, not quite there. I know someone has already solved this... (10 Replies)
Discussion started by: nightwatchrenba
10 Replies

5. Shell Programming and Scripting

Using sed to find text between a "string " and character ","

Hello everyone Sorry I have to add another sed question. I am searching a log file and need only the first 2 occurances of text which comes after (note the space) "string " and before a ",". I have tried sed -n 's/.*string \(*\),.*/\1/p' filewith some, but limited success. This gives out all... (10 Replies)
Discussion started by: haggismn
10 Replies

6. Shell Programming and Scripting

Problem with "find" and "grep" command

I want to list all files/lines which except those which contain the pattern ' /proc/' OR ' /sys/' (mind the leading blank). In a first approach I coded: find / -exec ls -ld {} | grep -v ' /proc/| /sys/' \; > /tmp/list.txt But this doesn't work. I got an error (under Ubuntu): grep:... (5 Replies)
Discussion started by: pstein
5 Replies

7. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

8. Shell Programming and Scripting

Identify high values "˙" in a text file using Unix command

I have high values (such as ˙˙˙˙) in a text file contained in an Unix AIX server. I need to identify all the records which are having these high values and also get the position/column number in the record structure if possible. Is there any Unix command by which this can be done to : 1.... (5 Replies)
Discussion started by: devina
5 Replies

9. UNIX for Advanced & Expert Users

command for recently modified files - "find" command not working

I have three files a.txt , b.txt , c.txt in a directory called my_dir1 .These files were created before two or three months . I have a tar file called my_tar1.tar which contains three files a.txt , b.txt , d.txt . Somebody untarred the my_tar1.tar into my_dir1 directory. So existing two files were... (1 Reply)
Discussion started by: joe.mani
1 Replies

10. Shell Programming and Scripting

"find command" to find the files in the current directories but not in the "subdir"

Dear friends, please tell me how to find the files which are existing in the current directory, but it sholud not search in the sub directories.. it is like this, current directory contains file1, file2, file3, dir1, dir2 and dir1 conatins file4, file5 and dir2 contains file6,... (9 Replies)
Discussion started by: swamymns
9 Replies
Login or Register to Ask a Question