之前在<编程之美>上提到说控制cpu的使用率使能在任务管理器上画一条正弦线
现在下面提供一个在Linux平台上实现的控制cpu频率在某个值
cpu_load.c

#include <iostream>
#include <pthread.h>
#include <time.h>
#include <math.h>
#include <unistd.h>using namespace std;typedef long long int int64;
const int NUM_THREADS = 1; //CPU core nums
int INTERVAL = 100;
int cpuinfo = 15; //CPU utilization rate// time unit is "ms"
int64 GetTickCount()
{timespec now;int64 sec, nsec;clock_gettime(CLOCK_MONOTONIC, &now);sec = now.tv_sec;nsec = now.tv_nsec;return sec * 1000 + nsec / 1000000;
}void* CPUCost(void *args)
{int busyTime = INTERVAL * cpuinfo / 100;int idleTime = INTERVAL - busyTime;int64 startTime = 0;std::cout << "XXXX CPUCost" << std::endl;std::cout << "XXXX cpuinfo = " << cpuinfo << std::endl;/** within INTERVAL ms, INTERVAL = busyTime + idleTime,* spend busyTime ms to let cpu busy,* spend idleTime ms top let cpu idle*/while (true) {startTime = GetTickCount();while((GetTickCount() - startTime) <= busyTime);usleep(idleTime * 1000);}
}int main(int argc, char **argv)
{pthread_t t[NUM_THREADS];int ret;std::cout << "please input cpu utilization rate" << std::endl;std::cin >> cpuinfo;for(int i = 0; i < NUM_THREADS; i++) {ret = pthread_create(&t[i], NULL, CPUCost, NULL);if(ret)std::cout << "XXXX create err" << std::endl;}pthread_exit(NULL);return 0;
}

编译: g++ cpu_load.c -lpthread -lrt -o cpu_load
1.设置cpu的占用率为10%

2.设置cpu的占用率为60%

3.设置cpu的占用率为100%


程序需要在空闲的机器上运行,才能比较精确地获取到设置的CPU利用率

linux控制cpu占用率相关推荐

  1. linux cpu不足处理运维,Linux运维知识之Linux服务器CPU占用率较高问题排查思路

    本文主要向大家介绍了Linux运维知识之Linux服务器CPU占用率较高问题排查思路,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 注意:本文相关配置及说明已在 CentOS  ...

  2. linux查看cpu占用率的方法:

    linux查看cpu占用率的方法: 一.查看单核CPU占用率,终端上输入"top". 二.查看多核CPU占用率,终端上输入"top",进入界面再输入" ...

  3. linux查看cpu占用率_Linux 性能查看

    查看系统负载 uptime 这个命令可以快速查看机器的负载情况. 在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量. 命令的输出,load avera ...

  4. linux服务器下降,Linux服务器CPU占用率上升速度下降的解决

    在linux服务器运行中,有时候会出现下列现象: CPU占用率很高,超过10,并且各种程序都轻松占用到90%,web访问很慢,基本无法执行,邮件投递基本无响应. 遇到上述情况,可执行dmesg查看是否 ...

  5. linux rsyslogd cpu占用率高问题

    最近有几次,linux centos 7 服务停了后,重启,再起一些应用后,查看top后,rsyslogd cpu占用率高问题, 先说我这块怀疑导致的原因吧. 原因 很有可能是当前机器的系统盘挂载出现 ...

  6. linux下CPU占用率查看方法

    关键词:top.perf.sar.ksar.mpstat.uptime.vmstat.pidstat.time.cpustat.munin.htop.glances.atop.nmon.pcp-gui ...

  7. linux c 控制cpu占用率

    之前在<编程之美>上提到说控制cpu的使用率使能在任务管理器上画一条正弦线 现在下面提供一个在Linux平台上实现的控制cpu频率在某个值 cpu_load.c #include < ...

  8. java检测服务器磁盘空间占满_Java性能检测工具-记录一次通过jstack排查Linux服务器CPU占用率很高的实践...

    一.问题描述 Linux服务器的配置是4核16G,将war包部署到tomcat后,启动tomcat,发现内存占用率不高,但是CPU一直高达100%:浏览器输入相关url也无法访问该项目,且tomcat ...

  9. Linux 系统 CPU 占用率较高问题排查思路

    CPU负载查看方法: 使用vmstat查看系统维度的CPU负载 使用top查看进程维度的CPU负载 https://blog.csdn.net/lufeisan/article/details/531 ...

最新文章

  1. 这个安全平台结合Spring Security逆天了,我准备研究一下
  2. 浏览器用xpath获取一直为空
  3. 操作系统(二十四)多生产者多消费者问题
  4. 导出测试点的信号名_小程序导出数据到excel表,借助云开发云函数实现excel数据的保存...
  5. java百度地图添加标注_调取百度地图接口,实现取自己的实时位置,然后可以在百度地图上添加信息标注...
  6. 『设计模式』反射,反射程序员的快乐!为什么我老是加班?为什么我工资不如他多?原来是我不懂反射!
  7. UE4 在游戏中使用Slate
  8. GridView自带的分页功能的实现
  9. Java基础教程【第九章:异常处理】
  10. win10计算机系统慢,升级Win10后电脑变慢了?老电脑装Win7、Win10流畅性测试
  11. IP切换器哪个最好用?
  12. html js点赞功能实现,利用浏览器的JS代码实现QQ空间自动点赞功能
  13. 2019主流的前端框架
  14. 信息 按顺序打印commit_Git 工作流,看这一篇就够了
  15. 分级基金下折套利风险介绍
  16. 记录下SpringBoot父子工程使用jib构建docker镜像的过程(跳过多余模块)
  17. mysql 统计请假天数_知道请假时间段、工作日和工作时长,计算请假天数
  18. 【2021软件测试扫盲】测试理论(325页“面试教科书”免费送)
  19. 二维码门禁的解决方案
  20. 电阻、二极管、三极管搭出的逻辑电路

热门文章

  1. 【SCIR笔记】多模态摘要简述
  2. Cauchy-Schwarz Inequality
  3. Codeforces Round #672 (Div. 2) C2 - Pokémon Army (hard version)(贪心,维护变化值)
  4. 计算机键盘无法使用怎么处理,电脑键盘失灵怎么解决
  5. openmv 神经网络 超出内存_星瞳科技OpenMV视频教程22-神经网络cifar_10
  6. 什么是 SHA 加密? SHA-1 与 SHA-2
  7. vue中调用百度地图 获取经纬度
  8. C语言如何求出一堆整数的最大值
  9. SQL 数据库 学习 011 关系、一对一、一对多、多对多
  10. 百度语音识别jar下载