0

我正在尝试使用 WSO2 产品,并且正在考虑错误代码可能会占用所有 CPU 时间(例如死循环等)的场景。我确实尝试过使用 WSO2 AS 与 2 个租户 A 和 B。A 的错误代码确实会影响 B,B 的应用程序会有很长的响应延迟甚至卡住。有没有办法限制租户的 CPU 使用率?谢谢!

4

2 回答 2

2

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

在共享环境中,我们有卡住线程检测,这将确保关键线程不会运行超过指定的时间段。我们计划针对每个租户限制 CPU 使用率。这将在未来的版本中提供。

于 2013-06-22T05:00:46.060 回答
1

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

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

无论如何,让单独的应用程序共享一个应用程序服务器和 JVM 是一个糟糕的想法,应该在 90 年代被淘汰。根本不需要它,它会带来很多潜在的麻烦。

于 2013-06-21T18:00:54.013 回答