Перейти до основного вмісту

Системна панель.

Панель «Система» об’єднує лічильники процесора Linux, показники середнього навантаження, інформацію про використання пам’яті, телеметрію пам’яті SiMa MLA і EV74, використання безперервної пам’яті (CMA) і періодичні знімки процесів.

Поля процесора​

ПолеДжерело та обчислення.
Використання процесора.Різниця сукупного часу роботи процесора /proc/stat між системними вибірками. Відсоток завантаження становить 1 - idle_delta / total_delta; час простою включає поля «простій» і «очікування вводу/виводу».
Використання ядер процесораВиконується однаковий розрахунок дельти для кожного рядка cpuN у /proc/stat.
Завантаження процесора за 1 хвилину.Перше значення в /proc/loadavg; показник середнього навантаження в Linux, що обчислюється експоненційним усередненням кількості процесів, які виконуються, і процесів, що перебувають у стані неперервного очікування.
Відсоток завантаження процесора за 1 хвилину.load1 / logical_core_count × 100. Це значення використовується для нормалізації даних для відображення і може перевищувати 100%.

Показник завантаження процесора відображає час, протягом якого процесор був задіяний у поточному інтервалі вимірювання. Завантаження відображає кількість завдань, що перебувають в черзі або очікують виконання протягом приблизно однієї хвилини. Високе завантаження при низькому використанні процесора може свідчити про затримки в операціях введення-виведення або про блокування завдань, а не про повне завантаження обчислювальних ресурсів.

Перше вимірювання завантаження процесора не має попередніх базових значень і недоступне.

Панелі для окремих ядер процесора та загальні панелі для процесора.​

Діаграми, що відображають навантаження на кожне ядро, показують найновіші дані про використання ресурсів cpuN. За допомогою опцій «Вгору/Вниз» можна вибрати потрібне ядро.

Поля таблиці процесів:

ПолеЗначення.
Ідентифікатор процесуІдентифікатор процесу Linux.
Центральний процесорОстанній зафіксований номер процесора в /proc/<pid>/stat; це місце, де процес востаннє був зафіксований, а не гарантія його прив’язки до певного процесора.
% завантаження процесораОбчислюється різниця між використанням процесора користувачем і системою, поділена на загальний час. Приблизно 100% відображає повне використання одного логічного процесора. Багатопотокові процеси можуть перевищувати 100%.
RSS МБКількість сторінок, що використовуються процесом, з /proc/<pid>/stat, помножена на розмір сторінки системи та перетворена в МіБ.
Ім’яОтримайте назву команди процесу з /proc/<pid>/stat.

Дані оновлюються кожні п’ять секунд. Sentinel зберігає лише 64 найважливіші процеси в усьому системі, відсортовані за показниками завантаження процесора (CPU), а потім за обсягом оперативної пам’яті (RSS). Якщо для вибраного ядра немає жодного збереженого процесу, інтерфейс користувача перемикається на відображення загального списку збережених процесів. Відповідно, ця панель призначена для діагностики, а не для надання вичерпного звіту про всі процеси.

Пам’ять Linux.​

used_bytes = MemTotal - MemAvailable
used_pct = used_bytes / MemTotal × 100

MemAvailable отримується з /proc/meminfo і показує обсяг пам’яті, доступної для нових завдань без використання підкачки. Це означає, що кеш, який Linux може звільнити, не розглядається автоматично як недоступна пам’ять.

Значення MB, що відображається, обчислюється з використанням 1024 × 1024 байтів, тому технічно це MiB, хоча в інтерфейсі користувача вказано MB.

Пам’ять MLA​

На Platform 3.0 наявність /dev/dma_heap/simaai,dms вмикає телеметрію DMA-BUF. Sentinel зчитує /sys/kernel/debug/dma_buf/bufinfo та підсумовує об’єкти, експортовані купами MLA (mla або simaai,dms), а також буфери спільного пулу, які використовує лише MLA (наприклад, вхідні дані, які готує CPU без етапу EV74, або виділення MLA, що переповнили купу MLA і потрапили в CMA), рахуючи кожен inode DMA-BUF один раз. Буфер спільного пулу, який також використовує EV74 (cvu), не є пам’яттю MLA: попередньо оброблені вхідні дані, які EV74 записує для MLA, рахуються як пам’ять EV74. Тому жоден буфер не потрапляє в обидва підсумки, і пам’ять EV74 та пам’ять MLA можна додавати.

У попередніх випусках без цієї купи Sentinel зчитує /dev/simaai-mem, визначає Total allocated size:, аналізує наступну шістнадцяткову кількість байтів і перетворює її в MiB.

Це пам’ять, наразі виділена для MLA. Це не:

  • MLA обчислює показник використання обчислювальних ресурсів.
  • модель FPS або затримка;
  • загальний обсяг фізичної оперативної пам’яті DRAM, що використовується;
  • вимірювання потужності MLA 0.68V.

