Ad Widget

Collapse

PROC.MEM & PID

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Scorpey
    Member
    • Oct 2010
    • 97

    #1

    PROC.MEM & PID

    Доброго дня.

    Что то с ходу не соображу как в элемент данных PROC.MEM подсунуть PID что бы получить
    объем памяти процесса.

    В мане есть как получить память пользователя или имя процесса, но мне такое не подходит мне по PID нужно фильтрануться.
  • Scorpey
    Member
    • Oct 2010
    • 97

    #2
    Originally posted by cyber
    Not possible..
    Шо! Опять скрипт колхозить?

    Comment

    • Scorpey
      Member
      • Oct 2010
      • 97

      #3
      Originally posted by cyber
      Da... Sorry for answering in english, but I have no cyrillic keyboard and my russian is a bit rusty.. Reading and understanding is much better that composing usable sentences ..
      But proc.mem just does not take PID... Shortcoming.. Even as it in background looks up all processes pids by name and then gets data from /proc/<pid>/status (https://www.zabbix.com/documentation...em_num_notes?s[]=VmSize)
      I suppose UserParameter can be done for same... basically "grep VmSize /proc/<pid>/status and then some processing...
      Да, я понимаю.
      Могу сказать, что как только чуть в сторону от стандартной задачи так какой то хитрый скрипт приходится колхозить. :-(


      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #4
        Честно говоря, я пока с трудом могу себе представить ситуацию, когда вы не знаете имя процесса, но при этом точно знаете его PID (как правило, динамический и при каждом рестарте операционки либо данного процесса - другой). Утолите любопытство, расскажите, пожалуйста, что ж у вас за задача-то такая, что требуется мониторить процесс именно по его PID-у.

        Comment


        • Scorpey
          Scorpey commented
          Editing a comment
          Представим себе DOCKER у него все процессы с именем DOCKER но PID разные. У некоторых контейнеров CMD одинаковые бывают. Поэтому из docker берем PID и видимо так: cat /proc/{$PID}/status | grep VmSize | awk '{print $2}' придется делать что бы память забрать.
      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #5
        Представим себе DOCKER у него все процессы с именем DOCKER но PID разные. У некоторых контейнеров CMD одинаковые бывают. Поэтому из docker берем PID и видимо так: cat /proc/{$PID}/status | grep VmSize | awk '{print $2}' придется делать что бы память забрать.
        Интересный сценарий. Но откуда вы берёте PID? Как вы различаете, который PID вам нужен?
        Боюсь, что штатными средствами такая задача не решается, и в любом случае придётся что-то городить: либо делать какой-то дискаверинг, либо писать свои скрипты; и в любом случае остаётся подзадача нахождения правильного PID-а процесса.

        Comment

        • Scorpey
          Member
          • Oct 2010
          • 97

          #6
          Originally posted by Kos
          Интересный сценарий. Но откуда вы берёте PID? Как вы различаете, который PID вам нужен?
          Боюсь, что штатными средствами такая задача не решается, и в любом случае придётся что-то городить: либо делать какой-то дискаверинг, либо писать свои скрипты; и в любом случае остаётся подзадача нахождения правильного PID-а процесса.
          Например так:
          docker ps | grep ИМЯ-КОНТЕЙНЕРА | awk '{print $1}' | xargs docker top | awk '{print $2}' | grep -vE PID

          Comment

          Working...