linux下运行python程序如何控制内存_用Python实现Linux系统占用指定内存,CPU满载,服务器压力测试,场景设计...
背景
提出两个需求
占满系统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满载,服务器压力测试,场景设计...相关推荐
- linux如何编译wine,利用winelib编译一个可在linux下运行的程序
利用winelib编译一个可在linux下运行的程序 只是想既可以使用linux的api,又可以使用windows的api #include #include #include #include in ...
- windows模拟linux系统下载,Windows模拟器|Wine(Linux下运行Windows程序)v1.9 官方最新版_软件侠下载站...
Wine最新版是一款功能强大的虚拟机软件,Wine ("Wine Is Not an Emulator" 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统( ...
- lotus系统可以再linux下运行吗,IBM Lotus Notes 8.5 在 MAC 和 Linux 系统安装的新特性
本文介绍了 Lotus Notes 8.5 在 Linux 平台和 Mac 平台安装方面的新特性,包括安装之前的环境准备.安装过程.安装之后文件核查以及如何卸载,覆盖了所有支持平台,包括 RedHat ...
- 获取内存_如何获取一个进程所占用的内存
推荐观看: BATJ面试官最喜欢问的:多线程.线程并发面试题详解(volatile+ThreadLocal+Sleep)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili. ...
- Linux下运行jar程序
2019独角兽企业重金招聘Python工程师标准>>> 当我们把java程序打成jar包后,放到linux上通过putty或其它终端执行的时候,如果按照:java -jar xxxx ...
- linux怎么样运行c程序,linux下运行C程序
步骤 1.1 编写 使用Gedit编写一个简单的C语言程序 1.2 编译 编译器可以将源代码转换成机器语言,在编译过程中,会找出并报告错误.这个阶段的输入是在编辑期间产生的文件,常称为源文件.编译器输 ...
- 如何在虚拟机(linux)下运行java程序
Linux安装jdk环境 1.先通过原本的电脑在jdk官网下载jdk8,然后发送到我windows和linux的共享目录当中. 2.将压缩包解压到home目录下的java文件夹当中 3.使用命令sud ...
- Linux下运行c++程序
1.创建hello.cpp文件 vi hello.cpp 2.程序代码 #include<iostream> using namespace std;int main() {cout &l ...
- 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 ...
最新文章
- python绘图课设_python课程设计笔记(三)turtle绘图库(海龟库)
- 学习 ASP.NET mvc 第一天、也可能是最后一天
- EasyPusher/EasyDarwin/EasyPlayer实现手机直播版本及效果整理
- 面向对象和面向过程,python中的类class,python中程序的入口——main方法,
- 五种类型的程序员,你属于哪一种?
- python爬取全国真实地址_Python3爬虫全国地址信息
- 目标检测算法之FPN(附FPN代码实现)
- 设计PSD分层素材模板|几何元素平面广告,在设计风格中占有一席之地
- Echarts官网突然不能登录了?
- 信息系统项目管理师(2022年) —— 第 16 章 项目变更管理
- matlab里excel汉字怎么显示,[求助]matlab如何导入excel中的汉字,求助~~~
- 佛山机场安装RFID行李跟踪系统 可全流程追踪行李
- 留学目的地选择之亚利桑那州
- html 如何设置选择图片,html中如何设置默认图片?
- 移动端页面有滚动条但是无法滚动的问题
- hbase 预分区设计
- jsp田径运动会管理系统计算机毕业设计
- Maxon将在Siggraph 2019公布下一代Cinema 4D RELEASE 21
- RTF 批量转换为 DOCX 文件
- 每日优鲜的营销推广措施分析
热门文章
- 简单而不平凡-登陆验证
- TOOLFK工具-在线OCR图片文字识别工具
- 解决win10笔记本没有WIFI选项的问题
- 陕西省计算机证书查询官方网站,陕西省专业技术人员资格证书查询系统正式上线...
- sketchup小房子模型
- HDMI转USB3.0 视频采集卡方案
- 发那科7轴导轨+SCA涂胶与发那科7轴导轨+固定点焊钳现场全备份,可导入Roboguide还原系统
- geoserver的api接口_geoserver api
- 如何快速查询多个快递物流,并给拒收的单号标色
- 一步一步教你安装redis(超详细,图文)