时间:2021-05-22
问题
你想对在Unix系统上面运行的程序设置内存或CPU的使用限制。
解决方案
resource 模块能同时执行这两个任务。例如,要限制CPU时间,可以像下面这样做:
import signalimport resourceimport osdef time_exceeded(signo, frame): print("Time's up!") raise SystemExit(1)def set_max_runtime(seconds): # Install the signal handler and set a resource limit soft, hard = resource.getrlimit(resource.RLIMIT_CPU) resource.setrlimit(resource.RLIMIT_CPU, (seconds, hard)) signal.signal(signal.SIGXCPU, time_exceeded)if __name__ == '__main__': set_max_runtime(15) while True: pass程序运行时,SIGXCPU 信号在时间过期时被生成,然后执行清理并退出。
要限制内存使用,设置可使用的总内存值即可,如下:
import resourcedef limit_memory(maxsize): soft, hard = resource.getrlimit(resource.RLIMIT_AS) resource.setrlimit(resource.RLIMIT_AS, (maxsize, hard))像这样设置了内存限制后,程序运行到没有多余内存时会抛出 MemoryError 异常。
讨论
在本节例子中,setrlimit() 函数被用来设置特定资源上面的软限制和硬限制。 软限制是一个值,当超过这个值的时候操作系统通常会发送一个信号来限制或通知该进程。 硬限制是用来指定软限制能设定的最大值。通常来讲,这个由系统管理员通过设置系统级参数来决定。 尽管硬限制可以改小一点,但是最好不要使用用户进程去修改。
setrlimit() 函数还能被用来设置子进程数量、打开文件数以及类似系统资源的限制。 更多详情请参考 resource 模块的文档。
需要注意的是本节内容只能适用于Unix系统,并且不保证所有系统都能如期工作。 比如我们在测试的时候,它能在Linux上面正常运行,但是在OS X上却不能。
以上就是Python限制内存和CPU的使用量的方法的详细内容,更多关于Python限制内存和CPU的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了python监控进程脚本的具体代码,供大家参考,具体内容如下原理:监控一个指定进程,每隔5秒钟获取其CPU、内存使用量超过60%即kill掉
去年自己写过一个程序时,不太确定自己的内存使用量,就想找写工具来打印程序或函数的内存使用量。这里将上次找到的2个内存检测工具的基本用法记录一下,今后分析Pyth
环境:python3.5.x+django1.9.x+xadmin-for-python3APScheduler做为一个轻量级和使用量很多的后台任务计划(sch
sai内存使用量不足的解决方法: 1、将文档多余的图层进行合并,可以减少占用电脑的内存,从而减低内存使用率。每打开一个文档都会占用一定的内存,文档的像素,色彩
Win10内置了数据使用量工具,方便用户查看已安装软件所使用的网络数据流量,不过许多朋友不知道数据使用量怎么重置,本文接下来就来带大家了解一下数据使用量查看与重