Как к спецификации требования VM на основе исторических данных переходных процессов на Linux?

Мне дали задачу разбить сервисы на один из наших основных VMs (Amazon EC2) и соответствующий дополнительный VMs для удовлетворения сервисным потребностям.

Тип сервисов, с которыми я имею дело, главным образом php cronjobs, которые совпадают с нашим веб-приложением. Они - ресурс и IO тяжелый, таким образом потребность разгрузить их в другом месте.

Эти задания не имеют последовательного PIDs, они вспыхивают в и из существования по мере необходимости, таким образом, что-то как "grepping" для вывода args от PS - единственный способ, которым я могу думать, чтобы хранить эти данные. Другими словами, что последовательно, держит для процесс как так: ps -eo pid,pcpu,%mem,vsize,args | grep "php[ ]/path/to/script.php" Однако некоторые процессы, только выполненные в течение нескольких секунд и затем, умирают.

Цель состоит в том, что я должен разобраться, как к лучшему условию VMs на основе ресурсов, которые на самом деле используют эти процессы, чтобы сэкономить деньги.

Заключить в кавычки: "Оцените использование сервера на основе среднего числа 1 недели"

2
задан 1 December 2014 в 23:19
1 ответ

Честно говоря, этот запрос звучит для меня немного подозрительно . Разве вы не можете просто переместить вещи и посмотреть, какова нагрузка на новую систему? При этом, о вашей реальной проблеме.

Вам необходимо выяснить использование ресурсов процессами (а не всей системой).

Вариант 1:
На самом деле вы можете запустить процессы с помощью какого-либо профилировщика или инструмента трассировки (например, perf и strace ) и получить довольно точные данные. Это может потребовать много работы и, вероятно, закончилось kill для оценки совокупности процессов.

Вариант 2:
Сбор данных о процессах вскоре после их запуска с помощью счетчиков, которые ядро ​​предоставляет для каждого процесса. Их можно найти в разделе / proc / /.... Скорее всего, вы захотите использовать такой инструмент, как pidstat , чтобы собрать эти данные для вас. Например:

[root@ny-kbrandt01 ~]# find / -iname '*' 2>&1 > /dev/null & pidstat -p $! -d -r -u -h 1
[1] 18736
Linux 2.6.32-431.el6.x86_64 (ny-kbrandt01.ds.stackexchange.com)     12/02/2014  _x86_64_    (4 CPU)

#      Time       PID    %usr %system  %guest    %CPU   CPU  minflt/s  majflt/s     VSZ    RSS   %MEM   kB_rd/s   kB_wr/s kB_ccwr/s  Command
 1417486738     18736    1.00    2.00    0.00    3.00     3    360.00      8.00  112268   1236   0.02   4592.00      0.00      0.00  find

#      Time       PID    %usr %system  %guest    %CPU   CPU  minflt/s  majflt/s     VSZ    RSS   %MEM   kB_rd/s   kB_wr/s kB_ccwr/s  Command
 1417486739     18736    1.00    3.00    0.00    4.00     2    241.00      0.00  112268   1240   0.02   4224.00      0.00      0.00  find

#      Time       PID    %usr %system  %guest    %CPU   CPU  minflt/s  majflt/s     VSZ    RSS   %MEM   kB_rd/s   kB_wr/s kB_ccwr/s  Command
 1417486740     18736    1.00    3.00    0.00    4.00     3      0.00      0.00  112268   1240   0.02   5192.00      0.00      0.00  find

#      Time       PID    %usr %system  %guest    %CPU   CPU  minflt/s  majflt/s     VSZ    RSS   %MEM   kB_rd/s   kB_wr/s kB_ccwr/s  Command
 1417486741     18736    1.00    6.00    0.00    7.00     2     46.00      0.00  112400   1284   0.02   5464.00      0.00      0.00  find

#      Time       PID    %usr %system  %guest    %CPU   CPU  minflt/s  majflt/s     VSZ    RSS   %MEM   kB_rd/s   kB_wr/s kB_ccwr/s  Command
 1417486742     18736    2.00    5.00    0.00    7.00     2      0.00      0.00  112268   1240   0.02   6892.00      0.00      0.00  find

#      Time       PID    %usr %system  %guest    %CPU   CPU  minflt/s  majflt/s     VSZ    RSS   %MEM   kB_rd/s   kB_wr/s kB_ccwr/s  Command
 1417486743     18736    3.00    7.00    0.00   10.00     2     62.00      0.00  112268   1244   0.02   8170.00      0.00      0.00  find

$! в bash захватывает pid последнего запущенного задания (в этом примере - find). Таким образом, вы можете обернуть свои задания cron в такой сценарий, записать данные на диск, а затем проанализировать их с помощью excel, R или pandas.

0
ответ дан 3 December 2019 в 14:54

Теги

Похожие вопросы