🐧 Лучшие инструменты командной строки для мониторинга и диагностики графических процессоров Linux – Information Security Squad
🐧 Лучшие инструменты командной строки для мониторинга и диагностики графических процессоров Linux

Видеокарта – это специальная плата, которая контролирует то, что отображается на мониторе компьютера.

Ее также называют графическим процессором (GPU), который вычисляет 3D-изображения и графику для игр Linux и других целей.

Давайте рассмотрим на 7 лучших инструментов командной строки для мониторинга и диагностики графического процессора Linux и решения проблем.

Следующие инструменты работают на Linux для мониторинга и диагностики GPU, а также в других операционных системах, таких как FreeBSD.

Большинство пользователей Linux и FreeBSD в наши дни используют графические процессоры Nvidia, Intel и AMD.

Диагностика графического процессора Linux

Мы можем использовать следующие инструменты для мониторинга, диагностики и проверки наших систем на базе Linux или * BSD.

Поиск информации о GPU на Linux

Чтобы получить информацию о GPU, просто запустите:

sudo lshw -C display -short
lspci -v | more

Пример вывода:

H/W path               Device        Class          Description
===============================================================
/0/100/1/0                           display        TU117M [GeForce GTX 1650 Mobile / Max-Q]
/0/100/2               /dev/fb0      display        UHD Graphics 630 (Mobile)

1. glmark2 – стресс-тестирование производительности графического процессора в Linux

glmark2 – это утилита командной строки для тестирования производительности OpenGL 2.0 и ES 2.0.

Мы можем установить его следующим образом:

$ sudo apt install glmark2

Теперь запустите его следующим образом:

$ glmark2

Затем он проведет стресс-тестирование вашего графического процессора в Linux:

Мой результат теста для Nvidia GeForce GTX 1650, работающего на Ubuntu Linux 20.04 LTS:
=======================================================
    glmark2 2014.03+git20150611.fa71af2d
=======================================================
    OpenGL Information
    GL_VENDOR:     NVIDIA Corporation
    GL_RENDERER:   GeForce GTX 1650 with Max-Q Design/PCIe/SSE2
    GL_VERSION:    4.6.0 NVIDIA 450.80.02
=======================================================
[build] use-vbo=false: FPS: 4980 FrameTime: 0.201 ms
[build] use-vbo=true: FPS: 6927 FrameTime: 0.144 ms
[texture] texture-filter=nearest: FPS: 5144 FrameTime: 0.194 ms
[texture] texture-filter=linear: FPS: 4979 FrameTime: 0.201 ms
[texture] texture-filter=mipmap: FPS: 4030 FrameTime: 0.248 ms
[shading] shading=gouraud: FPS: 6358 FrameTime: 0.157 ms
[shading] shading=blinn-phong-inf: FPS: 5810 FrameTime: 0.172 ms
[shading] shading=phong: FPS: 6425 FrameTime: 0.156 ms
[shading] shading=cel: FPS: 5720 FrameTime: 0.175 ms
[bump] bump-render=high-poly: FPS: 4772 FrameTime: 0.210 ms
[bump] bump-render=normals: FPS: 7187 FrameTime: 0.139 ms
[bump] bump-render=height: FPS: 6724 FrameTime: 0.149 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 5278 FrameTime: 0.189 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 3649 FrameTime: 0.274 ms
[pulsar] light=false:quads=5:texture=false: FPS: 5793 FrameTime: 0.173 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 2776 FrameTime: 0.360 ms
[desktop] effect=shadow:windows=4: FPS: 3913 FrameTime: 0.256 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 1555 FrameTime: 0.643 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 1703 FrameTime: 0.587 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 1800 FrameTime: 0.556 ms
[ideas] speed=duration: FPS: 5480 FrameTime: 0.182 ms
[jellyfish] : FPS: 4283 FrameTime: 0.233 ms
[terrain] : FPS: 746 FrameTime: 1.340 ms
[shadow] : FPS: 4878 FrameTime: 0.205 ms
[refract] : FPS: 1580 FrameTime: 0.633 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 5081 FrameTime: 0.197 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 4556 FrameTime: 0.219 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 5293 FrameTime: 0.189 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 5048 FrameTime: 0.198 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 4602 FrameTime: 0.217 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 4744 FrameTime: 0.211 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 4515 FrameTime: 0.221 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 4948 FrameTime: 0.202 ms
=======================================================
                                  glmark2 Score: 4584 
=======================================================

2. glxgears – простой инструмент для тестирования производительности графического процессора Linux.

Он будет отображать частоту кадров через равные промежутки времени.

Он стал довольно популярным в качестве основного инструмента для тестирования производительности Linux и Unix-подобных систем, таких как FreeBSD.

Установите и запустите его следующим образом:

$ apt install mesa-utils
$ glxgears

Частота кадров графического процессора измеряется и выводится на экран каждые пять секунд.

