安全的资源感知任务调度器,永远不会把你的机器跑崩
Project description
safesched
安全的资源感知任务调度器 — 自动监控 CPU/内存/磁盘 IO/GPU 显存,过载时暂停调度,永远不会把你的机器跑崩。
✨ 主要特性
- 🔍 自动资源监控:实时监控 CPU、内存、磁盘 IO 和 GPU 显存
- 🛡️ 智能过载保护:系统过载时自动暂停,避免宕机
- 🎯 GPU 自动选择:自动检测并选择最空闲的 GPU
- ♻️ 任务重试:失败任务自动重试,可配置重试次数
- 📊 并发管理:灵活配置并发任务数和超时时间
📦 安装
推荐方式(使用 pipx,全局隔离安装)
pipx install safesched
或使用 pip(在虚拟环境中)
python -m venv .venv
# macOS / Linux
source .venv/bin/activate
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
# Windows CMD
.\.venv\Scripts\activate.bat
pip install safesched
🚀 快速开始
批量调度任务(从 stdin)
macOS / Linux:
cat tasks.txt | safesched python process.py {}
Windows PowerShell:
Get-Content tasks.txt | safesched python process.py {}
Windows CMD:
type tasks.txt | safesched python process.py {}
其中 tasks.txt 每行一个参数,{} 作为占位符被替换。
运行单个命令
自动选择最空闲的 GPU 并执行:
safesched python train_model.py
指定 GPU 并配置并发
cat tasks.txt | safesched -g 0,1 -j 8 -t 3600 python process.py {}
参数说明:
-g 0,1:指定 GPU 列表(默认自动检测)-j 8:最大并发任务数(默认 8×GPU 数 或 CPU 核心数 / 2)-t 3600:单个任务超时时间(秒,默认 1 小时)-r 3:失败重试次数(默认 2 次)-v:详细日志输出
更多例子
处理 10000 个视频文件,自动检测 GPU,并发 4 个任务,每个任务超时 30 分钟:
ls *.mp4 | safesched -j 4 -t 1800 python encode.py {}
使用 CPU 模式处理任务(无 GPU):
cat tasks.txt | safesched python lightweight_task.py {}
📝 许可证
MIT License - 详见 LICENSE 文件
👤 作者
- Misaka14766
- 📧 misaka14766@gmail.com
- 🔗 GitHub
💬 反馈与贡献
欢迎提交 Issue 和 Pull Request!如有任何问题或建议,请通过以下方式联系:
Made with ❤️ by Misaka14766
Project details
Release history Release notifications | RSS feed
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 safesched-0.1.1.tar.gz.
File metadata
- Download URL: safesched-0.1.1.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a12e394270f4fe0eeeb1fa83638af4326e0dbe515d1cccdfc5823e0a0f639a65
|
|
| MD5 |
92059f434fe2b6ce4e14c4896de15cd3
|
|
| BLAKE2b-256 |
dc27be5b14151a8150901abb07930a0788cbf2b23936a38d8f1c53b7f4b8b030
|
File details
Details for the file safesched-0.1.1-py3-none-any.whl.
File metadata
- Download URL: safesched-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2409a125a630e774beda1fac7fd5c9f6ab3021d769a9aa99b667e45447765019
|
|
| MD5 |
bb7eb5fdeba21e0fd39b4ae41c47c783
|
|
| BLAKE2b-256 |
15c2166dbe39c38a46697e1b98ba8f61def3e338273d12e21964cc5cdf6832c2
|