一个用于监控和调整系统资源使用比例的Go语言工具。可以设置目标的内存、CPU和磁盘使用百分比,程序会自动调整以达到目标比例。
- 🖥️ 内存监控: 实时监控系统内存使用情况,自动调整内存占用
- ⚡ CPU监控: 监控CPU使用率,通过创建负载来达到目标使用率
- 💾 磁盘监控: 监控磁盘使用情况,通过创建/删除临时文件来调整使用率
- ⏱️ 实时监控: 可配置的监控间隔,默认5秒
- 🎛️ 灵活配置: 支持命令行参数配置各种资源的目标使用率
# 使用默认配置运行(内存占用50%, CPU占用30%, 硬盘占用40%)
docker run -it --rm baiyea/go-occupy
# 自定义示例(内存占用50%, CPU占用50%, 硬盘占用50%)
docker run -it --rm baiyea/go-occupy -m 50 -c 50 -d 50
- 确保已安装Go 1.21或更高版本
- 克隆或下载项目
- 安装依赖:
go mod tidy# 使用默认配置运行
go run main.go
# 编译后运行
go build -o go-occupy
./go-occupy# 设置内存使用率为60%,CPU使用率为40%,磁盘使用率为80%
./go-occupy --memory 60 --cpu 40 --disk 80
# 使用短参数
./go-occupy -m 60 -c 40 -d 80
# 设置监控间隔为10秒
./go-occupy -m 50 -c 30 -d 40 -i 10s| 参数 | 短参数 | 默认值 | 说明 |
|---|---|---|---|
--memory |
-m |
50.0 | 目标内存使用百分比 |
--cpu |
-c |
30.0 | 目标CPU使用百分比 |
--disk |
-d |
40.0 | 目标磁盘使用百分比 |
--interval |
-i |
5s | 监控间隔 |
# 监控模式:内存50%,CPU30%,磁盘40%
./go-occupy -m 50 -c 30 -d 40
# 高负载模式:内存80%,CPU70%,磁盘90%
./go-occupy -m 80 -c 70 -d 90
# 低负载模式:内存20%,CPU10%,磁盘50%
./go-occupy -m 20 -c 10 -d 50- 当实际内存使用率低于目标时,程序会分配内存来达到目标使用率
- 分配的内存会被实际使用,避免被系统回收
- 当实际CPU使用率低于目标时,程序会创建多个goroutine来产生CPU负载
- 每个CPU核心会运行一个计算密集型循环
- 当实际磁盘使用率低于目标时,程序会在
/tmp目录创建临时文件 - 当使用率过高时,会自动清理这些临时文件
- 此工具会实际占用系统资源,请谨慎使用
- 建议在测试环境中使用,避免在生产环境中运行
- 程序会创建临时文件,请确保有足够的磁盘空间
- 使用Ctrl+C可以安全停止程序
github.com/shirou/gopsutil/v3: 用于获取系统资源信息github.com/spf13/cobra: 用于命令行界面
MIT License