snappy-start

Tool for launching a Linux process from a snapshot

  • Owner: google/snappy-start
  • Platform:
  • License:: BSD 3-Clause "New" or "Revised" License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

snappy-start: Tool for process startup snapshots

snappy-start is a tool which takes a snapshot of a Linux program's process
state after it has started up. It allows multiple instances of the program
to be quickly launched from the snapshot.

This has two potential benefits:

  • Faster startup, if the program does a non-trivial amount of computation
    during startup.

  • Saving memory, because memory pages that the program writes to during
    startup will be shared between the instances.

Usage

First, build the tool by running make.sh (which also runs some tests).

To create a snapshot:

./out/ptracer ./out/elf_loader PROG ARGS...

To run the snapshot:

./out/restore

The program will be snapshotted when it first calls an unhandled
syscall, such as getpid().

Currently, the snapshot data is written to hard-coded files out_info
(containing register state and a list of memory mappings) and out_pages
(data to restore using mmap()).

Example:

$ ./out/ptracer ./out/elf_loader /usr/bin/python tests/python_example.py
$ ./out/restore
Hello world, from restored Python process

Credits

The idea for this tool comes from Kenton Varda, who proposed using a
"record/replay" approach, using ptrace() to monitor syscalls so that
they can later be replayed.

Main metrics

Overview
Name With Ownergoogle/snappy-start
Primary LanguageC
Program languageC (Language Count: 5)
Platform
License:BSD 3-Clause "New" or "Revised" License
所有者活动
Created At2015-06-30 17:52:56
Pushed At2015-09-22 19:17:19
Last Commit At2015-09-22 12:16:29
Release Count0
用户参与
Stargazers Count450
Watchers Count26
Fork Count23
Commits Count59
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count0
Pull Requests Open Count0
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private