เจ•เจพเจŸเจพ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ เจ…เจคเฉ‡ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช

เจ•เจพเจŸเจพ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ เจ…เจคเฉ‡ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช
เจ‡เจน เจฒเฉ‡เจ– เจšเจฐเจšเจพ เจ•เจฐเฉ‡เจ—เจพ เจ•เจฟ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจพเจŸเจพ เจ•เฉฐเจŸเฉ‡เจจเจฐ, เจ…เจคเฉ‡ เจกเฉŒเจ•เจฐ เจจเจพเจฒ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจ•เจจเฉˆเจ•เจธเจผเจจ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจตเจฟเจนเจพเจฐเจ• เจนเจฟเฉฑเจธเจพ เจตเฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจกเฉŒเจ•เจฐ เจจเจพเจฒ เจ†เจฎ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจนเฉฑเจฒ เจฌเจพเจฐเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฒเจฟเจ–เฉ€เจ† เจธเฉ€, เจ…เฉฑเจœ เจฎเฉˆเจ‚ เจ•เจพเจŸเจพ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเจพ เจธเฉฐเจ–เฉ‡เจช เจตเจฐเจฃเจจ เจ•เจฐเจพเจ‚เจ—เจพเฅค เจ•เจพเจŸเจพ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจนเจฒเจ•เฉ‡ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจ‡เฉฑเจ• เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฐเจจเจŸเจพเจˆเจฎ เจนเฉˆเฅค เจ‰เจนเจจเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจฆเฉ‚เจœเฉ‡ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจตเจพเจ‚เจ— เจนเฉ€ เจนเฉˆ, เจชเจฐ เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจตเจฐเจšเฉเจ…เจฒเจพเจˆเจœเฉ‡เจธเจผเจจ เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจตเจงเฉ‡เจฐเฉ‡ เจญเจฐเฉ‹เจธเฉ‡เจฎเฉฐเจฆ เจ†เจˆเจธเฉ‹เจฒเฉ‡เจธเจผเจจ เจนเฉˆเฅค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ 2017 เจตเจฟเฉฑเจš เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจ‡เจ†, เจœเจฆเฉ‹เจ‚ เจ‰เจธเฉ‡ เจจเจพเจฎ เจฆเฉ‡ เจญเจพเจˆเจšเจพเจฐเฉ‡ เจจเฉ‡ Intel Clear Containers เจ…เจคเฉ‡ Hyper.sh RunV เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจตเจฟเจšเจพเจฐเจพเจ‚ เจฆเจพ เจตเจฟเจฒเฉ€เจจเจคเจพ เจชเฉ‚เจฐเจพ เจ•เฉ€เจคเจพ, เจœเจฟเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ AMD64, ARM, IBM p- เจ…เจคเฉ‡ z เจธเจฎเฉ‡เจค เจตเฉฑเจ–-เจตเฉฑเจ– เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจธเจฎเจฐเจฅเจจ 'เจคเฉ‡ เจ•เฉฐเจฎ เจœเจพเจฐเฉ€ เจฐเจฟเจนเจพเฅค -เจฒเฉœเฉ€เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจนเจพเจˆเจชเจฐเจตเจพเจˆเจœเจผเจฐ QEMU, เจซเจพเจ‡เจฐเจ•เฉเจฐเฉˆเจ•เจฐ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ•เฉฐเจฎ เจธเจฎเจฐเจฅเจฟเจค เจนเฉˆ, เจ…เจคเฉ‡ เจ•เฉฐเจŸเฉ‡เจจเจฐเจก เจจเจพเจฒ เจเจ•เฉ€เจ•เจฐเจฃ เจตเฉ€ เจนเฉˆเฅค เจ•เฉ‹เจก 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเฉˆ GitHub MIT เจฒเจพเจ‡เจธเฉฐเจธ เจฆเฉ‡ เจคเจนเจฟเจค.

เจœเจฐเฉ‚เจฐเฉ€ เจšเฉ€เจœเจพ

  • เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจ•เฉ‹เจฐ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ, เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจจเฉˆเจŸเจตเจฐเจ•, เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจ…เจคเฉ‡ I / O เจ†เจˆเจธเฉ‹เจฒเฉ‡เจธเจผเจจ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจตเจฐเจšเฉเจ…เจฒเจพเจˆเจœเฉ‡เจธเจผเจจ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจ†เจˆเจธเฉ‹เจฒเฉ‡เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเฉ‚เฉฐ เจฎเจœเจฌเฉ‚เจฐ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆ
  • OCI (เจ•เฉฐเจŸเฉ‡เจจเจฐ เจซเจพเจฐเจฎเฉˆเจŸ), Kubernetes CRI เจธเจฎเฉ‡เจค เจ‰เจฆเจฏเฉ‹เจ— เจฆเฉ‡ เจฎเจฟเจ†เจฐเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ
  • เจจเจฟเจฏเจฎเจค เจฒเฉ€เจจเจ•เจธ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจฆเฉ€ เจจเจฟเจฐเฉฐเจคเจฐ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€, เจจเจฟเจฏเจฎเจค VMs เจฆเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ“เจตเจฐเจนเฉˆเฉฑเจก เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจตเจงเฉ€ เจนเฉ‹เจˆ เจ†เจˆเจธเฉ‹เจฒเฉ‡เจธเจผเจจ
  • เจชเฉ‚เจฐเฉ‡ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจจเฉ‚เฉฐ เจ–เจคเจฎ เจ•เจฐเฉ‹, เจ†เจฎ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจเจ•เฉ€เจ•เจฐเจฃ เจ…เจคเฉ‡ เจฒเจพเจ‚เจš เจจเฉ‚เฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ

