GPU cluster monitoring service
Project description
GPU Monitor
GPU Monitor is a small browser-based dashboard for checking GPU or NPU usage across SSH-accessible servers. It shows accelerator memory usage, utilization, and active compute users without requiring an agent on the target machines.
Preview
Features
- Monitor multiple GPU or NPU servers from one page.
- Show accelerator memory usage, utilization, and active process owners.
- Refresh automatically and provide a manual Refresh button.
- Keep the last known accelerator data visible when a server is temporarily unreachable.
- Update server cards independently, so a slow host does not block the rest of the dashboard.
Requirements
- Python 3.11 or newer.
- SSH access from the machine running GPU Monitor to each target server.
- NVIDIA drivers and
nvidia-smion GPU servers. - Ascend
npu-smion NPU servers.
Before configuring GPU Monitor, verify that SSH can run the monitor command:
ssh server-a nvidia-smi
ssh npu-server-a npu-smi info
Installation
Install from PyPI:
python -m pip install gpu-server-monitor
Quick Start
Create a sample configuration file:
gpu-monitor init -c ./config.toml
Edit config.toml, then start the web service:
gpu-monitor run -c ./config.toml -H 127.0.0.1 -p 8000
Open:
http://127.0.0.1:8000/
Configuration
GPU Monitor uses a TOML configuration file.
The recommended setup is to keep SSH connection details in your normal SSH config file:
Host server-a
HostName 10.0.0.11
User your_username
Port 22
IdentityFile ~/.ssh/id_rsa
Then reference the SSH host name from GPU Monitor:
poll_interval_seconds = 20
[[servers]]
Host = "server-a"
[[servers]]
Host = "npu-server-a"
DeviceType = "npu"
You can also put SSH options directly in the GPU Monitor config:
poll_interval_seconds = 20
[[servers]]
Host = "server-b"
HostName = "10.0.0.12"
User = "your_username"
Port = 22
IdentityFile = "~/.ssh/id_rsa"
ConnectTimeout = 5
Add more [[servers]] blocks to monitor more machines.
DeviceType is optional and defaults to gpu; set it to npu for Ascend NPU servers.
poll_interval_seconds controls the automatic refresh interval. Restart GPU Monitor after changing the configuration file.
Troubleshooting
No servers appear
Check that the config file passed to -c contains at least one [[servers]] block.
A server shows stale data or cannot be reached
Test the same host from your terminal:
ssh server-a nvidia-smi
ssh npu-server-a npu-smi info
If that command fails, fix the SSH login, key, port, or network issue first.
Configuration changes do not appear
Restart GPU Monitor after editing the configuration file.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gpu_server_monitor-0.4.0.tar.gz.
File metadata
- Download URL: gpu_server_monitor-0.4.0.tar.gz
- Upload date:
- Size: 22.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5977f8c9dd885d5c5eeb39ab32532f9bf82ef6f490aa3bae18ba18ac0749963
|
|
| MD5 |
fc4f88cbb78e598451535282cb730cb3
|
|
| BLAKE2b-256 |
303c78a9b6564144f85ba8eb7d8cb6f1fcaa8ed63f9bf85fca9c1d70e8ca47a8
|
Provenance
The following attestation bundles were made for gpu_server_monitor-0.4.0.tar.gz:
Publisher:
publish.yml on NingChenTHU/gpu-monitor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gpu_server_monitor-0.4.0.tar.gz -
Subject digest:
d5977f8c9dd885d5c5eeb39ab32532f9bf82ef6f490aa3bae18ba18ac0749963 - Sigstore transparency entry: 2098814716
- Sigstore integration time:
-
Permalink:
NingChenTHU/gpu-monitor@680d4fbacc8b97874c5c2195e2504a5b80dd306f -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/NingChenTHU
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@680d4fbacc8b97874c5c2195e2504a5b80dd306f -
Trigger Event:
release
-
Statement type:
File details
Details for the file gpu_server_monitor-0.4.0-py3-none-any.whl.
File metadata
- Download URL: gpu_server_monitor-0.4.0-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
367d8da8a278123aab2171f1466fb7bc388fc3e2e79e569b6691a70db6108206
|
|
| MD5 |
5664edfc4bde4db98e086300eb85ef25
|
|
| BLAKE2b-256 |
215cd83698dbb63a17b003d0053a8742f77d3b60eec8d18b58a34aeeb3a45af5
|
Provenance
The following attestation bundles were made for gpu_server_monitor-0.4.0-py3-none-any.whl:
Publisher:
publish.yml on NingChenTHU/gpu-monitor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gpu_server_monitor-0.4.0-py3-none-any.whl -
Subject digest:
367d8da8a278123aab2171f1466fb7bc388fc3e2e79e569b6691a70db6108206 - Sigstore transparency entry: 2098814878
- Sigstore integration time:
-
Permalink:
NingChenTHU/gpu-monitor@680d4fbacc8b97874c5c2195e2504a5b80dd306f -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/NingChenTHU
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@680d4fbacc8b97874c5c2195e2504a5b80dd306f -
Trigger Event:
release
-
Statement type: