Alfred's New Ramblings

Getting Intel UHD 630 GPU Monitoring Working in Beszel on Proxmox/Debian Docker

Beszel monitoring does not chart GPU performance even though Jellyfin was successfully using Intel GPU

Beszel GPU charts are not displayed during Jellyfin hardware transcoding, manually change from default 1.5Mbps to 420kbps.

Caution: Jellyfin usage of GPU is not consistent. It possible for the jobs for the GPU to be fully completed while the video is still in the midst of playing. This can easily be mistaken as Beszel not reading the counters properly or no counters.

Jellyfin use of GPU is verified by running in Bash

intel_gpu_top

Verification of what GPU stats Beszel can read via running intel_gpu_top inside the Docker container.

docker exec beszel-agent intel_gpu_top -L

As there are 2 GPUs in the container, care is required to specify the correct unit. Proxmox provided the card0, virtual GPU. card1 was created to provide hardware GPU support

card0 = QEMU virtual GPU
card1 = Intel UHD 630

Add the following to the Beszel-agent section in compose.yml

image: henrygd/beszel-agent-intel

cap_add:
  - CAP_PERFMON
  - SYS_ADMIN

devices:
  - /dev/dri:/dev/dri

environment:
  INTEL_GPU_DEVICE: drm:/dev/dri/renderD128

Change the image to intel for GPU support. cap_add key pair is monitoring and admin access. Both values are required. devices is required to declare the GPU usage. The environment is point the desired GPU, in our case RenderD128.

Useful verification commands

ls -l /dev/dri
lspci -k -s 00:10.0
docker inspect beszel-agent --format '{{json .HostConfig.Devices}}'
docker inspect beszel-agent --format '{{json .HostConfig.CapAdd}}'
docker exec beszel-agent intel_gpu_top -L
docker exec beszel-agent intel_gpu_top -d drm:/dev/dri/renderD128

The final output should look something like this:

name: beszel
services:
  beszel:
    image: henrygd/beszel
    container_name: beszel
    restart: unless-stopped
    environment:
      - APP_URL=http://10.10.10:8090
    ports:
      - 8090:8090
    volumes:
      - ./beszel_data:/beszel_data


  beszel-agent:
    image: henrygd/beszel-agent-intel
    container_name: beszel-agent
    restart: unless-stopped
    network_mode: host
    cap_add:
      - CAP_PERFMON
      - SYS_ADMIN
    devices:
      - /dev/dri:/dev/dri
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./beszel_agent_data:/var/lib/beszel-agent
      # monitor other disks / partitions by mounting a folder in /extra-filesystems
      # - /mnt/disk/.beszel:/extra-filesystems/sda1:ro
    environment:
      LISTEN: 45876
      KEY: 'ssh-ed25519 keyKeykeyKeykeyKeykeyKeykeyKeykeyKeykeyKeykeyKeykeyKeykeyKey'
      TOKEN: token-tokenTokentoken-aad-tokenTokentoken
      HUB_URL: http://10.10.10:8090
      INTEL_GPU_DEVICE: drm:/dev/dri/renderD128
Tagged on: , , ,



Leave a Reply

Your email address will not be published. Required fields are marked *