当前位置: 首页 > news >正文

linux控制其他程序使用cpu低于50%——笔记

若存在此目录,说明支持CPU控制器

ls /sys/fs/cgroup/cpu/ 
# 1. 创建默认控制组(限制50% CPU)
sudo mkdir /sys/fs/cgroup/cpu/cpu.default
# 配置CPU限制:周期100ms(100000微秒)内,最多使用50ms(50000微秒),即50%
echo 50000 | sudo tee /sys/fs/cgroup/cpu/cpu.default/cpu.cfs_quota_us
echo 100000 | sudo tee /sys/fs/cgroup/cpu/cpu.default/cpu.cfs_period_us# 2. 创建专属控制组(不限制CPU)
sudo mkdir /sys/fs/cgroup/cpu/cpu.java
# 配置为无限制(-1表示不限制)
echo -1 | sudo tee /sys/fs/cgroup/cpu/cpu.my_config/cpu.cfs_quota_us
echo 100000 | sudo tee /sys/fs/cgroup/cpu/cpu.my_config/cpu.cfs_period_us

创建cpu_control.sh

#!/bin/bash# 获取所有进程PID(排除内核进程,PID>1)
ALL_PIDS=$(pgrep -d ' ' -x -P 1 -o '.*' 2>/dev/null)# 遍历所有进程,分类到不同组
for pid in $ALL_PIDS; do# 跳过已终止的进程if ! ps -p $pid >/dev/null; thencontinueficmd=$(ps -p $pid -o comm=)# 这里=="java"自己改成不限制的程序,现在是不限制java进程if [[ "$cmd" == "java" ]]; then# 特定非限制进程:加入cpu.my_config组echo $pid | sudo tee /sys/fs/cgroup/cpu/cpu.my_config/cgroup.procs >/dev/nullelse# 所有进程:加入cpu.default组(限制50%)echo $pid | sudo tee /sys/fs/cgroup/cpu/cpu.default/cgroup.procs >/dev/nullfi
done

#赋权限

chmod +x /path/to/cpu_control.sh

创建服务文件,这个配置是五秒自动执行一次

sudo vim /etc/systemd/system/cgroup-java-control.service
[Unit]
Description=限制进程 50% CPU[Service]
Type=simple
ExecStart=/bin/bash -c 'while true; do /path/to/cpu_control.sh; sleep 5; done'
Restart=always[Install]
WantedBy=multi-user.target

启动并设置开机自启

sudo systemctl daemon-reload
sudo systemctl start cpu-control
sudo systemctl enable cpu-control
http://www.lryc.cn/news/626097.html

相关文章:

  • LangChain RAG 简述
  • [激光原理与应用-309]:光学设计 - 什么是光学系统装配图,其用途、主要内容、格式与示例?
  • 47 C++ STL模板库16-容器8-关联容器-集合(set)多重集合(multiset)
  • PyTorch数据处理工具箱(utils.data简介)
  • 设计模式笔记_行为型_解释器模式
  • 【Spring Boot把日志记录到文件里面】
  • 疯狂星期四文案网第44天运营日记
  • GPT-5论文写作全流程提示词库
  • MAC 设置输入法
  • 为 Time 类实现构造函数,默认初始化成 23:59:55,也可以指定时间,要求使用初始化参数列表:C++代码解释
  • linux服务器rsyslog进程启动失败分析
  • Python 项目里的数据预处理工作(数据清洗步骤应用)续篇
  • 3D检测笔记:MMDetection3d环境配置
  • Kubernetes Pod 控制器
  • 基于uni-app的成人继续教育教务管理系统设计与实现
  • PyTorch自动求导
  • 开源 C++ QT Widget 开发(一)工程文件结构
  • vfs_statfs使用 查看当前文件系统一些信息情况
  • RocketMq消费者动态订阅topic
  • 聚合链路与软件网桥的原理及配置方法
  • 【LeetCode 热题 100】279. 完全平方数——(解法一)记忆化搜索
  • JVM原生的assert关键字
  • 手写C++ string类实现详解
  • 使用redis读写锁实现抢券功能
  • 怎样平衡NLP技术发展中数据质量和隐私保护的关系?
  • JVM 面试精选 20 题(续)
  • JVM对象创建和内存分配
  • SpringAI接入openAI配置出现的问题全解析
  • 今日行情明日机会——20250819
  • Java开发面试实战:Spring Boot微服务与数据库优化案例分析