是否有任何方法限制进程的CPU /内存?
问题:我有一个开发人员机器(读取:快速,大量内存),但用户有一台用户机器(读取速度慢,内存不是很多)。是否有任何方法限制进程的CPU /内存?
我可以模拟使用招慢速网络(http://www.fiddler2.com/fiddler2/) 我可以看看CPU是如何使用的一段时间内的使用处理资源管理器(http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)的步骤。
有什么办法可以限制进程可以拥有的CPU数量,或者进程为了更有效地模拟用户计算机而可以拥有的内存量? (为了隔离性能问题,例如)
我想我可以使用虚拟机,但我正在寻找一些更轻的东西。
我使用Windows XP,但任何Windows机器的解决方案都会受到欢迎。谢谢。
常来与压力测试工具这样做只是这回在过去的好时光(STRESS.EXE
,CPUSTRESS.EXE
在SDK)平台SDK,但他们可能依然存在(请检查您的平台SDK和/或Visual Studio安装的这两个文件 - 不幸的是我有我打字的机器上安装niether的PSDK也不VS)
其他工具:
- 内存:性能&可靠性(例如处理失败的内存分配。 ):可以使用EatMem
- CPU:性能&可靠性(例如,竞争条件):可以使用CPU Burn,Prime95等
- 句柄(GDI,用户):可靠性(例如处理失败的GDI资源分配):可能需要编写自己的,但用完GDI手柄(buggy GTK应用程序通常会将它们全部吃掉,直到系统上的所有其他应用程序开始像苍蝇一样死亡)对任何Windows应用程序都是真正的测试
- disk:性能&可靠性(例如处理磁盘满):DiskFiller等
我试过CPU烧伤,它似乎很好。虽然它有点像大锤。虽然我没有尝试过eatmem。标记为接受的答案。 – 2009-03-06 09:16:27
我发现了一个相关的问题:
Set Windows process (or user) memory limit
的提问接受的答案有一个链接到Windows API的SetProcessWorkingSetSize
,所以它不完全是一个工具,它可以限制的内存量的过程可以使用。
就改变进程可以使用的CPU资源量而言,如果您不介意每个内核资源限制的粒度,则任务管理器可以更改进程的处理器亲缘关系。
在任务管理器中,右键单击某个进程并选择“设置相似性...”,然后选择该进程可分配给的处理器核。
如果开发机器有很多内核,但用户机器只有一个,那么,而不是允许进程在所有可用内核上运行,请将进程的处理器亲缘关系设置为只有一个内核。
它有什么用SetProcessWorkingSetSize
做只需使用内部的Win32内核API来限制CPU使用率
apis提供了限制CPU使用的选项吗? – 2013-12-11 19:46:25
+1是的,我想知道这一点。 – 2009-02-27 06:49:31