如何限制一个JVM中的资源

时间:2013-06-21 10:31:39

标签: wso2

我正在尝试使用WSO2产品,而我正在考虑一个糟糕的代码占用所有CPU时间(例如死循环等)的情况。我确实尝试过WSO2 AS和2个租户,A和B.而A的坏代码确实会影响B和B的应用会有很长的响应延迟甚至卡住。有没有办法限制租户的CPU使用率?谢谢!

2 个答案:

答案 0 :(得分:2)

目前,您必须在所谓的私人飞机模式下设置您的环境,如果您需要完全隔离,每个租户都会获得自己的JVM。

在共享环境中,我们阻止了线程检测,这将确保关键线程不会运行超过指定的时间段。我们计划根据每个租户限制CPU使用率。这将在以后的版本中提供。

答案 1 :(得分:1)

我的建议是不要在一个应用服务器中运行两个租户。在同一台机器上运行两个单独的进程。更好的是,在单独的操作系统级容器中运行两个单独的进程(如jaillxc容器)。如果您不能使用容器,请单独使用虚拟机。

操作系统为您提供了控制CPU使用的工具 - rlimit和很好的流程,以及容器和VM的特定于实现的工具。因为它们是在OS(或虚拟机管理器)中实现的,所以它们能够正确可靠地完成这项工作。应用程序服务器也无法在任何地方执行此操作。

在任何情况下,让独立的应用程序共享应用程序服务器和JVM是一个可怕的想法,应该在90年代被处死。没有必要,它引入了许多潜在的麻烦。