Thread-Level CPU and Memory Usage Control of Custom Code in Multi-tenant SaaS

被引:2
作者
Makki, Majid [1 ]
Van Landuyt, Dimitri [1 ]
Lagaisse, Bert [1 ]
Joosen, Wouter [1 ]
机构
[1] Katholieke Univ Leuven, Dept Comp Sci, Imec DistriNet, Leuven, Belgium
来源
SERVICE-ORIENTED COMPUTING (ICSOC 2019) | 2019年 / 11895卷
关键词
SaaS; Customization; Multi-tenancy; Resource management; Tenant isolation; JRE; PERFORMANCE ISOLATION; RESOURCE-MANAGEMENT; !text type='JAVA']JAVA[!/text;
D O I
10.1007/978-3-030-33702-5_21
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
Software-as-a-Service (SaaS) providers commonly support customization of their services to allow them to attract larger tenant bases. The nature of these customizations in practice ranges from anticipated configuration options to sophisticated code extensions. From a SaaS provider viewpoint, the latter category is particularly challenging as it involves executing untrusted tenant custom code in the SaaS production environment. Proper isolation of custom code in turn requires the ability to control the CPU and memory usage of each tenant. In current practice, OS-level virtualization tools such as hypervisors or containers are predominantly used for this purpose. These techniques, however, constrain the number of tenants that a single node can cost-effectively accommodate. In this paper, we present a practical solution for thread-level tenant isolation, vis-a-vis CPU and memory usage in presence of tenant-provided custom code. Both Java Runtime Environment (JRE) bytecode and tenant code are instrumented with usage control checkpoints which, based on data gathered using the Java Resource Consumption Management API (JSR-284), ensures that CPU and memory usage of tenants remain within their Service-level Agreements (SLA) limits. Our experiments show that the tenant accommodation capacity of single node increases 59 times with the proposed solution instead of containers. This scalability improvement comes at the average cost of 0.31 ns performance overhead per control checkpoint.
引用
收藏
页码:267 / 282
页数:16
相关论文
共 33 条
  • [1] [Anonymous], 2012, OSGI SPEC
  • [2] Back G, 2000, USENIX ASSOCIATION PROCEEDINGS OF THE FOURTH SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION, P333
  • [3] Portable resource control in Java']Java -: The J-SEAL2 approach
    Binder, W
    Hulaas, JG
    Villazón, A
    [J]. ACM SIGPLAN NOTICES, 2001, 36 (11) : 139 - 155
  • [4] A resource management interface for the Java']Java™ platform
    Czajkowski, G
    Hahn, S
    Skinner, G
    Soper, P
    Bryce, C
    [J]. SOFTWARE-PRACTICE & EXPERIENCE, 2005, 35 (02) : 123 - 157
  • [5] Czajkowski G, 2003, USENIX ASSOCIATION PROCEEDINGS OF THE GENERAL TRACK, P85
  • [6] Multitasking without Compromise: a Virtual Machine Evolution
    Czajkowski, Grzegorz
    Daynes, Laurent
    [J]. ACM SIGPLAN NOTICES, 2012, 47 (04) : 60 - 73
  • [7] I-JVM: a Java']Java Virtual Machine for Component Isolation in OSGi
    Geoffray, Nicolas
    Thomas, Gael
    Muller, Gilles
    Parrend, Pierre
    Frenot, Stephane
    Folliot, Bertil
    [J]. 2009 IEEE/IFIP INTERNATIONAL CONFERENCE ON DEPENDABLE SYSTEMS & NETWORKS (DSN 2009), 2009, : 544 - +
  • [8] Call graph construction in object-oriented languages
    Grove, D
    DeFouw, G
    Dean, J
    Chambers, C
    [J]. ACM SIGPLAN NOTICES, 1997, 32 (10) : 108 - 124
  • [9] Gupta D, 2006, LECT NOTES COMPUT SC, V4290, P342
  • [10] Hailue Lin, 2009, Proceedings of the 2009 IEEE 15th International Conference on Parallel and Distributed Systems (ICPADS 2009), P134, DOI 10.1109/ICPADS.2009.22