skip to main content
research-article

The nom Profit-Maximizing Operating System

Published: 25 March 2016 Publication History

Abstract

In the near future, cloud providers will sell their users virtual machines with CPU, memory, network, and storage resources whose prices constantly change according to market-driven supply and demand conditions. Running traditional operating systems in these virtual machines is a poor fit: traditional operating systems are not aware of changing resource prices and their sole aim is to maximize performance with no consideration of costs. Consequently, they yield low profits.
We present nom, a profit-maximizing operating system designed for cloud computing platforms with dynamic resource prices. Applications running on nom aim to maximize profits by optimizing simultaneously for performance and resource costs. The nom kernel provides them with direct access to the underlying hardware and full control over their private software stacks. Since nom applications know there is no single ``best'' software stack, they adapt their stacks' behavior on the fly according to the current price of available resources and their private utility from them, which differs between applications. We show that in addition to achieving up to 3.9x better throughput and up to 9.1x better latency, nom applications yield up to 11.1x higher profits when compared with the same applications running on Linux and OSv.

References

[1]
Cloudyn Use Cases (Online). burlhttps://www.cloudyn.com/use-cases/.
[2]
GoGrid Service Level Agreement (Online).burlhttp://www.gogrid.com/legal/service-level-agreement-sla.
[3]
Intel Xeon processor E5 v3 family.burlhttp://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf.
[4]
NTT Service Level Agreement (Online).burlhttp://www.us.ntt.net/support/sla/network.cfm.
[5]
Verizon Service Level Agreement (Online).burlhttp://www.verizonenterprise.com/about/network/latency/.
[6]
t al.(2011)Agmon Ben-Yehuda, Ben-Yehuda, Schuster, and Tsafrir]agmonben-yehuda11O. Agmon Ben-Yehuda, M. Ben-Yehuda, A. Schuster, and D. Tsafrir. Deconstructing Amazon EC2 spot instance pricing. In IEEE International Conference on Cloud Computing Technology and Science (CloudCom), 2011.
[7]
t al.(2012)Agmon Ben-Yehuda, Ben-Yehuda, Schuster, and Tsafrir]agmon-benyehuda12-raasO. Agmon Ben-Yehuda, M. Ben-Yehuda, A. Schuster, and D. Tsafrir. The Resource-as-a-Service (RaaS) cloud. In USENIX Conference on Hot Topics in Cloud Computing (HotCloud), 2012.
[8]
O. Agmon Ben-Yehuda, A. Schuster, A. Sharov, M. Silberstein, and A. Iosup. Expert: Pareto-efficient task replication on grids and clouds. In IEEE International Parallel & Distributed Processing Symposium (IPDPS), 2012.
[9]
O. Agmon Ben-Yehuda, M. Ben-Yehuda, A. Schuster, and D. Tsafrir. The rise of RaaS: The Resource-as-a-Service cloud. Communications of the ACM (CACM), 57 (7): 76--84, July 2014. ISSN 0001-0782. 10.1145/2627422. URL http://doi.acm.org/10.1145/2627422.
[10]
t al.(2014)Agmon Ben-Yehuda, Posener, Ben-Yehuda, Schuster, and Mu'alem]agmon-benyehuda14-ginsengO. Agmon Ben-Yehuda, E. Posener, M. Ben-Yehuda, A. Schuster, and A. Mu'alem. Ginseng: Market-driven memory allocation. In Proceedings of the 10th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, VEE '14, 2014.
[11]
L. Amar, A. Barak, Z. Drezner, and M. Okun. Randomized gossip algorithms for maintaining a distributed bulletin board with guaranteed age properties. Concurrency and Computation: Practice and Experience, 21 (15): 1907--1927, 2009. ISSN 1532-0634. 10.1002/cpe.1418. URL http://dx.doi.org/10.1002/cpe.1418.
[12]
N. Amit, M. Ben-Yehuda, D. Tsafrir, and A. Schuster. vIOMMU: efficient IOMMU emulation. In USENIX Annual Technical Conference (ATC), 2011.
[13]
G. Ammons, D. D. Silva, O. Krieger, D. Grove, B. Rosenburg, R. W. Wisniewski, M. Butrico, K. Kawachiya, and E. V. Hensbergen. Libra: A library operating system for a JVM in a virtualized execution environment. In ACM/USENIX International Conference on Virtual Execution Environments (VEE), 2007.
[14]
A. Barak, S. Guday, and R. G. Wheeler. The MOSIX Distributed Operating System: Load Balancing for UNIX. Springer-Verlag New York, Inc., Secaucus, NJ, USA, 1993. ISBN 0387566635.
[15]
P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho, R. Neugebauer, I. Pratt, and A. Warfield. Xen and the art of virtualization. In ACM Symposium on Operating Systems Principles (SOSP), 2003.
[16]
A. Baumann, P. Barham, P.-E. Dagand, T. Harris, R. Isaacs, S. Peter, T. Roscoe, A. Schüpbach, and A. Singhania. The multikernel: a new OS architecture for scalable multicore systems. In ACM Symposium on Operating Systems Principles (SOSP), 2009. http://dx.doi.org/10.1145/1629575.1629579.
[17]
A. Belay, A. Bittau, A. Mashtizadeh, D. Terei, D. Mazieres, and C. Kozyrakis. Dune: Safe user-level access to privileged cpu features. In Symposium on Operating Systems Design & Implementation (OSDI), 2012.
[18]
A. Belay, G. Prekas, A. Klimovic, S. Grossman, C. Kozyrakis, and E. Bugnion. Ix: A protected dataplane operating system for high throughput and low latency. In Symposium on Operating Systems Design & Implementation (OSDI), 2014.
[19]
A. M. Caulfield, T. I. Mollov, L. A. Eisner, A. De, J. Coburn, and S. Swanson. Providing safe, user space access to fast, solid state disks. In ACM Architectural Support for Programming Languages & Operating Systems (ASPLOS), 2012.
[20]
Y. Chen, A. Bilas, S. N. Damianakis, C. Dubnicki, and K. Li. UTLB: a mechanism for address translation on network interfaces. SIGPLAN Not., 33: 193--204, October 1998. ISSN 0362--1340. 10.1145/291006.291046. URL http://dx.doi.org/10.1145/291006.291046.
[21]
Y. Ding, M. Kandemir, P. Raghavan, and M. J. Irwin. A helper thread based EDP reduction scheme for adapting application execution in cmps. In IEEE International Parallel & Distributed Processing Symposium (IPDPS), 2008.
[22]
C. Dovrolis, B. Thayer, and P. Ramanathan. HIP: hybrid interrupt-polling for the network interface. ACM SIGOPS Operating Systems Review (OSR), 35: 50--60, 2001. ISSN 0163--5980. http://doi.acm.org/10.1145/506084.506089. URL http://doi.acm.org/10.1145/506084.506089.
[23]
A. Dunkels. Design and implementation of the lwIP TCP/IP stack. In Swedish Institute of Computer Science, volume 2, page 77, 2001.
[24]
D. R. Engler and M. F. Kaashoek. Exterminate all operating system abstractions. In USENIX Workshop on Hot Topics in Operating Systems (HOTOS), pages 78--83. IEEE Computer Society, 1995.
[25]
engler95-sospD. R. Engler, M. F. Kaashoek, and J. O'Toole Jr. Exokernel: an operating system architecture for application-level resource management. In ACM Symposium on Operating Systems Principles (SOSP), 1995.
[26]
B. Fitzpatrick. Distributed caching with memcached. Linux J., 2004 (124): 5--, Aug. 2004. ISSN 1075--3583. URL http://dl.acm.org/citation.cfm?id=1012889.1012894.
[27]
G. R. Ganger, D. R. Engler, M. F. Kaashoek, H. M. Briceno, R. Hunt, and T. Pinckney. Fast and flexible application-level networking on exokernel systems. ACM Transactions on Computer Systems (TOCS), 20 (1): 49--83, February 2002.
[28]
A. Gordon, M. Hines, D. Da Silva, M. Ben-Yehuda, M. Silva, and G. Lizarraga. Ginkgo: Automated, application-driven memory overcommitment for cloud computing. In Runtime Environments/Systems, Layering, & Virtualized Environments workshop (ASPLOS RESOLVE), 2011.
[29]
Gordon, Amit, Har'El, Ben-Yehuda, Landau, Tsafrir, and Schuster]gordon12A. Gordon, N. Amit, N. Har'El, M. Ben-Yehuda, A. Landau, D. Tsafrir, and A. Schuster. ELI: Bare-metal performance for I/O virtualization. In ACM Architectural Support for Programming Languages & Operating Systems (ASPLOS), 2012.
[30]
Gordon, Har'El, Landau, Ben-Yehuda, and Traeger]gordon12-elvisA. Gordon, N. Har'El, A. Landau, M. Ben-Yehuda, and A. Traeger. Towards exitless and efficient paravirtual I/O. In The 5th Annual International Systems and Storage Conference (SYSTOR), 2012.
[31]
S. Han, S. Marshall, B.-G. Chun, and S. Ratnasamy. Megapipe: A new programming interface for scalable network i/o. In Symposium on Operating Systems Design & Implementation (OSDI), pages 135--148, Hollywood, CA, 2012. USENIX. ISBN 978-1-931971-96-6. URL https://www.usenix.org/conference/osdi12/technical-sessions/presentation/han.
[32]
S. M. Hand. Self-paging in the Nemesis operating system. In Symposium on Operating Systems Design & Implementation (OSDI), pages 73--86, Berkeley, CA, USA, 1999. USENIX Association. ISBN 1--880446--39--1. URL http://portal.acm.org/citation.cfm?id=296812.
[33]
N. Har'El, A. Gordon, A. Landau, M. Ben-Yehuda, A. Traeger, and R. Ladelsky. Efficient and scalable paravirtual I/O system. In USENIX Annual Technical Conference (ATC), 2013.
[34]
G. Heiser, K. Elphinstone, J. Vochteloo, S. Russell, and J. Liedtke. The mungi single-address-space operating system. Software: Practice and Experience, 28 (9): 901--928, 1998. ISSN 1097-024X. 10.1002/(SICI)1097-024X(19980725)28:9<901::AID-SPE181>3.0.CO;2-7. URL http://dx.doi.org/10.1002/(SICI)1097-024X(19980725)28:9<901::AID-SPE181>3.0.CO;2-7.
[35]
M. Hines, A. Gordon, M. Silva, D. D. Silva, K. D. Ryu, and M. Ben-Yehuda. Applications know best: Performance-driven memory overcommit with ginkgo. In IEEE International Conference on Cloud Computing Technology and Science (CloudCom), 2011.
[36]
Intel. Intel virtualization technology for directed I/O, architecture specification. ftp://download.intel.com/technology/computing/vptech/Intel(r)\_VT\_for\_Direct\_IO.pdf, Feb 2011. Revision 1.3. Intel Corporation. (Accessed Apr 2011).
[37]
A. Itzkovitz and A. Schuster. MultiView and MilliPage--fine-grain sharing in page-based DSMs. In Symposium on Operating Systems Design & Implementation (OSDI), 1999.
[38]
E. Jeong, S. Wood, M. Jamshed, H. Jeong, S. Ihm, D. Han, and K. Park. mtcp: a highly scalable user-level tcp stack for multicore systems. pages 489--502, Seattle, WA, Apr. 2014. USENIX Association. ISBN 978--1--931971-09--6. URL https://www.usenix.org/conference/nsdi14/technical-sessions/presentation/jeong.
[39]
E. Keller, J. Szefer, J. Rexford, and R. B. Lee. Nohype: virtualized cloud infrastructure without the virtualization. In ACM/IEEE International Symposium on Computer Architecture (ISCA), New York, NY, USA, 2010. ACM. ISBN 978--1--4503-0053--7. http://doi.acm.org/10.1145/1815961.1816010.
[40]
F. Kelly. Charging and rate control for elastic traffic. European Transactions on Telecommunications, 8, 1997.
[41]
R. E. Kessler and M. D. Hill. Page placement algorithms for large real-indexed caches. ACM Transactions on Computer Systems (TOCS), 10 (4): 338--359, Nov. 1992. ISSN 0734--2071. 10.1145/138873.138876. URL http://doi.acm.org/10.1145/138873.138876.
[42]
A. Kivity, Y. Kamay, D. Laor, U. Lublin, and A. Liguori. KVM: the Linux virtual machine monitor. In Ottawa Linux Symposium (OLS), 2007. http://www.kernel.org/doc/ols/2007/ols2007v1-pages-225-230.pdf. (Accessed Apr, 2011).
[43]
, Marti, and Zolotarov]kivity14A. Kivity, D. Laor, G. Costa, P. Enberg, N. Har\textquoterightEl, D. Marti, and V. Zolotarov. Osv\textemdashoptimizing the operating system for virtual machines. In USENIX Annual Technical Conference (ATC), 2014.
[44]
G. Klein, K. Elphinstone, G. Heiser, J. Andronick, D. Cock, P. Derrin, D. Elkaduwe, K. Engelhardt, R. Kolanski, M. Norrish, T. Sewell, H. Tuch, and S. Winwood. seL4: formal verification of an os kernel. In ACM Symposium on Operating Systems Principles (SOSP), 2009.
[45]
O. Krieger, M. Auslander, B. Rosenburg, R. W. Wisniewski, J. Xenidis, D. Da Silva, M. Ostrowski, J. Appavoo, M. Butrico, M. Mergen, A. Waterland, and V. Uhlig. K42: building a complete operating system. In ACM SIGOPS European Conference on Computer Systems (EuroSys), 2006.
[46]
A. Landau, M. Ben-Yehuda, and A. Gordon. SplitX: Split guest/hypervisor execution on multi-core. In USENIX Workshop on I/O Virtualization (WIOV), 2011.
[47]
C. B. Lee and A. E. Snavely. Precise and realistic utility functions for user-centric performance analysis of schedulers. In International Symposium on High Performance Distributed Computer (HPDC), 2007.
[48]
I. Leslie, D. McAuley, R. Black, T. Roscoe, P. Barham, D. Evers, R. Fairbairns, and E. Hyden. The design and implementation of an operating system to support distributed multimedia applications. Selected Areas in Communications, IEEE Journal on, 14 (7): 1280--1297, Sep 1996. ISSN 0733--8716. 10.1109/49.536480.
[49]
J. LeVasseur, V. Uhlig, J. Stoess, and S. Götz. Unmodified device driver reuse and improved system dependability via virtual machines. In Symposium on Operating Systems Design & Implementation (OSDI), 2004.
[50]
J. Liu, W. Huang, B. Abali, and D. K. Panda. High performance VMM-bypass I/O in virtual machines. In USENIX Annual Technical Conference (ATC), pages 29--42, 2006.
[51]
D. Lo, L. Cheng, R. Govindaraju, L. A. Barroso, and C. Kozyrakis. Towards energy proportionality for large-scale latency-critical workloads. In Proceeding of the 41st Annual International Symposium on Computer Architecuture, ACM/IEEE International Symposium on Computer Architecture (ISCA), pages 301--312, Piscataway, NJ, USA, 2014. IEEE Press. ISBN 978-1-4799-4394-4. URL http://dl.acm.org/citation.cfm?id=2665671.2665718.
[52]
A. Madhavapeddy, R. Mortier, R. Sohan, T. Gazagnaire, S. Hand, T. Deegan, D. McAuley, and J. Crowcroft. Turning down the lamp: software specialisation for the cloud. In USENIX Conference on Hot Topics in Cloud Computing (HotCloud), 2010.
[53]
A. Madhavapeddy, R. Mortier, C. Rotsos, D. Scott, B. Singh, T. Gazagnaire, S. Smith, S. Hand, and J. Crowcroft. Unikernels: Library operating systems for the cloud. In ACM Architectural Support for Programming Languages & Operating Systems (ASPLOS), 2013.
[54]
J. C. Mogul and K. K. Ramakrishnan. Eliminating receive livelock in an interrupt-driven kernel. ACM Transactions on Computer Systems (TOCS), 15: 217--252, 1997. ISSN 0734--2071. http://doi.acm.org/10.1145/263326.263335. URL http://doi.acm.org/10.1145/263326.263335.
[55]
Note1. https://www.cloudsigma.com/pricing/ accessed in October 2015.
[56]
Note2. Kovacs, Kristof, "Charting CloudSigma Burst Prices", http://kkovacs.eu/cloudsigma-burst-price-chart, July 2012, accessed October 2015.
[57]
Note3. Paavolainen Santeri, http://santtu.iki.fi/2014/03/20/ec2-spot-market/, March 2014, accessed October 2015.
[58]
007)]sriovPCI SIG. Single root I/O virtualization and sharing 1.0 specification, 2007.
[59]
S. Peter, J. Li, I. Zhang, D. R. K. Ports, D. Woos, A. Krishnamurthy, T. Anderson, and T. Roscoe. Arrakis: The operating system is the control plane. In Symposium on Operating Systems Design & Implementation (OSDI), 2014.
[60]
D. E. Porter, S. Boyd-Wickizer, J. Howell, R. Olinsky, and G. C. Hunt. Rethinking the library OS from the top down. In ACM Architectural Support for Programming Languages & Operating Systems (ASPLOS), 2011.
[61]
L. Rizzo. Netmap: a novel framework for fast packet I/O. In USENIX Annual Technical Conference (ATC), 2012.
[62]
R. Russell. virtio: towards a de-facto standard for virtual I/O devices. ACM SIGOPS Operating Systems Review (OSR), 42 (5): 95--103, 2008.
[63]
L. Ryzhyk, A. Walker, J. Keys, A. Legg, A. Raghunath, M. Stumm, and M. Vij. User-guided device driver synthesis. In Symposium on Operating Systems Design & Implementation (OSDI), pages 661--676, Broomfield, CO, Oct. 2014. USENIX Association. ISBN 978--1--931971--16--4. URL https://www.usenix.org/conference/osdi14/technical-sessions/presentation/ryzhyk.
[64]
J. H. Salim, R. Olsson, and A. Kuznetsov. Beyond Softnet. In Anual Linux Showcase & Conference, 2001. URL http://portal.acm.org/citation.cfm?id=1268488.1268506.
[65]
L. Schaelicke and A. L. Davis. Design Trade-Offs for User-Level I/O Architectures. IEEE Trans. Comput., 55: 962--973, August 2006. ISSN 0018--9340. URL http://portal.acm.org/citation.cfm?id=1159194.
[66]
Q. O. Snell, A. R. Mikler, and J. L. Gustafson. Netpipe: A network protocol independent performance evaluator. IASTED International Conference on Intelligent Information Management and Systems, 6, 1996.
[67]
R. Uhlig, G. Neiger, D. Rodgers, A. L. Santoni, F. C. M. Martins, A. V. Anderson, S. M. Bennett, A. Kagi, F. H. Leung, and L. Smith. Intel virtualization technology. Computer, 38 (5): 48--56, 2005. ISSN 0018--9162. 10.1109/MC.2005.163. URL http://dx.doi.org/10.1109/MC.2005.163.
[68]
E. Van Hensbergen. P.R.O.S.E.: partitioned reliable operating system environment. SIGOPS Oper. Syst. Rev., 40 (2): 12--15, Apr. 2006. ISSN 0163--5980. 10.1145/1131322.1131329. URL http://doi.acm.org/10.1145/1131322.1131329.
[69]
vfio. VFIO driver: non-privileged user level PCI drivers. http://lwn.net/Articles/391459/, Jun 2010. (Accessed Feb., 2015).
[70]
T. von Eicken, A. Basu, V. Buch, and W. Vogels. U-Net: a user-level network interface for parallel and distributed computing. In ACM Symposium on Operating Systems Principles (SOSP), New York, NY, USA, 1995.
[71]
P. Willmann, S. Rixner, and A. L. Cox. Protection strategies for direct access to virtualized I/O devices. In USENIX Annual Technical Conference (ATC), 2008.
[72]
B.-A. Yassour, M. Ben-Yehuda, and O. Wasserman. Direct device assignment for untrusted fully-virtualized virtual machines. Technical Report H-0263, IBM Research, 2008.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 51, Issue 7
VEE '16
July 2016
167 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/3007611
Issue’s Table of Contents
  • cover image ACM Conferences
    VEE '16: Proceedings of the12th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments
    March 2016
    186 pages
    ISBN:9781450339476
    DOI:10.1145/2892242
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 March 2016
Published in SIGPLAN Volume 51, Issue 7

Check for updates

Author Tags

  1. cloud computing
  2. game theory
  3. operating systems

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 07 Jan 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media