เจธเฉˆเจŸเจฟเฉฐเจ—

เจนเจจ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจตเจฟเจ•เจฒเจช, เจฎเฉˆเจ‚ Centos 7 เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡, เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจตเจฟเจšเจพเจฐ เจ•เจฐเจพเจ‚เจ—เจพเฅค
เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจฃ: เจ•เจพเจŸเจพ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฆเจพ เจ•เฉฐเจฎ เจธเจฟเจฐเจซเจผ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ 'เจคเฉ‡ เจธเจฎเจฐเจฅเจฟเจค เจนเฉˆ, เจตเจฐเจšเฉเจ…เจฒเจพเจˆเจœเฉ‡เจธเจผเจจ เจซเจพเจฐเจตเจฐเจกเจฟเฉฐเจ— เจนเจฎเฉ‡เจธเจผเจพ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ€, เจตเฉ€ sse4.1 เจธเจนเจฟเจฏเฉ‹เจ— เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจคเฉ‹เจ‚.

เจ•เจพเจŸเจพ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ เจฌเจนเฉเจค เจธเฉŒเจ–เจพ เจนเฉˆ:

เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ‰เจชเจฏเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹:

# yum -y install yum-utils

เจธเฉ‡เจฒเจฟเจจเจ•เจธ เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เจฐเฉ‹ (เจ‡เจน เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจเจพ เจตเจงเฉ‡เจฐเฉ‡ เจธเจนเฉ€ เจนเฉˆ, เจชเจฐ เจธเจฐเจฒเจคเจพ เจฒเจˆ เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ…เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจฆเจพ เจนเจพเจ‚):

# 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

เจตเจฟเจตเจธเจฅเจพ

เจฎเฉˆเจ‚ เจกเฉŒเจ•เจฐ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจธเจฅเจพเจชเจค เจ•เจฐเจพเจ‚เจ—เจพ, เจ‡เจธเจฆเฉ€ เจธเจฅเจพเจชเจจเจพ เจ†เจฎ เจนเฉˆ, เจฎเฉˆเจ‚ เจ‡เจธเจฆเจพ เจตเจงเฉ‡เจฐเฉ‡ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจพเจ‚เจ—เจพ:

# 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

เจกเฉŒเจ•เจฐ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‹:

# service docker restart

เจธเจฟเจนเจค เจœเจพเจ‚เจš

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจกเฉŒเจ•เจฐ เจจเฉ‚เฉฐ เจฐเฉ€เจธเจŸเจพเจฐเจŸ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ 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 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

เจฐเฉˆเจฎ เจŸเฉˆเจธเจŸ

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

เจฐเฉˆเจฎ เจŸเฉˆเจธเจŸ

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

เจธเจฟเจงเจพเจ‚เจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡, เจธเจฅเจฟเจคเฉ€ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ, เจชเจฐ เจŸเฉˆเจธเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจˆ เจตเจพเจฐ เจšเจฒเจพเจ‰เจฃเจพ, เจ†เจŠเจŸเจฒเฉ€เจ…เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃเจพ เจ…เจคเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจฆเจพ เจ”เจธเจค เจฌเจฃเจพเจ‰เจฃเจพ เจตเจงเฉ‡เจฐเฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจฎเฉˆเจ‚ เจ…เจœเฉ‡ เจนเฉ‹เจฐ เจŸเฉˆเจธเจŸ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเจพเจ‚.

เจธเจฟเฉฑเจŸเจพ

เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ เจ•เจฟ เจ…เจœเจฟเจนเฉ‡ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจตเจฟเฉฑเจš เจฒเจ—เจญเจ— เจชเฉฐเจœ เจคเฉ‹เจ‚ เจฆเจธ เจ—เฉเจฃเจพ เจœเจผเจฟเจ†เจฆเจพ เจธเจฎเจพเจ‚ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ (เจ•เฉฐเจŸเฉ‡เจจเจฐเจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจธเจฎเจพเจจ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจฒเจˆ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจšเฉฑเจฒเจฃ เจฆเจพ เจธเจฎเจพเจ‚ เจ‡เฉฑเจ• เจธเจ•เจฟเฉฐเจŸ เจฆเฉ‡ เจ‡เฉฑเจ• เจคเจฟเจนเจพเจˆ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจนเฉเฉฐเจฆเจพ เจนเฉˆ), เจ‰เจน เจ…เจœเฉ‡ เจตเฉ€ เจฌเจนเฉเจค เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจชเฉ‚เจฐเจพ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฎเจพเจ‚ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจพเจ‚ (เจ‰เฉฑเจฅเฉ‡ เจ‰เจชเจฐเฉ‹เจ•เจค เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจนเจจ, เจ”เจธเจคเจจ เจคเจฟเฉฐเจจ เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚)เฅค เจ–เฉˆเจฐ, CPU เจ…เจคเฉ‡ RAM เจฆเฉ‡ เจ‡เฉฑเจ• เจคเฉ‡เจœเจผ เจŸเฉˆเจธเจŸ เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจฒเจ—เจญเจ— เจ‰เจนเฉ€ เจจเจคเฉ€เจœเฉ‡ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ, เจœเฉ‹ เจ•เจฟ เจ–เฉเจธเจผ เจจเจนเฉ€เจ‚ เจนเฉ‹ เจธเจ•เจฆเฉ‡, เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจฐเฉ‹เจธเจผเจจเฉ€ เจตเจฟเฉฑเจš เจ•เจฟ เจ†เจˆเจธเฉ‹เจฒเฉ‡เจธเจผเจจ kvm เจตเจฐเจ—เฉ€ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจšเฉฑเจฒ เจฐเจนเฉ€ เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจ˜เฉ‹เจธเจผเจฃเจพ

เจฒเฉ‡เจ– เจ‡เฉฑเจ• เจธเจฎเฉ€เจ–เจฟเจ† เจนเฉˆ, เจชเจฐ เจ‡เจน เจคเฉเจนเจพเจจเฉ‚เฉฐ เจตเจฟเจ•เจฒเจชเจ• เจฐเจจเจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ เจฎเจนเจฟเจธเฉ‚เจธ เจ•เจฐเจจ เจฆเจพ เจฎเฉŒเจ•เจพ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ–เฉ‡เจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจตเจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจธเจพเจˆเจŸ เจ•เจพเจŸเจพ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจคเฉเจธเฉ€เจ‚ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ, เจชเจพเจฌเฉฐเจฆเฉ€เจ†เจ‚ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจฆเจฟเจฒเจšเจธเจช เจšเฉ€เจœเจผเจพเจ‚ 'เจคเฉ‡ เจ•เฉ‡เจ‚เจฆเฉเจฐเจฟเจค เจŸเฉˆเจธเจŸเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจฒเฉœเฉ€ เจตเฉ€ เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจฎเฉˆเจ‚ เจ‰เจนเจจเจพเจ‚ เจธเจพเจฐเฉ‡ เจฒเฉ‹เจ•เจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเฉฑเจ›เจฆเจพ เจนเจพเจ‚ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจชเฉœเฉเจนเจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจฆเฉเจฌเจพเจฐเจพ เจชเฉœเฉเจนเจฟเจ† เจนเฉˆ, เจธเจฐเจตเฉ‡เจ–เจฃ เจตเจฟเฉฑเจš เจนเจฟเฉฑเจธเจพ เจฒเฉˆเจฃ เจฒเจˆ, เจœเจฟเจธ 'เจคเฉ‡ เจ‡เจธ เจตเจฟเจธเจผเฉ‡ 'เจคเฉ‡ เจญเจตเจฟเฉฑเจ– เจฆเฉ‡ เจชเฉเจฐเจ•เจพเจธเจผเจจ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจจเจ—เฉ‡เฅค

เจธเจฟเจฐเจซเจผ เจฐเจœเจฟเจธเจŸเจฐเจก เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจนเฉ€ เจธเจฐเจตเฉ‡เจ–เจฃ เจตเจฟเฉฑเจš เจนเจฟเฉฑเจธเจพ เจฒเฉˆ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจธเจพเจˆเจจ - เจ‡เจจ, เจคเฉเจนเจพเจกเจพ เจธเฉเจ†เจ—เจค เจนเฉˆ.

เจ•เฉ€ เจฎเฉˆเจจเฉ‚เฉฐ เจ•เจพเจŸเจพ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจฌเจพเจฐเฉ‡ เจฒเฉ‡เจ– เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ?

  • 80,0%เจนเจพเจ‚, เจนเฉ‹เจฐ เจฒเจฟเจ–เฉ‹!28

  • 20,0%เจจเจนเฉ€เจ‚, เจจเจพ เจ•เจฐเฉ‹...7

35 เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‡ เจตเฉ‹เจŸ เจ•เฉ€เจคเจพเฅค 7 เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฌเจšเฉ‡ เจนเฉ‹เจ เจนเจจเฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