[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/2643634.2643642guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

OSv: optimizing the operating system for virtual machines

Published: 19 June 2014 Publication History

Abstract

Virtual machines in the cloud typically run existing general-purpose operating systems such as Linux. We notice that the cloud's hypervisor already provides some features, such as isolation and hardware abstraction, which are duplicated by traditional operating systems, and that this duplication comes at a cost.
We present the design and implementation of OSv, a new guest operating system designed specifically for running a single application on a virtual machine in the cloud. It addresses the duplication issues by using a low-overhead library-OS-like design. It runs existing applications written for Linux, as well as new applications written for OSv. We demonstrate that OSv is able to efficiently run a variety of existing applications. We demonstrate its sub-second boot time, small OS image and how it makes more memory available to the application. For unmodified network-intensive applications, we demonstrate up to 25% increase in throughput and 47% decrease in latency. By using non-POSIX network APIs, we can further improve performance and demonstrate a 290% increase in Memcached throughput.

References

[1]
AMMONS, G., APPAVOO, J., BUTRICO, M., DA SILVA, D., GROVE, D., KAWACHIYA, K., KRIEGER, O., ROSENBURG, B., VAN HENSBERGEN, E., AND WISNIEWSKI, R. W. Libra: a library operating system for a JVM in a virtualized execution environment. In Proceedings of the 3rd international conference on Virtual execution environments (2007), ACM, pp. 44-54.
[2]
ANDERSON, T. E. The performance of spin lock alternatives for shared-memory multiprocessors. IEEE Transactions on Parallel and Distributed Systems 1, 1 (1990), 6-16.
[3]
DES LIGNERIS, B. Virtualization of Linux based computers: the Linux-VServer project. In International Symposium on High Performance Computing Systems and Applications (2005), IEEE, pp. 340-346.
[4]
DOUCEUR, J. R., ELSON, J., HOWELL, J., AND LORCH, J. R. Leveraging legacy code to deploy desktop applications on the web. In OSDI (2008), pp. 339-354.
[5]
ENGLER, D. R., KAASHOEK, M. F., ET AL. Exokernel: An operating system architecture for application-level resource management. In ACM SIGOPS Operating Systems Review (1995), vol. 29, pp. 251-266.
[6]
FITZPATRICK, B. Distributed caching with memcached. Linux Journal, 124 (2004).
[7]
FRIEBEL, T., AND BIEMUELLER, S. How to deal with lock holder preemption. Xen Summit North America (2008).
[8]
GIDENSTAM, A., AND PAPATRIANTAFILOU, M. LFthreads: A lock-free thread library. In Principles of Distributed Systems. Springer, 2007, pp. 217-231.
[9]
HOWELL, J., PARNO, B., AND DOUCEUR, J. R. How to run POSIX apps in a minimal picoprocess. In 2013 USENIX ATC (2013), pp. 321-332.
[10]
JACOBSON, V., AND FELDERMAN, R. Speeding up networking. Linux Conference Australia (2006).
[11]
JONES, R. A. A network performance benchmark (revision 2.0). Tech. rep., Hewlett Packard, 1995.
[12]
KLEIMAN, S. R. Vnodes: An architecture for multiple file system types in Sun UNIX. In USENIX Summer (1986), vol. 86, pp. 238-247.
[13]
LIANG, S. The Java Native Interface: Programmer's Guide and Specification. Addison-Wesley, 1999.
[14]
MADHAVAPEDDY, A., MORTIER, R., ROTSOS, C., SCOTT, D., SINGH, B., GAZAGNAIRE, T., SMITH, S., HAND, S., AND CROWCROFT, J. Unikernels: Library operating systems for the cloud. In ASPLOS (2013), ACM.
[15]
MARTINS, J., AHMED, M., RAICIU, C., OLTEANU, V., HONDA, M., BIFULCO, R., AND HUICI, F. ClickOS and the art of network function virtualization. In USENIX NSDI (2011).
[16]
MASSALIN, H., AND PU, C. A lock-free multiprocessor OS kernel. ACM SIGOPS Operating Systems Review 26, 2 (1992), 108.
[17]
MCKENNEY, P. E., AND SLINGWINE, J. D. Read-copy update: Using execution history to solve concurrency problems. In Parallel and Distributed Computing and Systems (1998), pp. 509-518.
[18]
MEGIDDO, N., AND MODHA, D. Outperforming LRU with an adaptive replacement cache algorithm. Computer 37, 4 (April 2004), 58-65.
[19]
MICHAEL, M. M., AND SCOTT, M. L. Nonblocking algorithms and preemption-safe locking on multiprogrammed shared memory multiprocessors. Journal of Parallel and Distributed Computing 51, 1 (1998), 1-26.
[20]
NISHTALA, R., FUGAL, H., GRIMM, S., KWIATKOWSKI, M., LEE, H., LI, H. C., MCELROY, R., PALECZNY, M., PEEK, D., SAAB, P., ET AL. Scaling Memcache at Facebook. In USENIX NSDI (2013).
[21]
PORTER, D. E., BOYD-WICKIZER, S., HOWELL, J., OLINSKY, R., AND HUNT, G. C. Rethinking the library OS from the top down. ACM SIGPLAN Notices 46, 3 (2011), 291-304.
[22]
PRINTEZIS, T. Garbage collection in the Java HotSpot virtual machine, 2005.
[23]
RIZZO, L. netmap: a novel framework for fast packet I/O. In USENIX ATC (2012).
[24]
ROMER, T. H., OHLRICH, W. H., KARLIN, A. R., AND BERSHAD, B. N. Reducing TLB and memory overhead using online superpage promotion. In Computer Architecture, 1995. Proceedings., 22nd Annual International Symposium on (1995), IEEE, pp. 176-187.
[25]
RUSSELL, R. virtio: towards a de-facto standard for virtual I/O devices. 95-103.
[26]
SOLTESZ, S., PÖTZL, H., FIUCZYNSKI, M. E., BAVIER, A., AND PETERSON, L. Container-based operating system virtualization: a scalable, high-performance alternative to hypervisors. In ACM SIGOPS Operating Systems Review (2007), vol. 41, ACM, pp. 275-287.
[27]
TENE, G., IYENGAR, B., AND WOLF, M. C4: the continuously concurrent compacting collector. ACM SIGPLAN Notices 46, 11 (2011), 79-88.
[28]
UHLIG, V., LEVASSEUR, J., SKOGLUND, E., AND DANNOWSKI, U. Towards scalable multiprocessor virtual machines. In Virtual Machine Research and Technology Symposium (2004), pp. 43-56.
[29]
VMWARE INC. ESX Server 2 - architecture and performance implications. Tech. rep., VMWare, 2005.
[30]
WALDSPURGER, C. A. Memory resource management in VMware ESX server. SIGOPS Oper. Syst. Rev. 36, SI (Dec. 2002), 181-194.
[31]
ZHAO, W., WANG, Z., AND LUO, Y. Dynamic memory balancing for virtual machines. ACM SIGOPS Operating Systems Review 43, 3 (2009), 37-47.

Cited By

View all
  • (2023)Nephele: Extending Virtualization Environments for Cloning Unikernel-based VMsProceedings of the Eighteenth European Conference on Computer Systems10.1145/3552326.3587454(574-589)Online publication date: 8-May-2023
  • (2020)MirageManagerProceedings of the Workshop on Cloud Continuum Services for Smart IoT Systems10.1145/3417310.3431400(13-19)Online publication date: 16-Nov-2020
  • (2019)Towards a Practical Ecosystem of Specialized OS KernelsProceedings of the 9th International Workshop on Runtime and Operating Systems for Supercomputers10.1145/3322789.3328742(3-9)Online publication date: 17-Jun-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide Proceedings
USENIX ATC'14: Proceedings of the 2014 USENIX conference on USENIX Annual Technical Conference
June 2014
512 pages
ISBN:9781931971102

Sponsors

  • VMware
  • NetApp
  • IBMR: IBM Research
  • Facebook: Facebook
  • HP: HP

Publisher

USENIX Association

United States

Publication History

Published: 19 June 2014

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Nephele: Extending Virtualization Environments for Cloning Unikernel-based VMsProceedings of the Eighteenth European Conference on Computer Systems10.1145/3552326.3587454(574-589)Online publication date: 8-May-2023
  • (2020)MirageManagerProceedings of the Workshop on Cloud Continuum Services for Smart IoT Systems10.1145/3417310.3431400(13-19)Online publication date: 16-Nov-2020
  • (2019)Towards a Practical Ecosystem of Specialized OS KernelsProceedings of the 9th International Workshop on Runtime and Operating Systems for Supercomputers10.1145/3322789.3328742(3-9)Online publication date: 17-Jun-2019
  • (2019)Survey and Taxonomy of Volunteer ComputingACM Computing Surveys10.1145/332007352:3(1-35)Online publication date: 3-Jul-2019
  • (2019)UnikernelsProceedings of the Workshop on Hot Topics in Operating Systems10.1145/3317550.3321445(7-13)Online publication date: 13-May-2019
  • (2019)A fork() in the roadProceedings of the Workshop on Hot Topics in Operating Systems10.1145/3317550.3321435(14-22)Online publication date: 13-May-2019
  • (2019)A binary-compatible unikernelProceedings of the 15th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/3313808.3313817(59-73)Online publication date: 14-Apr-2019
  • (2019)Replayable Execution Optimized for Page Sharing for a Managed Runtime EnvironmentProceedings of the Fourteenth EuroSys Conference 201910.1145/3302424.3303978(1-16)Online publication date: 25-Mar-2019
  • (2019)X-ContainersProceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3297858.3304016(121-135)Online publication date: 4-Apr-2019
  • (2018)Unikernels as ProcessesProceedings of the ACM Symposium on Cloud Computing10.1145/3267809.3267845(199-211)Online publication date: 11-Oct-2018
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media