Контроль использования ЦП и памяти для одного процесса

Мне нужно контролировать использование ЦП и памяти для одного процесса на сервере AIX. Программа работает 3 раза в день. Мне нужно найти способ захвата статистики через определенные промежутки времени, скажем каждые 10 мин. Кто-то предложил использовать CRONTAB, но я не уверен, как сместить сценарий вместе. Пожалуйста помоги!

Я предлагаю собирать общую статистику системы с помощью nmon и анализировать их с помощью nmon-analyzer или nmon2rrd – даже если это только для одного процесса. Что-то, с чем можно соотнести, полезно. svmon также может использоваться для мониторинга использования памяти.

Вот несколько хороших статей о процессе и системном мониторинге для AIX:

  • Оптимизация производительности памяти AIX 7: Часть 2 – Мониторинг использования памяти (developerWorks);
  • Анализ использования памяти в AIX (UNIX.COM);
  • Практическое руководство по AIX: Память (AIX для системных администраторов);
  • AIX Performance Tools (developerWorks Power Community);

Я предполагаю, что aix работает как gnu / linux. Создайте файл в /etc/cron.d/. Назовем его «monitor», изменим часть имени процесса grep processname на ваше имя процесса

 # +---------------- minute (0 - 59) # | +------------- hour (0 - 23) # | | +---------- day of month (1 - 31) # | | | +------- month (1 - 12) # | | | | +---- day of week (0 - 6) (Sunday=0 or 7) # | | | | | # * * * * * user command to be executed */10 * * * * root ps aux | grep processname >>/var/log/mylog.log 

добавьте следующую строку в /var/log/mylog.log.

 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 

если у вас нет root, вы можете запустить crontab -e, поскольку пользователь опускает корень имени пользователя перед ps aux, и вместо перенаправления вывода на / var / log / вы должны использовать $ HOME /.

Я просто даю идею, а не полный сценарий. Вам необходимо изменить в соответствии с вашими требованиями.

Для мониторинга использования ЦП и использования памяти используется команда ps . Я считаю, что флаги -C и -o поддерживаются на сервере AIX . Тем не менее, вы можете найти соответствующий синтаксис от man ps на вашем компьютере.

 ps -C program_name -o %cpu,%mem 

Теперь, чтобы заставить его выполнять каждые 10 минут 6 раз на сервере, я бы поставил ниже скрипт. Я предполагаю, что вам нужно отслеживать один раз каждые 10 минут в течение часа или около того.

 i=6 filename=$(echo memory_monitoring_`date +%F_%T`) touch $filename while [ $i -ge 1 ] do sleep 600 #sleep for 10 minutes. ps -C program_name -o %cpu,%mem >> "$filename" i=$((i-1)) done 

Таким образом, в основном с помощью вышеупомянутого скрипта я создаю новый файл каждый раз, когда мне нужно контролировать память. После этого я запускаю скрипт в течение 1 часа, поэтому вы видите, что i установлен на 6. sleep 600 предназначен для наблюдения за памятью каждые 10 минут.

Если вам нужна оптимизация, вы можете добавить mail команду для отправки по электронной почте созданного файла, чтобы вы могли использовать его для целей аудита.

Настройка задания cron довольно прямолинейна, и вы можете найти множество онлайн-руководств, которые могли бы помочь вам.