nixp.ru v3.0

26 мая 2017,
пятница,
19:57:20 MSK

DevOps с компанией «Флант»
decvar написал 22 июля 2005 года в 12:07 (291 просмотр) Ведет себя как мужчина; открыл 111 тему в форуме, оставил 1838 комментариев на сайте.

Задача:

необходимо командой в одну строчку, можно с ; и > < | выяснить скока памяти поедате указанный по имени или по пиду процесс. Видимо надо парсить что-то в /proc

Соответствеено надо 4 разные команды

1)память для некого пида

2)память для некого имени

3)cpu для пида

4)cpu для имени

Вроде как аналог top тока без изменения значений.

Предложения как это реализвать?

Пользуем bash и любые штатные утилиты в RHEL

Genie

Гы…. :))

По pid-у:

$ p=7201;top -bn1|awk '/^ *'$p' +/{print "Size: "$5"  RSS: "$6"  Share: "$7}'
Size: 660  RSS: 608  Share: 256

А вот что касается «по имени», то тут проблема возникает — по какому выводить? по всем?

ну и кроме того, надо определиться с версией: довольно большие различия у программ от версии дистрибутива. а так жу у bsd/linux…

и т.д…

decvar

по имени образа. того, что в ps aux видно

sas

Variant:

export q=7721; ps -aucx | awk 'BEGIN { q=«’»$q«’»; is_pid = (q ~ /^[0-9]+$/) } { if ( is_pid && $2 == q ) print «pid=» q »; mem%=» $4 »; vsz=» $5 »; rss=» $6 «;»; else if ($NF ~ q) print «command=» q »; mem%=» $4 »; vsz=» $5 »; rss=» $6 «;» }'

pid=7721; mem%=0.8; vsz=257540; rss=13096;

This huge variant can understand pid or command name request automatically

Possible improvements:

1) add function for results printing

2) second parameter to choose memory or processor info should be obtained

etc

Also it may be better to use awk’s parameters (depends on awk)

Good luck

— sas

Longobard

cat /proc/’pidof blAbla`/statm или как там его, вроде там статистика по использованию памяти. Зачем же создавать костыль с парсингом вывода ps?

sas
LONGOBARD
cat /proc/’pidof blAbla`/statm или как там его, вроде там статистика по использованию памяти. Зачем же создавать костыль с парсингом вывода ps?

A zatem, chto proc fs is not standard (layout and content can be changed) across even the same platform.

ps implementation unlike it working like abstraction layer and more portable.

So proc fs should be used very rarely.