Separação de processo orientado a memória e processo orientado por CPU

1

Estou desenvolvendo um cara trabalhando para uma empresa de e-commerce. Estou executando meu aplicativo de e-commerce construído usando o comércio ruby on spree. Atualmente estou executando 2 instâncias médias na produção. Uma é uma instância de memória alta que possui 3.8 RAM e CPU de núcleo único e outra é uma alta instância de CPU que possui CPU Dual Core. Basicamente, o AWS chama de instância m1.medium e c1.medium, respectivamente. Minha pergunta é possível separar os processos de acordo com a CPU intensa e memória intensa? De modo que todo o processo intenso cpu pode ser executado em alta instância cpu e todo o processo intenso de memória pode ser feito para rodar nas instâncias de alta memória. Existe alguma ferramenta disponível para identificar esses processos? Por favor, me dê um pouco de atenção. Obrigado

    
por Jeevan Dongre 07.10.2012 / 07:04

1 resposta

3

é 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.
    
por 07.10.2012 / 07:31