αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αžŸαž„αŸ’αžαŸαž” αž“αž·αž„αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ Kata Containers

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αžŸαž„αŸ’αžαŸαž” αž“αž·αž„αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ Kata Containers
αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž“αžΉαž„αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž€αž»αž„αžαžΊαž“αŸαžš Kataαž αžΎαž™αžœαžΆαž€αŸαž“αžΉαž„αž˜αžΆαž“αž•αŸ’αž“αŸ‚αž€αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž‘αŸ… Docker αž•αž„αžŠαŸ‚αžšαŸ”

αž’αŸ†αž–αžΈαž”αž‰αŸ’αž αžΆαž‘αžΌαž‘αŸ…αž‡αžΆαž˜αž½αž™ Docker αž“αž·αž„αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžšαž½αž…αž αžΎαž™ αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαžαŸ’αž„αŸƒαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αžšαŸ€αž”αžšαžΆαž”αŸ‹αžŸαž„αŸ’αžαŸαž”αž’αŸ†αž–αžΈαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž–αžΈ Kata Containers αŸ” Kata Containers αž‚αžΊαž‡αžΆαžšαž™αŸˆαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž‘αž˜αŸ’αž„αž“αŸ‹αžŸαŸ’αžšαžΆαž›αŸ” αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž–αž½αž€αžœαžΆαž‚αžΊαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„αž€αž»αž„αžαžΊαž“αŸαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αž˜αžΆαž“αž—αžΆαž–αž―αž€αŸ„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αž‡αžΆαž„αž˜αž»αž“αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž“αž·αž˜αŸ’αž˜αž·αžαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αŸ” αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2017 αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžŸαž αž‚αž˜αž“αŸαžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αžŠαžΌαž…αž‚αŸ’αž“αžΆαž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αŸƒαž‚αŸ†αž“αž·αžαžŠαŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαž–αžΈ Intel Clear Containers αž“αž·αž„ Hyper.sh RunV αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž€αžΆαžšαž„αžΆαžšαž”αžΆαž“αž”αž“αŸ’αžαž›αžΎαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž•αŸ’αžŸαŸαž„αŸ—αžšαž½αž˜αž‘αžΆαŸ†αž„ AMD64, ARM, IBM p- αž“αž·αž„ z - αžŸαŸŠαŸαžšαžΈαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αž€αžΆαžšαž„αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž“αŸ…αž€αŸ’αž“αž»αž„ hypervisors QEMU, Firecracker αž αžΎαž™αž˜αžΆαž“αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™ containerd αž•αž„αžŠαŸ‚αžšαŸ” αž›αŸαžαž€αžΌαžŠαž˜αžΆαž“αž“αŸ… GitHub αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ MIT αŸ”

αž›αž€αŸ’αžαžŽαŸˆβ€‹αž–αž·αžŸαŸαžŸ

  • αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžŸαŸ’αž“αžΌαž›αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž”αžŽαŸ’αžαžΆαž‰ αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž“αž·αž„αž—αžΆαž–αž―αž€αŸ„ I/O αžœαžΆαž’αžΆαž…αž”αž„αŸ’αžαŸ†αž±αŸ’αž™αž”αŸ’αžšαžΎαž—αžΆαž–αž―αž€αŸ„αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž“αž·αž˜αŸ’αž˜αž·αž
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž§αžŸαŸ’αžŸαžΆαž αž€αž˜αŸ’αž˜αžšαž½αž˜αž‘αžΆαŸ†αž„ OCI (αž‘αž˜αŸ’αžšαž„αŸ‹αž€αž»αž„αžαžΊαž“αŸαžš) Kubernetes CRI
  • αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž”αŸ‹αž›αžΆαž”αŸ‹αž“αŸƒαž€αž»αž„αžαžΊαž“αŸαžšαž›αžΈαž“αž»αž…αž’αž˜αŸ’αž˜αžαžΆ αž”αž„αŸ’αž€αžΎαž“αž—αžΆαž–αž―αž€αŸ„αžŠαŸ„αž™αž˜αž·αž“αž˜αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαžŸαž–αžΈ VMs αž’αž˜αŸ’αž˜αžαžΆαŸ”
  • αž›αž»αž”αž”αŸ†αž”αžΆαžαŸ‹αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž–αŸαž‰αž›αŸαž‰ αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž‘αžΌαž‘αŸ…αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž„αžΆαž™αžŸαŸ’αžšαž½αž›

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹

