Назад | Перейти на главную страницу

Разделение процессов, ориентированных на память, и процессов, ориентированных на ЦП

Я разрабатываю парня, работающего в компании электронной коммерции. Я запускаю свое приложение для электронной коммерции, созданное с использованием ruby ​​on rails spree commerce. В настоящее время я использую 2 средних экземпляра в производстве. Один - это экземпляр с высокой памятью, который имеет 3,8 ОЗУ и одноядерный ЦП, а другой - экземпляр с высоким ЦП с двухъядерным ЦП. Обычно AWS называет это экземпляром m1.medium и c1.medium соответственно. Мой вопрос, можно ли разделить процессы в зависимости от интенсивности процессора и интенсивности памяти? Таким образом, весь процесс с интенсивным использованием ЦП может выполняться в экземпляре с высоким уровнем ЦП, а весь процесс с интенсивным использованием памяти может выполняться в экземплярах с высоким объемом памяти. Есть ли какой-либо инструмент для идентификации этого процесса. Пожалуйста, сообщите мне. Спасибо

Очень редко правильно разделять эти вещи, обычно задача, интенсивно использующая процессор, живет с задачей, насыщенной памятью, в одном и том же блоке. Я предполагаю, что большую часть времени компании, использующие AWS, создают максимально однородные устройства для загрузки, потому что вам нужно использовать относительно однородный парк оборудования (несколько особых случаев (сервер db)). Я бы предпочел попытаться выяснить, какой самый дешевый экземпляр, который вы можете запустить, как минимум 2 раза (но рекомендуется 3). Таким образом можно добиться большей доступности и меньших накладных расходов на производительность. Вам понадобится ps для Linux (и для некоторых других ОС).

ЦПУ:

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

Пожалуйста, посмотрите раздел полей на странице руководства, чтобы узнать больше:

       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.