Linux top cpu 200

Sysadminium

В этой статье будет показана утилита top, с помощью которой можно наблюдать за активностью процессов в реальном времени.

Утилита top

Утилита top — это консольный диспетчер задач. Он показывает общую информацию о системе и информацию о каждом процессе. Работа этой утилиты выглядит следующим образом:

Работа утилиты top

Вы можете почитать официальный мануал по использованию top здесь, или выполните команду man top .

Это не привычная нам утилита командной строки. Это — интерактивная утилита, то есть она постоянно обновляет данные и с ней можно взаимодействовать с помощью горячих клавиш.

Вывод данной утилиты можно разбить на две части:

  • сверху — шапка. Здесь вы можете посмотреть на общую информацию о системе;
  • ниже — информация по каждому процессу.

Общая информация о системе

Как видно, шапка состоит из пяти строк.

На первой и второй строке показана общая информация о системе:

Утилита top - общая информация о системе

На первой строке показаны следующие поля:

  • текущее время;
  • как долго работает система после последней загрузки;
  • сколько в системе активных пользователей;
  • средняя загрузка системы (load average) — три величины, усредненные за последние 1 и 5 и 15 минут. Чем ниже, тем лучше. Если превышает количество ядер на сервере, то значит сервер перегружен.
  • количество процессов;
  • количество работающих в данный момент процессов;
  • количество спящих процессов;
  • количество остановленных процессов;
  • количество зомби процессов.

На третьей строке показана информация о потреблении ЦПУ:

Утилита top - информация о потреблении ЦПУ

  • us — потребление cpu пользовательскими процессами (top и apache2);
  • sy — потребление cpu системными процессами;
  • ni — потребление cpu пользовательскими процессами, c измененным приоритетом (командой nice или renice);
  • id — простаивание cpu;
  • wa — процент времени, в течение которого процессор простаивал, ожидая завершения операции ввода-вывода. Если слишком высокое (более 10), значит за вашим процессором не поспевает диск, и нужно бы поменять его на более быстрый;
  • hi — процент времени работы аппаратных прерываний. Периферийные устройства могут прерывать работу процессора, чтобы передать какие-то данные;
  • si – процент времени работы программных прерываний. Некоторые приложения могут прерывать работу процессора, чтобы передать какие-то данные;
  • st — процент времени, когда реальный процессор не был доступен виртуальной машине. Будет расти если виртуальной машине выделить больше ядер, чем имеет гипервизор. Этот показатель имеет значение только в системах виртуализации.

Ниже видим информацию по потреблению оперативной памяти (Mem) и подкачки (Swap):

Утилита top - информация о потреблении оперативной памяти

  • total — общее количество памяти;
  • free — количество свободной памяти;
  • used — количество используемой памяти;
  • buff / cache — память выделенная под буфер и дисковый кэш;
  • avail Mem — память которая может быть выделена для запуска новых процессов.
Читайте также:  Включить адаптер wifi kali linux

Информация по каждому процессу

Ниже показана информация по каждому процессу. Информация разбита на следующие колонки:

Информация по процессам

  • PID — номер процесса;
  • USER — имя пользователя под которым работает процесс;
  • PR — приоритет процесса;
  • NI — любезность процесса, чем она выше, тем ниже приоритет;
  • VIR — общее количество памяти, которое способен адресовать процесс в данный момент времени. Включает в себя RES, SHR, прикреплённые файлы (например — файлы библиотек). Также включает в себя память, которая была выделена, но не использована;
  • RES — количество физической памяти, которую использует процесс;
  • SHR — количество разделяемой памяти, которую использует процесс. Разделяемая память потенциально может быть разделена с другими процессами;
  • S — состояние процесса (я их уже описывал здесь):
    • S (sleeping) — спящий;
    • R (running) — в работе;
    • Z (zombie) — зомби;
    • D (uninterruptible sleep) — ожидает дискового ввода/вывода, и не принимает никакие сигналы;
    • T (stopped by job control signal) — остановлен специальным сигналом;
    • t (stopped by debugger during trace) — остановлен в процессе дебага;
    • I (Idle) — бездействующий поток ядра.
  • %CPU — использование cpu в процентах;
  • %MEM — RES в процентах от общего количества памяти;
  • TIME+ — сколько времени с этим процессом работал ЦПУ, с точностью до сотых долей секунды;
  • COMMAND — с помощью какой команды запустили процесс.

Опции команды top

Теперь пробежимся по основным опциям, с которыми можно запускать top.

Количество итераций

Опция -n укажет через сколько повторений нужно завершить работу top. По умолчанию чтобы выйти из top нужно нажать клавишу q. Следующая команда выйдет из top через 10 повторений:

Процессы определённого пользователя

Можно заставить top отображать процессы определенного пользователя с помощью опции -u:

top - процессы пользователя www-data

Горячие клавиши top

Режим цветности

Если во время работы top нажать клавишу z, это переключит режим цветности (белое на чёрном или черное на белом):

top - изменение режима цветности

Больше информации о команде (поле COMMAND)

Если во время работы top нажать клавишу с, это заставит выводить больше информации о команде:

top - абсолютный путь команды с опциями

Сортировка процессов

По умолчанию процессы отсортированы по колонке %CPU. Те что потребляют больше всего находятся сверху.

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

top - сортировка по колонке USER

