gpt4 book ai didi

python - Simpy - 访问多个资源

转载 作者:太空宇宙 更新时间:2023-11-03 16:33:58 25 4
gpt4 key购买 nike

我开始学习SimPy DES框架。我想实现一个模拟,其中请求在不同时间到达服务器。有不同类型的请求,每一种请求都会向服务器加载特定的内存/CPU 负载。例如,某些请求通常使用 10% 的 CPU 和 100MB 的内存,而其他请求可能需要 15% 的 CPU 和 150MB 的 RAM(这些只是示例数字)。服务器有自己的特点和一定数量的内存。如果请求到达服务器并且没有准备好所需的资源量,则该请求应该等待。我知道如何处理单个资源的情况 - 例如,我可以使用容量为 100、初始量为 100 的 Container 类来实现 CPU 负载,与内存类似。但是,如何实现我的请求应该等待 CPU 和内存都可用的情况?

提前致谢!

最佳答案

最简单的解决方案是使用 AllOf 条件事件,如下所示:

cpu_req = cpu.get(15)  # Request 15% CPU capactiy
mem_req = mem.get(10) # Request 10 memories
yield cpu_req & mem_req # Wait until we have cpu time and memory
yield env.timeout(10) # Use resources for 10 time units

这将导致您的进程等待,直到触发两个请求事件。但是,如果 t=5 时 cpu 可用,t=20 时内存可用,则 CPU 将在整个时间(从 5-20 + 您实际使用 CPU 的时间)被阻塞。

这对你有用吗?

关于python - Simpy - 访问多个资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com