Лучшие инструменты командной строки для мониторинга и диагностики графических процессоров Linux
Life-Hack [Жизнь-Взлом]/ХакингВидеокарта – это специальная плата, которая контролирует то, что отображается на мониторе компьютера.
Ее также называют графическим процессором (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.