é muito raro separar essas coisas corretamente, geralmente uma tarefa intensiva da CPU mora com uma tarefa pesada de memória perfeitamente bem na mesma caixa. Eu acho que na maioria das vezes as empresas que usam a AWS constroem os dispositivos de carga mais uniformes possíveis, porque você precisa usar uma frota de hardware relativamente homogênea (alguns casos especiais (servidor db)). Eu preferiria tentar descobrir qual é a instância mais barata que você pode executar sua pilha pelo menos 2 vezes (mas 3 é recomendado). Você pode obter mais disponibilidade e menos sobrecarga de desempenho com esse caminho. A ferramenta que você precisa é ps no linux (e em alguns outros sistemas operacionais).
CPU:
ps -eo 'pcpu,%cpu,pid,comm' | grep -v '%CPU PID COMMAND' | sort -n
MEM:
ps -eo 'rss,%mem,pcpu,%cpu,pid,comm' | grep -v '%CPU PID COMMAND' | sort -n
Por favor, dê uma olhada na seção de campos da manpage para mais:
CODE HEADER DESCRIPTION
%cpu %CPU cpu utilization of the process in "##.#" format. Currently, it is the CPU time used divided by the
time the process has been running (cputime/realtime ratio), expressed as a percentage. It will not add
up to 100% unless you are lucky. (alias pcpu).
%mem %MEM ratio of the process's resident set size to the physical memory on the machine, expressed as a
percentage. (alias pmem).
args COMMAND command with all its arguments as a string. Modifications to the arguments may be shown. The output in
this column may contain spaces. A process marked <defunct> is partly dead, waiting to be fully
destroyed by its parent. Sometimes the process args will be unavailable; when this happens, ps will
instead print the executable name in brackets. (alias cmd, command). See also the comm format keyword,
the -f option, and the c option.
When specified last, this column will extend to the edge of the display. If ps can not determine
display width, as when output is redirected (piped) into a file or another command, the output width
is undefined (it may be 80, unlimited, determined by the TERM variable, and so on). The COLUMNS
environment variable or --cols option may be used to exactly determine the width in this case. The w
or -w option may be also be used to adjust width.
blocked BLOCKED mask of the blocked signals, see signal(7). According to the width of the field, a 32 or 64-bit mask
in hexadecimal format is displayed. (alias sig_block, sigmask).
bsdstart START time the command started. If the process was started less than 24 hours ago, the output format is
" HH:MM", else it is "Mmm dd" (where Mmm is the three letters of the month). See also lstart, start,
start_time, and stime.