python cpu_python 让cpu满载

python 让cpu满载

发布时间:2018-07-29 17:25:11编辑:admin阅读(5939)

搞zabbix监控的时候,linux服务器的负载很低,如何写一个python脚本,让它满载呢?

网上搜了一堆,发现各种不靠谱。后来终于发现了更简单的方法,就是定义一个死循环函数,让函数什么都不做就好了def deadloop():

while True:

pass

deadloop()

就是这么简单的几行就能让cpu的一个线程满载

执行之后,查看top[root@localhost ~]# top

top - 17:13:36 up  5:24,  8 users,  load average: 0.23, 0.08, 0.06

Tasks: 132 total,   2 running, 130 sleeping,   0 stopped,   0 zombie

%Cpu0  :  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu3  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem :  3874004 total,  2856660 free,   410604 used,   606740 buff/cache

KiB Swap:  2097148 total,  2097148 free,        0 used.  3183588 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

7519 root      20   0  122852   5496   2428 R  99.3  0.1   0:13.11 python3

6439 root      20   0  862228  49056   8776 S   1.3  1.3   0:22.24 python3

7520 root      20   0  157752   2236   1576 R   0.3  0.1   0:00.01 top

发现只有一个cpu是满载的,使用w查看负载,还是很低[root@localhost ~]# w

17:14:35 up  5:25,  8 users,  load average: 0.72, 0.25, 0.12

如何让4个cpu都满载呢?

使用多进程,那么开几个进程合适呢?根据CPU核心数来!

获取CPU核心数

写一个测试脚本from multiprocessing import cpu_count

print(cpu_count())

执行输出:4

使用多进程并结合CPU核心数from multiprocessing import cpu_count

from multiprocessing import Process

def func():  # 死循环函数,让cpu满载

while True:

pass

if __name__ == '__main__':

p_lst = []  # 定义一个列表

core_count = cpu_count()  # CPU核心数

for i in range(core_count):

p = Process(target=func)  # 子进程调用函数

p.start()  # 启动子进程

p_lst.append(p)  # 将所有进程写入列表中

for p in p_lst: p.join()  # 检测p是否结束,如果没有结束就阻塞直到结束,否则不阻塞

print('结束')

执行此脚本,并查看top状态[root@localhost ~]# top

top - 17:18:52 up  5:30,  8 users,  load average: 0.11, 0.20, 0.14

Tasks: 134 total,   5 running, 129 sleeping,   0 stopped,   0 zombie

%Cpu0  : 99.7 us,  0.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu1  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu2  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu3  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem :  3874004 total,  2915672 free,   351628 used,   606704 buff/cache

KiB Swap:  2097148 total,  2097148 free,        0 used.  3242624 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

7564 root      20   0  132664   6040   1192 R 100.0  0.2   0:08.65 python3

7566 root      20   0  132664   6000   1152 R 100.0  0.2   0:08.64 python3

7565 root      20   0  132664   5988   1140 R  99.7  0.2   0:08.63 python3

7567 root      20   0  132664   6004   1156 R  99.7  0.2   0:08.63 python3

查看cpu使用率,发现4个python3进程都是100%

等待1分钟,查看负载,发现CPU负载在不断上升[root@localhost ~]# w

17:20:32 up  5:31,  8 users,  load average: 3.29, 1.29, 0.54

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

root     tty1                      16:51   23:28   0.56s  0.56s -bash

服务器的风扇,在呼呼的叫。先停止吧,死机就完蛋了!

关键字:

上一篇:

没有了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript高级之ES5 中的新增方法

3.1 ES5 新增方法概述 ES5 中给我们新增了一些方法,可以很方便的操作数组或者字符串,这些方法主要包括: 数组方法字符串方法对象方法 3.2 数组方法 迭代(遍历)方法:forEach()、map()、filter()、some()、every(); …

extjs 事件

。。转载于:https://www.cnblogs.com/glblog/p/5732636.html

python定位二维码_图像中二维码的检测和定位

二维码二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何…

JavaScript高级之函数进阶

1. 函数的定义和调用 1.1 函数的定义方式 函数声明方式 function 关键字 (命名函数)函数表达式 (匿名函数)new Function() Function 里面参数都必须是字符串格式第三种方式执行效率低,也不方便书写,因此较少使用所有函数都是 Function 的实例(对象)…

kafka Failed to send messages after 3 tries 问题解决