αž˜αžΆαž“ αž˜αž½αž™β€‹αž”αžΆαž…αŸ‹ αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸƒαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž–αž·αž…αžΆαžšαžŽαžΆαžŠαŸ†αž‘αžΎαž„αž–αžΈαžƒαŸ’αž›αžΆαŸ†αž„ αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš Centos 7αŸ”
αžŸαŸ†αžαžΆαž“αŸ‹αŸ– αž€αžΆαžšαž„αžΆαžš Kata Containers αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαžαŸ‚αž›αžΎαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž“αž·αž˜αŸ’αž˜αž·αžαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž“αž·αž…αŸ’αž…αž‘αŸαŸ” αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš sse4.1 αž–αžΈ processor αŸ”

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ Kata Containers αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹αŸ–

αžŠαŸ†αž‘αžΎαž„αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžƒαŸ’αž›αžΆαŸ†αž„αŸ–

# yum -y install yum-utils

αž”αž·αž‘ Selinux (αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αžŸαžΆαž˜αž‰αŸ’αž‰ αžαŸ’αž‰αž»αŸ†αž”αž·αž‘αžœαžΆ)αŸ–

# setenforce 0
# sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

αž™αžΎαž„αž—αŸ’αž‡αžΆαž”αŸ‹αžƒαŸ’αž›αžΆαŸ†αž„αž“αž·αž„αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„

# source /etc/os-release
# ARCH=$(arch)
# BRANCH="${BRANCH:-stable-1.10}"
# yum-config-manager --add-repo "http://download.opensuse.org/repositories/home:/katacontainers:/releases:/${ARCH}:/${BRANCH}/CentOS_${VERSION_ID}/home:katacontainers:releases:${ARCH}:${BRANCH}.repo"
# yum -y install kata-runtime kata-proxy kata-shim

αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœ

αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αžšαŸ€αž”αž…αŸ†αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ docker αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžšαž”αžŸαŸ‹αžœαžΆαž‚αžΊαž’αž˜αŸ’αž˜αžαžΆ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž˜αž·αž“αž–αžŽαŸŒαž“αžΆαžœαžΆαž±αŸ’αž™αž›αž˜αŸ’αž’αž·αžαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž‘αŸαŸ–

# rpm -qa | grep docker
docker-ce-cli-19.03.6-3.el7.x86_64
docker-ce-19.03.6-3.el7.x86_64
# docker -v
Docker version 19.03.6, build 369ce74a3c

αž™αžΎαž„αž’αŸ’αžœαžΎαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ… daemon.jsonαŸ–

# cat <<EOF > /etc/docker/daemon.json
{
  "default-runtime": "kata-runtime",
  "runtimes": {
    "kata-runtime": {
      "path": "/usr/bin/kata-runtime"
    }
  }
}
EOF

αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜ docker αž‘αžΎαž„αžœαž·αž‰αŸ–

# service docker restart

αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž˜αž»αžαž„αžΆαžš

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αž»αž„αžαžΊαž“αŸαžšαž˜αž»αž“αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ docker αž‘αžΎαž„αžœαž·αž‰ αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰αžαžΆ uname αž“αžΉαž„αž•αŸ’αžαž›αŸ‹αž€αŸ†αžŽαŸ‚αžšαž”αžŸαŸ‹αžαžΊαžŽαŸ‚αž›αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž˜αŸαŸ–

# docker run busybox uname -a
Linux 19efd7188d06 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64 GNU/Linux

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰ αž€αŸ†αžŽαŸ‚αžαžΊαžŽαŸ‚αž›αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ–

# docker run busybox uname -a
Linux 9dd1f30fe9d4 4.19.86-5.container #1 SMP Sat Feb 22 01:53:14 UTC 2020 x86_64 GNU/Linux

αž€αŸ’αžšαž»αž˜αž…αŸ’αžšαžΎαž“αž‘αŸ€αž!

