linux下给CPU增加指定百分比的压力
场景和目的
一台计算机会因为当前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增加指定百分比的压力相关推荐
- linux 多核cpu监控,Linux 下多核CPU知识
1. 在Linux下,如何确认是多核或多CPU: #cat /proc/cpuinfo 如果有多个类似以下的项目,则为多核或多CPU: processor : 0 ...... processor ...
- linux怎么增加cpu负载,Linux下的CPU平均负载
linux下的CPU平均负载 一.注销登陆过的用户 先用w命令查看该用户tty号,然后用fuser -k tty号(或显示pts/*)就可以踢出了 先用w命令查看在线用户 然后 pkill -kill ...
- linux下的CPU、内存、IO、网络的压力测试
linux下的CPU.内存.IO.网络的压力测试 要远程测试其实很简单了,把结果放到一个微服务里直接在web里查看就可以了,或者同步到其他服务器上 一.对CPU进行简单测试: 1.通过bc命令计算特别 ...
- linux下查看cpu负载及分析
linux下查看cpu负载有两个命令可以看:uptime 和 top. 其中load average的三个值分别表示1分钟.5分钟.15分钟的CPU负载情况,是运维需要经常关注的 那么怎么确定这些值展 ...
- linux模拟cpu过载,linux下模拟CPU占用100%小程序
linux下模拟CPU占用100%小程序 来源:https://blog.csdn.net/lin434406218/article/details/54694900 一.单个核100% 代码kill ...
- linux下限制CPU使用率的3种方法 (转)
在租的云服务器上架了一个获取BTCC实时交易数据的服务器程序,因为用了一个while死循环处理数据信息,所以云服务器上的处理器占用率一直在90%多,这两天邮箱里一直收到服务器CPU占用率过高的邮件,在 ...
- linux在指定行添加内容,linux下利用shell在指定的行添加内容的方法
linux下利用shell在指定的行添加内容的方法 在linux的一些配置中总会要进行某个文件中的某行的操作,进行增加,修改,删除等操作. 而这里主要是进行的是指定的行添加数据的操作: 脚本如下: s ...
- linux下限制CPU使用率的3种方法
转载:http://blog.163.com/song_0803/blog/static/4609759720091014106684/ linux下限制CPU使用率的3种方法 1,apache本身的 ...
- Ubuntu16.04安装(个鬼鬼)linux下的cpu温度监控软件 lm-sensors,设置cpupower
感觉好惨,毕设一波三折换了两回题目--进度条显示为∞.还能怎么办,继续做啊--现在是先做这个比较稳的简单的把实验先搞完.准备工作一安装im-sensors 安装linux下的cpu温度监控软件 lm- ...
最新文章
- 操作系统中的进程与线程
- (五)stm32工程代码HardFault异常查错调试方法
- thinkphp 学习 (资料收集)
- openssl创建CA并签发证书
- 驾乘华为云 成就 AI 开发者的不凡
- 模型保存的方法-----保存整个模型
- android studio 新建的项目无法绘制界面
- 抓包与发流软件与网络诊断
- Aerial为苹果而生,一款炫酷的Mac屏幕保护程序
- Winform SplitContainer控件可调整大小
- 01.第一个html文件.html
- 计算机网络技术班级16字口号,十六字班级加油口号
- Android:通过systrace进行性能分析及使用-详细
- 计算机组成原理_选择
- 计算机流水线重要知识,计算机组成与体系结构——流水线相关知识点(常考计算)...
- casewhen多条件查询_Mybatis(三)- MyBatis 多条件查询和模糊查询实例
- 学生信息数据库中的表
- FDC2214调试笔记(1)——为什么FDC2214输出的会是0x00000000或者0xffffffff?
- 群晖|半洗白后moments正常显示人像、主题、预览
- JavaMail API 详解
热门文章
- three.js 模型详解和外部模型详解
- Ubuntu下安装拳皇97
- I - Keylogger Gym - 101078I——模拟队列+栈
- 苹果11自带测试软件,9款旗舰系统对比 iPhone 11居然不是最好用的
- 服务器主板u3芯片配i3CP0,【铭瑄B75评测】寝室限网怎么办? 主板化身无线路由器-中关村在线...
- Be accepted for inclusion in the IEEE INFOCOM 2018 technical program
- 作为一个移动应用开发者,我们的创意应当避免走向低俗
- Java大佬是怎样炼成的3-4
- 2012-03-28-1
- java 自定义taglib_[JSP]自定义标签库taglib