kafka Failed to send messages after 3 tries. 在kafka0.8开发过程中 生产者测试用例碰到了 Exception in thread "main" kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.at kafka.producer.async.DefaultEventHandler.handle(…

react 前端解析二进制流_一年半前端跳槽面试经验(头条、微信、shopee)

在2019年末的时候,突然想搞点大事,思来想去,感觉只有跳槽是最刺激的。由于我比较懒,不想换城市,所以这次只面试了头条、微信和 shopee。十分幸运,都拿到了 offer。接下来就简单的说下大家关心的面试题吧。问…

国内app快速生成平台对比

泰格老虎 2013-03-07 00:39:10 这是海恒CEO高鹏写的一篇国内app快速生成平台对比文章,介绍了国内快速生成APP的平台与自己平台的对比,很有参考价值。同类网站安米网 http://www.appbyme.org/追信 http://app.zhui.cn/简网app工厂 http://app.cutt.com/ap…

JavaScript高级之正则表达式

1. 正则表达式概述 1.1 什么是正则表达式 正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象。 正则表通常被用来检索、替换那些符合某个模式(规则)的文本&am…

pushpop指令的操作数必须是字操作数_PLC的指令,电气人必须了解的基础内容

指令语句表编程语言是所有PLC都具有的最基本的编程语言。而指令语句表程序是由一条一条的指令堆砌而成的。因此,我们有必要对指令进行进一步的说明和解读。1、指令格式PLC的指令语句表程序和微机汇编语言程序非常的相似,我们也是以汇编语言的指令和指令系…

JavaScript高级之ECMAScript 6 新特性

2.1. let关键字 let关键字用来声明变量&#xff0c;使用 let声明的变量有几个特点&#xff1a; 不允许重复声明 块儿级作用域 不存在变量提升 不影响作用域链 应用场景&#xff1a;以后声明变量使用let就对了 案例&#xff1a;点击切换颜色 <!DOCTYPE html&g…

ABAP ALV

FUNCTION ALV OO ALV转载于:https://www.cnblogs.com/xher/p/5736930.html

sql 关联使用id还是code_R语言实例:用glue批量生成SQL语句

背景在数据开发中&#xff0c;有些情况下&#xff0c;需要手动生成批量SQL&#xff0c;只需改变某个参数&#xff0c;比如日期&#xff0c;从某天到某天。之前有一个实例&#xff0c;是用 stringr::str_replace_all() 去实现&#xff0c;这次就用 glue 来做示例&#xff0c;会更…

ReactNative 告别CodePush,自建热更新版本升级环境

微软的CodePush热更新非常难用大家都知道&#xff0c;速度跟被墙了没什么区别。 另外一方面&#xff0c;我们不希望把代码放到别人的服务器。自己写接口更新总归感觉安全一点。 so&#xff0c;就来自己搞个React-Native APP的热更新管理工具吧。暂且命名为hotdog。 /**********…

JavaScript高级之ECMASript 7、8 、9 、10 新特性

第3章 ECMASript 7 新特性 3.1. Array.prototype.includes Includes 方法用来检测数组中是否包含某个元素&#xff0c;返回布尔类型值 3.2. 指数操作符 在ES7中引入指数运算符「 **」&#xff0c;用来实现幂运算&#xff0c;功能与 Math.pow结果相同 第4章 ECMASript 8 新特…

python socket 大文件_python:socket传输大文件示例

#!/usr/bin/python# -*- coding: utf-8 -*-importsysreload(sys)sys.setdefaultencoding("utf-8")importtime等待连接等待发送文件读取数据写入文件并且保存等待连接importsocketimportthreadingimporttimeimportstructdeffunction(newsock, address):FILEINFO_SIZEs…

swagger core 和 swagger ui 如何关联【窥探】

几个片段&#xff1a; package io.swagger.jaxrs.listing;import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils;import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.ws.rs.GET; import javax.ws.r…

vb 根据pid获取句柄_C++中避免返回指向对象内部的句柄(handles)

点蓝色字关注“CurryCoder的程序人生”微信公众号&#xff1a;CurryCoder的程序人生欢迎关注我&#xff0c;一起学习&#xff0c;一起进步!1.问题的引入假如你正在给一个应用写一个矩形类&#xff0c;这个矩形由左上角和右下角的顶点坐标表示。为了表示这两个点&#xff0c;我们…

关于MapReduce中自定义Combine类(一)

MRJobConfigpublic static fina COMBINE_CLASS_ATTR属性COMBINE_CLASS_ATTR "mapreduce.job.combine.class"————子接口&#xff08;F4&#xff09; JobContent方法getCombinerClass————子实现类 JobContextImpl实现getCombinerClass方法&#xff1a;public C…

react脚手架配置代理解决跨域问题

一、问题描述&#xff1a; 控制台报错&#xff0c;出现跨域问题 二、解决方案 配置代理&#xff1a; 第一种配置方式&#xff1a; 在package.json中追加如下配置 "proxy":"http://localhost:5000"说明&#xff1a; 优点&#xff1a;配置简单&#xff…

kstools工具是什么牌子_2020年平衡车推荐,电动平衡车哪个牌子好?老司机教你如何选购电动平衡车...

2020年平衡车推荐&#xff0c;电动平衡车哪个牌子好&#xff1f;老司机教你如何选购电动平衡车随着我国科技的发展&#xff0c;生活水平的提高&#xff0c;在很多地方都出现了电动平衡车的身影&#xff0c;人们将电动平衡车当做短距离代步的工具&#xff0c;也是非常实用的。很…