Linux script to get most expensive processes

Cecil Westerhof Cecil at decebal.nl
Tue Aug 4 23:30:48 CEST 2015


On Tuesday  4 Aug 2015 22:52 CEST, Emile van Sebille wrote:

> On 8/4/2015 1:19 PM, Cecil Westerhof wrote:
>> Under Linux I like to get the most expensive processes. The two
>> most useful commands are: ps -eo pid,user,pcpu,args --sort=-pcpu
>> and: ps -eo pid,user,pcpu,args --sort=-vsize
>>
>> In my case I am only interested in the seven most expensive
>> processes. For this I wrote the following script.
> <snip>
>> Is this a reasonable way to do this? Getting the parameter is done
>> quit simple, but I did not think fancy was necessary here.
>
>
> My platform shows as linux2 and it worked fine for me when checking
> for that.

I heard that that was possible also, but none of my systems gives
this. I should change it. I was also thinking about posix systems, but
the Linux ps does more as others, so I did not do that.

I amended the code to work with linux and linux2:
========================================================================
accepted_params     = {
    'pcpu',
    'rss',
    'size',
    'time',
    'vsize',
}
accepted_platforms  = {
    'linux',
    'linux2',
}
current_platform    = sys.platform
max_line_length     = 200
no_of_lines         = 8                     # One extra for the heading

is_good_platform    = False
for platform in accepted_platforms:
    if platform == current_platform:
        is_good_platform = True
        break
if not is_good_platform:
    raise Exception('Got an incompatiple platform: {0}'.
                    format(current_platform))
========================================================================

-- 
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof


More information about the Python-list mailing list