เช•เชพเชŸเชพ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซเช‚ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชธเซ‡เชŸเช…เชช

เช•เชพเชŸเชพ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซเช‚ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชธเซ‡เชŸเช…เชช
เช† เชฒเซ‡เช– เชšเชฐเซเชšเชพ เช•เชฐเชถเซ‡ เช•เซ‡ เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡ เช•เชพเชŸเชพ เช•เชจเซเชŸเซ‡เชจเชฐ, เช…เชจเซ‡ เชกเซ‹เช•เชฐ เชธเชพเชฅเซ‡เชจเชพ เชคเซ‡เชฎเชจเชพ เชœเซ‹เชกเชพเชฃ เชธเชพเชฅเซ‡ เชตเซเชฏเชตเชนเชพเชฐเซ เชญเชพเช— เชชเชฃ เชนเชถเซ‡.

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

เช•เซ€ เชธเซเชตเชฟเชงเชพเช“

  • เชเช• เช…เชฒเช— เช•เซ‹เชฐ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเซเช‚, เช†เชฎ เชจเซ‡เชŸเชตเชฐเซเช•, เชฎเซ‡เชฎเชฐเซ€ เช…เชจเซ‡ I/O เช†เช‡เชธเซ‹เชฒเซ‡เชถเชจ เชชเซ‚เชฐเซเช‚ เชชเชพเชกเชตเซเช‚, เชตเชฐเซเชšเซเชฏเซเช…เชฒเชพเช‡เชเซ‡เชถเชจ เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจเชจเชพ เช†เชงเชพเชฐเซ‡ เชนเชพเชฐเซเชกเชตเซ‡เชฐ เช†เช‡เชธเซ‹เชฒเซ‡เชถเชจเชจเชพ เช‰เชชเชฏเซ‹เช—เชจเซ‡ เชฆเชฌเชพเชฃ เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡.
  • OCI (เช•เชจเซเชŸเซ‡เชจเชฐ เชซเซ‹เชฐเซเชฎเซ‡เชŸ), เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ CRI เชธเชนเชฟเชค เช‰เชฆเซเชฏเซ‹เช—เชจเชพ เชงเซ‹เชฐเชฃเซ‹ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ
  • เชจเชฟเชฏเชฎเชฟเชค Linux เช•เชจเซเชŸเซ‡เชจเชฐเชจเซเช‚ เชธเชพเชคเชคเซเชฏเชชเซ‚เชฐเซเชฃ เชชเซเชฐเชฆเชฐเซเชถเชจ, เชจเชฟเชฏเชฎเชฟเชค VM เชจเชพ เชชเชฐเชซเซ‹เชฐเซเชฎเชจเซเชธ เช“เชตเชฐเชนเซ‡เชก เชตเชฟเชจเชพ เช…เชฒเช—เชคเชพเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹
  • เชธเช‚เชชเซ‚เชฐเซเชฃ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹เชจเซ€ เช…เช‚เชฆเชฐ เช•เชจเซเชŸเซ‡เชจเชฐ เชšเชฒเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเซ‹, เชธเชพเชฎเชพเชจเซเชฏ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชเช•เซ€เช•เชฐเชฃ เช…เชจเซ‡ เชฒเซ‹เชจเซเชšเชจเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡

เชธเซเชฅเชพเชชเชจ

เช›เซ‡ เชเช• เชŸเซ‹เชณเซเช‚ เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เชตเชฟเช•เชฒเซเชชเซ‹, เชนเซเช‚ เชธเซ‡เชจเซเชŸเซ‹เชธ 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 เชšเชฒเชพเชตเซเช‚ เช›เซเช‚ เช† เชตเชฟเช•เชฒเซเชช เชฒเซ‹.

Docker+containerd เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ 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

Docker+Kata เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ 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.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

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