Якщо вибраний інтерфейс неможливо прочитати або його текстовий формат не розпізнано, значення буде недоступним, а не нульовим. Після вибору телеметрії DMA-BUF Sentinel не переходить до застарілого розподільника.

Пам’ять EV74​

На Platform 3.0 EV74 (CVU) працює з пам’яттю DMA-BUF. Поки EV74 використовує буфер, ядро вказує пристрій cvu серед під’єднаних пристроїв цього буфера у /sys/kernel/debug/dma_buf/bufinfo. Sentinel підсумовує об’єкти, під’єднані до cvu або до пристрою з назвою <address>.cvu, і рахує кожен inode DMA-BUF лише один раз. Буфер належить апаратному блоку, який його створив, тому два види об’єктів не враховуються: експортовані купами MLA (mla або simaai,dms), які є пам’яттю MLA, і кадри, які відеодекодер або ISP камери створили для читання EV74. Sentinel розпізнає ці джерела за вузлами дерева пристроїв у /sys/bus/platform/devices: у відеодекодера al,ip-type починається з dec, а compatible ISP камери містить arm,isp.

ev74_mem_allocated_mb = sum of sizes of unique inodes attached to cvu,
excluding those exported by an MLA heap
and those also attached to a video decoder or camera ISP

Кожен клієнт EV74 під’єднується до буфера окремо, тому один буфер часто містить cvu кілька разів; він однаково рахується один раз. Sentinel читає bufinfo один раз за вибірку для пам’яті MLA і EV74. Вкладка System будує графік цього значення, а вкладка Compare Runs може накладати EV74 memory для вибраних запусків.

Зважайте на такі обмеження:

  • Буфер спільного пулу, який спільно використовують EV74 і MLA, рахується лише в пам’яті EV74, незалежно від того, хто з них у нього записав. У перевірених конвеєрах це попередньо оброблені тензори, які EV74 передає моделі. Пам’ять EV74 і пам’ять MLA ніколи не містять той самий буфер, тому їхня сума дорівнює пам’яті, яку тримають обидва.
  • Кадри, створені відеодекодером або ISP камери, не входять до жодного показника, навіть коли EV74 їх читає. Для одного потоку RTSP це 12 декодованих зображень (6,75 MiB при 640x512). Робоча пам’ять самого декодера також не враховується.
  • Буфер рахується після того, як EV74 його використав. Тензор, виділений для EV74, який EV74 ще не обробив, є пам’яттю linux,cma, а не пам’яттю EV74.
  • Назви DMA-BUF ігноруються. Системні служби тримають невеликі буфери з назвою EV74, які EV74 не використовує.
  • Фіксована резервована область мікропрограми EV74 і внутрішні виділення ядра не є DMA-BUF і не враховуються.
  • Драйвер CVU кешує не більше 64 буферів на клієнта. Якщо власні буфери EV74 конвеєра перевищують цю межу, буфери, які ще використовуються, можуть бути витіснені, і значення може бути заниженим. Застосунок, що створює новий вхідний буфер для кожного кадру, може зробити значення завищеним: драйвер тримає до 64 старих буферів відображеними на клієнта, і вони лишаються виділеними. Кількість витіснень показує /sys/kernel/debug/simaai-cvu/stats.

Значення недоступне, а не нульове, якщо /dev/cvu відсутній або bufinfo не вдається прочитати чи розібрати.

Пул CMA​

Sentinel також читає CmaTotal і CmaFree з /proc/meminfo під час кожної звичайної вибірки служби та повідомляє:

CMA used = CmaTotal - CmaFree

CmaTotal охоплює всі області CMA, зарезервовані під час завантаження. CmaFree не включає рухомі сторінки, як-от кеш сторінок, які Linux розміщує в CMA і за потреби переносить. Тому CMA used завищує виділену пам’ять і не є пам’яттю EV74: на неактивному Modalix Platform 3.0 DevKit воно становило близько 90 MiB, тоді як пам’ять EV74 дорівнювала 0. Використовуйте ev74_mem_allocated_mb для пам’яті EV74.

Ключі ev74_cma_total_mb, ev74_cma_free_mb і ev74_cma_used_mb зберігають назви, щоб наявні клієнти й записані запуски й далі їх читали; їхні мітки — CMA reserved, CMA free і CMA used. Записи контрольних точок зберігають усі три значення. Linux CMA — спільний механізм ядра, і Sentinel не може віднести ці сторінки до окремого процесу лише за /proc/meminfo. Якщо будь-яке з полів відсутнє, обчислене використання повідомляється як недоступне, а не нульове; наявне поле залишається доступним окремо.

Резервування під час завантаження можна окремо перевірити так:

dmesg | grep -i cma