背景

提出两个需求

占满系统CPU

占用大内存

通过上网查资料,做实验使用Python实现了上述两个需求。

先看效果

执行前

内存

CPU

执行后

内存

CPU

代码实现

环境说明:代码使用Python3实现

#! /user/bin/env python#-*- encoding: utf-8 -*-

importsysimportreimporttimefrom multiprocessing importProcess,cpu_countdefprint_help():print('Usage:')print('python test_mem.py m 1GB')print('python test_mem.py c 1')print('python test_mem.py mc 1GB 2')#实现占用内存

defmem():

pattern= re.compile('^(\d*)([M|G]B)$')

size= sys.argv[2].upper()

match=pattern.match(size)ifmatch:

num= int(match.group(1))

unit= match.group(2)if unit == 'MB':

s= ' ' * (num * 1024 * 1024)else:

s= ' ' * (num * 1024 * 1024 * 1024)

time.sleep(24 * 3600)else:print("bad args.....")

print_help()#cpu满载

defdeadloop():whileTrue:pass

#根据传参来指定占满几个核

defcpu():

arg= sys.argv[2] if len(sys.argv) == 3 else sys.argv[3]

cpu_num=cpu_count()

cores=int(arg)if notisinstance(cores,int):print("bad args not int")return

if cores >cpu_num:print("Invalid CPU Num(cpu_count="+str(cpu_num)+")")return

if cores is None or cores <1:

cores= 1

for i inrange(cores):

Process(target=deadloop).start()defmem_cpu():

Process(target=mem).start()

Process(target=cpu).start()if __name__ == "__main__":if len(sys.argv) >= 3:

switcher={'m': mem,'c': cpu,'mc': mem_cpu

}

switcher.get(sys.argv[1], mem)()else:

print_help()

使用命令

//指定Mem占用,使用time.sleep()硬代码1天时间

python3 test_mem.py m 1GB

//CPU满载

python3 test_mem.py c 2

//CPU 2核满载,并且指定Mem占用2GB

python3 test_mem.py mc 2GB 2

Linux命令查看

//查看内存 $ free -h //查看CPU,每秒采集一次,共5次 $ sar -u 1 5

————————————————

版权声明:本文为CSDN博主「yuexue0」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/yuexue0/article/details/86564253

linux下运行python程序如何控制内存_用Python实现Linux系统占用指定内存,CPU满载,服务器压力测试,场景设计...相关推荐

  1. linux如何编译wine,利用winelib编译一个可在linux下运行的程序

    利用winelib编译一个可在linux下运行的程序 只是想既可以使用linux的api,又可以使用windows的api #include #include #include #include in ...

  2. windows模拟linux系统下载,Windows模拟器|Wine(Linux下运行Windows程序)v1.9 官方最新版_软件侠下载站...

    Wine最新版是一款功能强大的虚拟机软件,Wine ("Wine Is Not an Emulator" 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统( ...

  3. lotus系统可以再linux下运行吗,IBM Lotus Notes 8.5 在 MAC 和 Linux 系统安装的新特性

    本文介绍了 Lotus Notes 8.5 在 Linux 平台和 Mac 平台安装方面的新特性,包括安装之前的环境准备.安装过程.安装之后文件核查以及如何卸载,覆盖了所有支持平台,包括 RedHat ...

  4. 获取内存_如何获取一个进程所占用的内存

    推荐观看: BATJ面试官最喜欢问的:多线程.线程并发面试题详解(volatile+ThreadLocal+Sleep)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili. ...

  5. Linux下运行jar程序

    2019独角兽企业重金招聘Python工程师标准>>> 当我们把java程序打成jar包后,放到linux上通过putty或其它终端执行的时候,如果按照:java -jar xxxx ...

  6. linux怎么样运行c程序,linux下运行C程序

    步骤 1.1 编写 使用Gedit编写一个简单的C语言程序 1.2 编译 编译器可以将源代码转换成机器语言,在编译过程中,会找出并报告错误.这个阶段的输入是在编辑期间产生的文件,常称为源文件.编译器输 ...

  7. 如何在虚拟机(linux)下运行java程序

    Linux安装jdk环境 1.先通过原本的电脑在jdk官网下载jdk8,然后发送到我windows和linux的共享目录当中. 2.将压缩包解压到home目录下的java文件夹当中 3.使用命令sud ...

  8. Linux下运行c++程序

    1.创建hello.cpp文件 vi hello.cpp 2.程序代码 #include<iostream> using namespace std;int main() {cout &l ...

  9. linux java no x11_在linux下运行javaMail程序报No X11 DISPLAY variable was...

    收藏 java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operat ...

最新文章

  1. python绘图课设_python课程设计笔记(三)turtle绘图库(海龟库)
  2. 学习 ASP.NET mvc 第一天、也可能是最后一天
  3. EasyPusher/EasyDarwin/EasyPlayer实现手机直播版本及效果整理
  4. 面向对象和面向过程,python中的类class,python中程序的入口——main方法,
  5. 五种类型的程序员,你属于哪一种?
  6. python爬取全国真实地址_Python3爬虫全国地址信息
  7. 目标检测算法之FPN(附FPN代码实现)
  8. 设计PSD分层素材模板|几何元素平面广告,在设计风格中占有一席之地
  9. Echarts官网突然不能登录了?
  10. 信息系统项目管理师(2022年) —— 第 16 章 项目变更管理
  11. matlab里excel汉字怎么显示,[求助]matlab如何导入excel中的汉字,求助~~~
  12. 佛山机场安装RFID行李跟踪系统 可全流程追踪行李
  13. 留学目的地选择之亚利桑那州
  14. html 如何设置选择图片,html中如何设置默认图片?
  15. 移动端页面有滚动条但是无法滚动的问题
  16. hbase 预分区设计
  17. jsp田径运动会管理系统计算机毕业设计
  18. Maxon将在Siggraph 2019公布下一代Cinema 4D RELEASE 21
  19. RTF 批量转换为 DOCX 文件
  20. 每日优鲜的营销推广措施分析

热门文章

  1. 简单而不平凡-登陆验证
  2. TOOLFK工具-在线OCR图片文字识别工具
  3. 解决win10笔记本没有WIFI选项的问题
  4. 陕西省计算机证书查询官方网站,陕西省专业技术人员资格证书查询系统正式上线...
  5. sketchup小房子模型
  6. HDMI转USB3.0 视频采集卡方案
  7. 发那科7轴导轨+SCA涂胶与发那科7轴导轨+固定点焊钳现场全备份,可导入Roboguide还原系统
  8. geoserver的api接口_geoserver api
  9. 如何快速查询多个快递物流,并给拒收的单号标色
  10. 一步一步教你安装redis(超详细,图文)