Клавишами «» или «>«, можно выбрать столбец, по которому нужно сортировать процессы.

А если нажать клавишу R, то сортировка пойдет в обратном порядке.

Клавиша M отсортирует процессы по потреблению памяти (%MEM).

Завершение процессов

Из top можно завершить процесс, для этого нужно нажать клавишу k, далее ввести pid процесса, который хотим завершить и нажать Enter.

По умолчанию процессу посылается сигнал 15 (sigterm). Но завершать чужие процессы можно только запустив top под пользователем root, или с помощью команды sudo.

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

Добавление полей

По умолчанию отображаются далеко не все поля. Чтобы добавить поля нажмите клавишу F. Затем, с помощью клавиш вверх и вниз, вы можете перемещаться по полям. Чтобы добавить выбранное поле нажмите клавишу d или пробел. А чтобы выбрать поле для сортировки выделите его и нажмите s. Ну и чтобы вернуться в режим просмотра, нажмите q.

Читайте также:  Linux virtual server lvs

top - добавление полей

Итог

Мы разобрали утилиту top для мониторинга за потреблением ресурсов Linux.

Узнали следующие опции top:

  • -n — завершить top после нескольких итераций;
  • -u — показывать процессы определенного пользователя.

Узнали горячие клавиши top:

  • z — изменить цветность;
  • c — более полная команда запуска;
  • — сортировать по предыдущему столбцу;
  • > — сортировать по следующему столбцу;
  • R — обратить сортировку;
  • M — сортировать по rss;
  • x — выделить колонку по которой ведётся сортировка;
  • k — завершить процесс;
  • F — настроить поля и сортировку.

Источник

Top c — CPU usage >200% Will it Crash?

I would appreciate some advice from your experience. My main concern is I really REALLY do not want to cause the computer server to crash. The question is, I am running a program on a Linux computer server (super-computer? Maybe.). The program I am running is able to specify the of thread which can be used. I specified I would like to use 15 thread. The computer server I am using has about 20+ processor (Intel Xeon CPU with 6 core). From top c, I saw that from running my program I am using

Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu1 : 95.7%us, 0.3%sy, 0.0%ni, 0.0%id, 3.6%wa, 0.0%hi, 0.3%si, 0.0%st Cpu2 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu4 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu7 : 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu8 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu9 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu10 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu11 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu12 : 96.0%us, 0.7%sy, 0.0%ni, 0.0%id, 3.3%wa, 0.0%hi, 0.0%si, 0.0%st Cpu13 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu14 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu15 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu16 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu17 : 0.0%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st Cpu18 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu19 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu20 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st 

The % of CPU used shifts between different CPU, for example sometimes cpu20 gets 90% and cpu1 returns to 0%. Is there a chance the computer server might crash because I am using 190% of CPU?

Источник

Why is the CPU usage reported by top in Linux over 100%?

I’ve seen the CPU usage go over 100%. How is this possible? Is it because I have four CPU cores, so 100% isn’t really the max? Also, when a program does this, what else can I do in top besides using the k command?

4 Answers 4

AFAIK top shows the CPU usage in relation to the power of 1 core, i.e if your task takes up 200% CPU then it’s occupying two cores.

 k: %CPU -- CPU usage The task's share of the elapsed CPU time since the last screen update, expressed as a percentage of total CPU time. In a true SMP environment, if 'Irix mode' is Off, top will operate in number of CPUs. You toggle 'Irix/Solaris' modes with the 'I' interactive com- mand. 

So, yes, top shows CPU percentage PER core, but you can toggle this behaviour be pressing ‘I’.

Yes, if a process in top goes over 100% or top shows >1.0 in load, this means that more than one core is occupied, or the system is oversubscribed. Oversubscription means that there is more work to be put onto the core than is phsyically manageble.

In top you can also sort the view by different parameters (like used memory). If you want to look what you can sort by, refer to the help or man page for top .

You can also see all kind of information about the processes themselves, like Virtual or resident memory used by the process and if it’s sleeping or currently running, as well as cpu time used.

The load average in the top, if needed, can also be viewed by the uptime command.

If hyper threading is enabled, the CPU usage shown in top is the usage per CPU, not core. For example, on a server with 24 cores and 2 threads per core (total of 48 CPUs), the usage could go up to 4800. Running lscpu -p provide a decent print of the cores and CPUs:

$ lscpu -p # The following is the parsable format, which can be fed to other # programs. Each different item in every column has an unique ID # starting from zero. # CPU,Core,Socket,Node,,L1d,L1i,L2,L3 0,0,0,0,,0,0,0,0 1,1,0,0,,1,1,1,0 . . . 46,22,1,1,,22,22,22,1 47,23,1,1,,23,23,23,1 

I did the following steps to verify the above answer:

$ while true; do x="reee";x="asdasd";z="asdasdasd;"; done 
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 14791 hpaknia 20 0 129156 5188 1856 R 99.7 0.0 28:08.54 bash 
  1. Then in the same terminal of top, I pressed 1 to see the per CPU usage. Only CPU thread 3 out of 48 CPUs is using 100% CPU:
%Cpu3 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st 

In my case each core has 2 CPU threads. If top percentage showed the per core usage, the value must have been 50% but it’s not. Because top shows per CPU thread usage.

Источник

Оцените статью
Adblock
detector