Окончательный результат будет выглядеть следующим образом:

Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
299 frames in 5.0 seconds = 59.416 FPS
299 frames in 5.0 seconds = 59.731 FPS
300 frames in 5.0 seconds = 59.940 FPS
300 frames in 5.0 seconds = 59.968 FPS
300 frames in 5.0 seconds = 59.943 FPS
300 frames in 5.0 seconds = 59.967 FPS
299 frames in 5.0 seconds = 59.742 FPS
300 frames in 5.0 seconds = 59.951 FPS
.....
...
...

3. gpustat – простой инструмент для получения статистики графического процессора Nvidia на Linux и FreeBSD Unix.

Он написан на Python и является идеальным инструментом для пользователей CLI, особенно разработчиков ML/AI.

Его можно установить следующим образом с помощью PIP:

$ pip install gpustat
$ pip3 install gpustat

Запустите его следующим образом:
$ gpustat
$ gpustat -cp
Здесь мы увидим имя запущенного процесса и их PID, запущенного на графическом процессоре Nvidia:
itsecforu-wks01                         Tue Nov 24 15:46:37 2020  450.80.02
[0] GeForce GTX 1650 with Max-Q Design | 39'C,  ?? %,   2 % |   962 /  3911 MB | Xorg/2454(100M) Xorg/3504(325M) gnome-shell/3689(181M) firefox/4614(1M) firefox/5036(1M) firefox/5143(1M)

Справка:

$ gpustat -h

4. intel_gpu_top – Отображение краткого обзора использования Intel GPU на Linux.

Сначала установите инструмент, запустите:

$ sudo apt install intel-gpu-tools
## CentOS/RHEL/Fedora ##
$ sudo dnf install intel-gpu-tools

Пользователь Fedora, RHEL и CentOS может использовать команду podman, чтобы установить его:

$ podman run --rm --priviledged registry.freedesktop.org/drm/igt-gpu-tools/igt:master

Инструмент собирает данные, используя счетчики производительности (PMU), предоставляемые i915 и другими драйверами платформы, такими как RAPL (мощность) и Uncore IMC (пропускная способность памяти).
Запустите его в системе Linux следующим образом:
$ sudo intel_gpu_top

5. nvidia-smi – программа NVIDIA System Management Interface.

Nvidia-smi обеспечивает возможности мониторинга и управления для каждого из устройств NVIDIA Tesla, Quadro, GRID и GeForce от архитектур Fermi и выше.
Устройства серии GeForce Titan поддерживают большинство функций, а по остальной части бренда Geforce предоставлена очень ограниченная информация.
NVSMI – это кроссплатформенный инструмент, который поддерживает все стандартные Linux и FreeBSD, поддерживаемые драйверами NVIDIA.
После установки драйвера Nvidia в Ubuntu Linux установите его следующим образом:
$ apt install nvidia-smi
Откройте терминал и запустите:
$ nvidia-smi -q -g 0 -d UTILIZATION -l 1
$ sudo nvidia-smi
$ nvidia-smi --help
Вот что мы увидим:
Tue Nov 24 15:57:43 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 165...  Off  | 00000000:01:00.0  On |                  N/A |
| N/A   40C    P8     3W /  N/A |   1011MiB /  3911MiB |      2%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      2454      G   /usr/lib/xorg/Xorg                100MiB |
|    0   N/A  N/A      3504      G   /usr/lib/xorg/Xorg                357MiB |
|    0   N/A  N/A      3689      G   /usr/bin/gnome-shell              179MiB |
|    0   N/A  N/A      4614      G   /usr/lib/firefox/firefox            1MiB |
|    0   N/A  N/A      5036      G   /usr/lib/firefox/firefox            1MiB |
|    0   N/A  N/A      5143      G   /usr/lib/firefox/firefox            1MiB |
|    0   N/A  N/A      6406      G   ...AAAAAAAA== --shared-files      225MiB |
|    0   N/A  N/A     14462      G   ...AAAAAAAA== --shared-files      131MiB |
+-----------------------------------------------------------------------------+

6. nvtop – статистика NVIDIA GPU

Еще один интересный и очень полезный инструмент для NVIDIA GPU.

Это средство просмотра статуса графического процессора на основе ncurses для графических процессоров NVIDIA, аналогичное команде htop или команде top.

Мы можем установить его следующим образом:

$ apt install nvtop
## запуск ##
$ nvtop

7. radeontop – инструмент, показывающий использование графического процессора AMD на Linux.

Установите его следующим образом:

$ sudo apt install radeontop
$ sudo radeontop

Он работает с графическими процессорами R600 и выше.

Работает как с драйверами AMD с открытым исходным кодом, так и с драйверами с облачным исходным кодом AMD Catalyst.

Заключение

Вы узнали о различных командах и инструментах графического процессора Linux для мониторинга и диагностики в системах на базе Linux и BSD.

Дайте мне знать, если я пропустил ваш любимый инструмент в разделе комментариев ниже.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *