Update readme with performance stuff
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
parent
8af8c56510
commit
7baee380ea
3 changed files with 26 additions and 4 deletions
24
README.md
24
README.md
|
@ -1,6 +1,8 @@
|
||||||
# containerd
|
# containerd
|
||||||
|
|
||||||
another container runtime
|
Another container runtime built for performance and density.
|
||||||
|
containerd has advanced features such as seccomp and user namespace support as well
|
||||||
|
as checkpoint and restore for cloning and live migration of containers.
|
||||||
|
|
||||||
#### Status
|
#### Status
|
||||||
|
|
||||||
|
@ -12,6 +14,26 @@ What does alpha, beta, etc mean?
|
||||||
* prod ready - read for production
|
* prod ready - read for production
|
||||||
|
|
||||||
|
|
||||||
|
# Performance
|
||||||
|
|
||||||
|
Starting 1000 containers concurrently runs at 126-140 containers per second.
|
||||||
|
|
||||||
|
Overall start times:
|
||||||
|
|
||||||
|
```
|
||||||
|
[containerd] 2015/12/04 15:00:54 count: 1000
|
||||||
|
[containerd] 2015/12/04 14:59:54 min: 23ms
|
||||||
|
[containerd] 2015/12/04 14:59:54 max: 355ms
|
||||||
|
[containerd] 2015/12/04 14:59:54 mean: 78ms
|
||||||
|
[containerd] 2015/12/04 14:59:54 stddev: 34ms
|
||||||
|
[containerd] 2015/12/04 14:59:54 median: 73ms
|
||||||
|
[containerd] 2015/12/04 14:59:54 75%: 91ms
|
||||||
|
[containerd] 2015/12/04 14:59:54 95%: 123ms
|
||||||
|
[containerd] 2015/12/04 14:59:54 99%: 287ms
|
||||||
|
[containerd] 2015/12/04 14:59:54 99.9%: 355ms
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
# REST API v1
|
# REST API v1
|
||||||
|
|
||||||
## Starting a container
|
## Starting a container
|
||||||
|
|
|
@ -47,7 +47,6 @@ type server struct {
|
||||||
supervisor *containerd.Supervisor
|
supervisor *containerd.Supervisor
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: implement correct shutdown
|
|
||||||
func (s *server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
func (s *server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
s.r.ServeHTTP(w, r)
|
s.r.ServeHTTP(w, r)
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,9 +13,10 @@ func (h *DeleteEvent) Handle(e *Event) error {
|
||||||
if container, ok := h.s.containers[e.ID]; ok {
|
if container, ok := h.s.containers[e.ID]; ok {
|
||||||
if err := h.deleteContainer(container); err != nil {
|
if err := h.deleteContainer(container); err != nil {
|
||||||
logrus.WithField("error", err).Error("containerd: deleting container")
|
logrus.WithField("error", err).Error("containerd: deleting container")
|
||||||
|
} else {
|
||||||
|
ContainersCounter.Dec(1)
|
||||||
|
h.s.containerGroup.Done()
|
||||||
}
|
}
|
||||||
ContainersCounter.Dec(1)
|
|
||||||
h.s.containerGroup.Done()
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue