场景和目的

一台计算机会因为当前CPU的占率不同情况表现出不同的稳定性和实时性以及其他性能情况。需要编写一个程序将一个CPU或者多个CPU占用到指定值的占用率,比如50%。很多工具都是直接一颗CPU占满,意义不大。故此特地写一个代码。

源代码

#include <thread>
#include <unistd.h>
#include <signal.h>
#include <functional>#define SLEEP_TIME 8
#define SLEEP_RATE 2bool b_exit = false;static void my_handler(int sig)
{b_exit = true;
}void cpu_run(int p_cpuid)
{cpu_set_t set;CPU_ZERO(&set);CPU_SET(p_cpuid, &set);pthread_setaffinity_np(pthread_self(), sizeof(set), &set);int64_t t = 0;while (!b_exit){for (int i = 0; i < 1024; i++){for (int j = 0; j < 1024 * 1024; j++){t = 123456789;t *= 123456789;}if (i % SLEEP_RATE == 0){std::this_thread::sleep_for(std::chrono::milliseconds(SLEEP_TIME));}}}if (b_exit) exit(0);
}int main()
{signal(SIGINT, my_handler);int cpu_num = sysconf(_SC_NPROCESSORS_CONF);for (int i = 0; i < cpu_num; i++){std::thread *p = new std::thread(std::bind(cpu_run, i));}std::this_thread::sleep_for(std::chrono::hours(24));return 0;
}

使用方式

g++ main.cpp -lpthread -std=c++17
./a.out

打开另个窗口使用HTOP观察所有CPU占比。由于各种各样的CPU性能差异,可以通过调节SLEEP_TIME和SLEEP_RATE的值来达到不同的占比情况。(注意:此处默认会将所有CPU达到同一个使用率,如果不想耗费所有CPU简单修改一下代码即可)。想要结束在运行程序窗口Ctrl+C即可。

使用效果

linux下给CPU增加指定百分比的压力相关推荐

  1. linux 多核cpu监控,Linux 下多核CPU知识

    1. 在Linux下,如何确认是多核或多CPU: #cat /proc/cpuinfo 如果有多个类似以下的项目,则为多核或多CPU: processor  : 0 ...... processor  ...

  2. linux怎么增加cpu负载,Linux下的CPU平均负载

    linux下的CPU平均负载 一.注销登陆过的用户 先用w命令查看该用户tty号,然后用fuser -k tty号(或显示pts/*)就可以踢出了 先用w命令查看在线用户 然后 pkill -kill ...

  3. linux下的CPU、内存、IO、网络的压力测试

    linux下的CPU.内存.IO.网络的压力测试 要远程测试其实很简单了,把结果放到一个微服务里直接在web里查看就可以了,或者同步到其他服务器上 一.对CPU进行简单测试: 1.通过bc命令计算特别 ...

  4. linux下查看cpu负载及分析

    linux下查看cpu负载有两个命令可以看:uptime 和 top. 其中load average的三个值分别表示1分钟.5分钟.15分钟的CPU负载情况,是运维需要经常关注的 那么怎么确定这些值展 ...

  5. linux模拟cpu过载,linux下模拟CPU占用100%小程序

    linux下模拟CPU占用100%小程序 来源:https://blog.csdn.net/lin434406218/article/details/54694900 一.单个核100% 代码kill ...

  6. linux下限制CPU使用率的3种方法 (转)

    在租的云服务器上架了一个获取BTCC实时交易数据的服务器程序,因为用了一个while死循环处理数据信息,所以云服务器上的处理器占用率一直在90%多,这两天邮箱里一直收到服务器CPU占用率过高的邮件,在 ...

  7. linux在指定行添加内容,linux下利用shell在指定的行添加内容的方法

    linux下利用shell在指定的行添加内容的方法 在linux的一些配置中总会要进行某个文件中的某行的操作,进行增加,修改,删除等操作. 而这里主要是进行的是指定的行添加数据的操作: 脚本如下: s ...

  8. linux下限制CPU使用率的3种方法

    转载:http://blog.163.com/song_0803/blog/static/4609759720091014106684/ linux下限制CPU使用率的3种方法 1,apache本身的 ...

  9. Ubuntu16.04安装(个鬼鬼)linux下的cpu温度监控软件 lm-sensors,设置cpupower

    感觉好惨,毕设一波三折换了两回题目--进度条显示为∞.还能怎么办,继续做啊--现在是先做这个比较稳的简单的把实验先搞完.准备工作一安装im-sensors 安装linux下的cpu温度监控软件 lm- ...

最新文章

  1. 关于授予81项成果2019年度“吴文俊人工智能科学技术奖”的决定
  2. Cocos2d-x3.1颗粒使用
  3. C++网络编程(一)
  4. java各科成绩排序_java 成绩排序
  5. dede 验证码不显示 vdimgck.php,Dede后台验证码不显示解决方法详解(dedecms 5.7)
  6. ASP.NET 图片剪辑控件
  7. Spring Boot退出代码–创建自定义退出代码
  8. bulter机器人_科普!九款使用率最高的物流机器人大盘点!
  9. Python机器学习:决策树003使用信息熵寻找最优划分
  10. 使用MagicRecon在挖洞时最大化数据收集量
  11. 中小型软件产品解决方案模板
  12. 如何将绿色软件制作成云端平台中的软件包
  13. c语言编程竞赛活动主题,第三届“希望之星”C语言编程大赛系列活动
  14. web网站添加ico图标
  15. Endnote 插入文献导致word崩溃!!解决方法
  16. IDV VDI TCI RDS区别
  17. 微信公众号自定义菜单创建
  18. Html是网页制作的核心语言吗,html网页设计报告总结.doc
  19. php pdf文档内容修改,php2pdf-如何使用php修改pdf中的内容,并且保证格式不乱
  20. Apache Kudo: 1.0版和未来 [session]

热门文章

  1. phpstorm 2019.1 汉化包 支持打开设置
  2. c语言黑皮书pdf,黑皮书
  3. java能盗号吗_CVE-2017-8759漏洞新利用:Java Keylogger盗号木马分析
  4. ASO优化之如何维护关键词群
  5. 物联卡不用了怎么处理,物联卡不想用了可以丢掉吗
  6. 私有ip地址是怎么分配的?
  7. 因此林潇不急我老婆怎么来的
  8. oppo 手机 去除root警告,去除修改系统后通知栏常驻root警告
  9. 盘符被修改为*的恢复方法
  10. 轨道不平顺-振动响应-信号分析方法(持续整理中...)