Update readme with performance stuff

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
Michael Crosby 2015-12-04 15:04:53 -08:00
parent 8af8c56510
commit 7baee380ea
3 changed files with 26 additions and 4 deletions

View file

@ -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

View file

@ -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)
} }

View file

@ -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
} }