用Python实现Linux系统占用指定内存,CPU满载

news/2024/11/15 8:28:01/

背景

提出两个需求

  1. 占满系统CPU
  2. 占用大内存

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

先看效果

执行前

内存

在这里插入图片描述

CPU

在这里插入图片描述

执行后

内存

在这里插入图片描述

CPU

在这里插入图片描述

代码实现

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

#! /user/bin/env python
# -*- encoding: utf-8 -*-
import sys
import re
import time
from multiprocessing import Process,cpu_countdef print_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')#实现占用内存
def mem():pattern = re.compile('^(\d*)([M|G]B)$')size = sys.argv[2].upper()match = pattern.match(size)if match: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满载
def deadloop():while True:pass#根据传参来指定占满几个核
def cpu():arg = sys.argv[2] if len(sys.argv) == 3 else sys.argv[3]cpu_num = cpu_count()cores = int(arg)if not isinstance(cores,int):print("bad args not int")returnif cores > cpu_num:print("Invalid CPU Num(cpu_count="+str(cpu_num)+")")returnif cores is None or cores <1:cores = 1for i in range(cores):Process(target=deadloop).start()def mem_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

http://www.ppmy.cn/news/491552.html

相关文章

如何模拟FullGC导致CPU满载问题

系列文章目录 第一章 如何保证多个线程的顺序执行&#xff1f; 第二章 如何排查线上环境内存使用过大&#xff1f; 第三章 如何模拟FullGC导致CPU满载问题&#xff1f; 文章目录 前言排查故障一、构建模拟环境二、Java VisualVM查看在命令行输入&#xff0c;启动VisualVM安装…

什么软件测试cpu满载,截然相反!CPU满载压力测试

CPU满载压力测试 本项目采用ORTHOS软件使核心达到满载状态,模拟极端使用环境(运行大型游戏、软件时常会出现CPU满载的现象)。 Intel Core i5 2300满载运行6分钟后温度88℃ Intel Core i5 2300满载运行6分钟后CPU倍频会被自动减低至17x,CPU的主频为1.7GHz,相信是Intel的过热保…

python cpu_python 让cpu满载

python 让cpu满载 发布时间&#xff1a;2018-07-29 17:25:11编辑&#xff1a;admin阅读(5939) 搞zabbix监控的时候&#xff0c;linux服务器的负载很低&#xff0c;如何写一个python脚本&#xff0c;让它满载呢&#xff1f; 网上搜了一堆&#xff0c;发现各种不靠谱。后来终于发…

电脑cpu莫名占用满的解决方法有哪些呢?

cpu占用率高导致电脑卡的头疼。win10电脑CPU占用率高的原因很多&#xff0c;可能是某个程序占用率大&#xff0c;或者是某个系统服务所致&#xff0c;又或者是系统BUG导致。 更多重装系统教程尽在小白系统重装官网 ​ 方法一、结束进程 1、同时按下Ctrl、Alt和Del键。弹出操作…

数据库CPU满载如何处理

当数据库CPU满载时&#xff0c;我们首先要做的是让CPU降下来&#xff0c;优先保证系统的可用性。 什么情况会导致数据库CPU飙升呢&#xff1f; QPS过高&#xff1a; 高并发&#xff0c;也就是数据库承载的流量过大。慢SQL&#xff1a; 少量或大量慢SQL占用CPU资源&#xff0c…

Python数据类型转换函数大全

虽然 Python 是弱类型编程语言&#xff0c;不需要像 Java 或 C 语言那样还要在使用变量前声明变量的类型&#xff0c;但在一些特定场景中&#xff0c;仍然需要用到类型转换。 比如说&#xff0c;我们想通过使用 print() 函数输出信息“您的身高&#xff1a;”以及浮点类型 hei…

microsoft已过期

microsoft已过期 第一步&#xff1a;点击红色剪头&#xff0c;选择设置 第二步&#xff1a;点击&#xff1a;关于microsoft edge&#xff1b;等待更新&#xff0c;重启就行。

Oracle数据库如何解决账户过期的情况

相信很多小伙伴都遇到过这样的烦恼 小编也遇到过这样的情况&#xff0c;pL的注册过期&#xff0c;用不了了&#xff0c;十分的苦恼。 下面是小编的解决办法&#xff1a; 注册码&#xff1a; Product Code&#xff1a;4t46t6vydkvsxekkvf3fjnpzy5wbuhphqz …