Linux script to get most expensive processes

MRAB python at mrabarnett.plus.com
Wed Aug 5 00:00:02 CEST 2015


On 2015-08-04 22:30, Cecil Westerhof wrote:
> 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))
> ========================================================================
>
Doesn't that 'for' loop do the same as:

     is_good_platform = current_platform in accepted_platforms

?



More information about the Python-list mailing list