# time docker run busybox mount
kataShared on / type 9p (rw,dirsync,nodev,relatime,mmap,access=client,trans=virtio)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,size=65536k,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666)
sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,relatime,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (ro,nosuid,nodev,noexec,relatime,xattr,name=systemd)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (ro,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/blkio type cgroup (ro,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (ro,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (ro,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/perf_event type cgroup (ro,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (ro,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/freezer type cgroup (ro,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/pids type cgroup (ro,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/cpuset type cgroup (ro,nosuid,nodev,noexec,relatime,cpuset)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k)
kataShared on /etc/resolv.conf type 9p (rw,dirsync,nodev,relatime,mmap,access=client,trans=virtio)
kataShared on /etc/hostname type 9p (rw,dirsync,nodev,relatime,mmap,access=client,trans=virtio)
kataShared on /etc/hosts type 9p (rw,dirsync,nodev,relatime,mmap,access=client,trans=virtio)
proc on /proc/bus type proc (ro,relatime)
proc on /proc/fs type proc (ro,relatime)
proc on /proc/irq type proc (ro,relatime)
proc on /proc/sys type proc (ro,relatime)
tmpfs on /proc/acpi type tmpfs (ro,relatime)
tmpfs on /proc/timer_list type tmpfs (rw,nosuid,size=65536k,mode=755)
tmpfs on /sys/firmware type tmpfs (ro,relatime)

real    0m2.381s
user    0m0.066s
sys 0m0.039s

# time docker run busybox free -m
              total        used        free      shared  buff/cache   available
Mem:           1993          30        1962           0           1        1946
Swap:             0           0           0

real    0m3.297s
user    0m0.086s
sys 0m0.050s

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž›αžΏαž“

αžŠαžΎαž˜αŸ’αž”αžΈαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž€αžΆαžšαžαžΆαžαž”αž„αŸ‹αž–αžΈαž“αž·αž˜αŸ’αž˜αž·αž - αžαŸ’αž‰αž»αŸ†αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš sysbench αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž…αž˜αŸ’αž”αž„ αž™αž€αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸαŸ‡αŸ”.

αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš sysbench αžŠαŸ„αž™αž”αŸ’αžšαžΎ Docker+containerd

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš

sysbench 1.0:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1
Initializing random number generator from current time

Prime numbers limit: 20000

Initializing worker threads...

Threads started!

General statistics:
    total time:                          36.7335s
    total number of events:              10000
    total time taken by event execution: 36.7173s
    response time:
         min:                                  3.43ms
         avg:                                  3.67ms
         max:                                  8.34ms
         approx.  95 percentile:               3.79ms

Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   36.7173/0.00

αžαŸαžŸαŸ’αž RAM

sysbench 1.0:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1
Initializing random number generator from current time

Initializing worker threads...

Threads started!

Operations performed: 104857600 (2172673.64 ops/sec)

102400.00 MiB transferred (2121.75 MiB/sec)

General statistics:
    total time:                          48.2620s
    total number of events:              104857600
    total time taken by event execution: 17.4161s
    response time:
         min:                                  0.00ms
         avg:                                  0.00ms
         max:                                  0.17ms
         approx.  95 percentile:               0.00ms

Threads fairness:
    events (avg/stddev):           104857600.0000/0.00
    execution time (avg/stddev):   17.4161/0.00

αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš sysbench αžŠαŸ„αž™αž”αŸ’αžšαžΎ Docker + Kata Containers

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš

sysbench 1.0:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1
Initializing random number generator from current time

Prime numbers limit: 20000

Initializing worker threads...

Threads started!

General statistics:
    total time:                          36.5747s
    total number of events:              10000
    total time taken by event execution: 36.5594s
    response time:
         min:                                  3.43ms
         avg:                                  3.66ms
         max:                                  4.93ms
         approx.  95 percentile:               3.77ms

Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   36.5594/0.00

αžαŸαžŸαŸ’αž RAM

sysbench 1.0:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1
Initializing random number generator from current time

Initializing worker threads...

Threads started!

Operations performed: 104857600 (2450366.94 ops/sec)

102400.00 MiB transferred (2392.94 MiB/sec)

General statistics:
    total time:                          42.7926s
    total number of events:              104857600
    total time taken by event execution: 16.1512s
    response time:
         min:                                  0.00ms
         avg:                                  0.00ms
         max:                                  0.43ms
         approx.  95 percentile:               0.00ms

Threads fairness:
    events (avg/stddev):           104857600.0000/0.00
    execution time (avg/stddev):   16.1512/0.00

αž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸ αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž‚αžΊαž…αŸ’αž”αžΆαžŸαŸ‹αžšαž½αž…αž αžΎαž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž›αŸ’αž’αž”αŸ’αžšαžŸαžΎαžšαž‡αžΆαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαž„ αžŠαŸ„αž™αžŠαž€αž…αŸαž‰αž“αžΌαžœαž›αž‘αŸ’αž’αž•αž› αž“αž·αž„αž›αž‘αŸ’αž’αž•αž›αž‡αžΆαž˜αž’αŸ’αž™αž˜ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž‘αžΆαž“αŸ‹αž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžŠαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž“αŸ…αž‘αžΎαž™αž‘αŸαŸ”

αž€αžΆαžšαžšαž€αžƒαžΎαž‰

αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž€αž»αž„αžαžΊαž“αŸαžšαž”αŸ‚αž”αž“αŸαŸ‡αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž–αžΈαž”αŸ’αžšαžΆαŸ†αž‘αŸ…αžŠαž”αŸ‹αžŠαž„αž™αžΌαžšαž‡αžΆαž„αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ (αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž˜αŸ’αž˜αžαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎαž€αž»αž„αžαžΊαž“αŸαžšαž‚αžΊαžαž·αž…αž‡αžΆαž„αž˜αž½αž™αž—αžΆαž‚αž”αžΈαž“αŸƒαžœαž·αž“αžΆαž‘αžΈ) αž–αž½αž€αžœαžΆαž“αŸ…αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αž›αžΏαž“αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαžΆαž…αŸ‹αžαžΆαž (αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αž‚αžΊαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαžαžΆαž„αž›αžΎ αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž˜αž’αŸ’αž™αž˜αž”αžΈαžœαž·αž“αžΆαž‘αžΈ)αŸ” αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹, αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžšαž αŸαžŸαž“αŸƒαžŸαŸŠαžΈαž—αžΈαž™αžΌαž“αž·αž„ RAM αž”αž„αŸ’αž αžΆαž‰αž›αž‘αŸ’αž’αž•αž›αžŸαŸ’αž‘αžΎαžšαžαŸ‚αžŠαžΌαž…αž‚αŸ’αž“αžΆ, αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αžŸαž”αŸ’αž”αžΆαž™αž…αž·αžαŸ’αž, αž‡αžΆαž–αž·αžŸαŸαžŸαž“αŸ…αž€αŸ’αž“αž»αž„αž–αž“αŸ’αž›αžΊαž“αŸƒαž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž—αžΆαž–αž―αž€αŸ„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αžŠαŸ„αž™αž”αŸ’αžšαžΎαž™αž“αŸ’αžαž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αžŠαžΌαž…αž‡αžΆ kvm αŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„

αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž–αž·αž“αž·αžαŸ’αž™αž‘αžΎαž„αžœαž·αž‰ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αŸ’αž“αž€αž“αžΌαžœαž±αž€αžΆαžŸαžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΆαž“αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžαžΆαž˜αžΆαž“αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αŸ†αž“αž½αžŸαŸ” αž•αŸ’αž“αŸ‚αž€αž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αž‘αŸ αž§αž‘αžΆαž αžšαžŽαŸ αž‚αŸαž αž‘αŸ†αž–αŸαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Kubernetes αž“αŸ…αž›αžΎαž€αŸ†αž–αžΌαž›αž“αŸƒ Kata Containers αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžŠαŸ‚αž›αž•αŸ’αžαŸ„αžαž›αžΎαž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž”αž‰αŸ’αž αžΆαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαžšαžΉαžαž”αž“αŸ’αžαžΉαž„ αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”

αžαŸ’αž‰αž»αŸ†αžŸαž»αŸ†αž±αŸ’αž™αž’αŸ’αž“αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž’αžΆαž“ αž“αž·αž„αž”αž“αŸ’αžαž“αŸ…αž‘αžΈαž“αŸαŸ‡ αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΌαž›αžšαž½αž˜αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αž‘αž„αŸ‹αž˜αžαž· αžŠαŸ‚αž›αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαž›αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸαŸ‡αž“αžΉαž„αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αŸ”

αž˜αžΆαž“αžαŸ‚αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž…αžΌαž›αžšαž½αž˜αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αž‘αž„αŸ‹αž˜αžαž·αž“αŸαŸ‡αŸ” αž…αžΌαž›αžŸαžΌαž˜αŸ”

αžαžΎαžαŸ’αž‰αž»αŸ†αž‚αž½αžšαž”αž“αŸ’αžαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž’αžαŸ’αžαž”αž‘αž’αŸ†αž–αžΈ Kata Containers αžŠαŸ‚αžšαž¬αž‘αŸ?

  • 80,0%αž”αžΆαž‘ αžŸαžšαžŸαŸαžšαž”αž“αŸ’αžαŸ‚αž˜!28

  • 20,0%αž‘αŸ αž€αž»αŸ†β€¦ ៧

αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ 35 αž“αžΆαž€αŸ‹αž”αžΆαž“αž”αŸ„αŸ‡αž†αŸ’αž“αŸ„αžαŸ” αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ ៑ៀ αž“αžΆαž€αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αžΆαž˜αžƒαžΆαžαŸ‹αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