digitalocean_logo

Добрый день!

На днях пришло письмо от DigitalOcean с предложением потестировать их новые фишки. Это Load Balancer, фаервол, облачное хранилище данных и гибкие тарифные планы где можно выбирать между количеством ядер и размером доступной оперативной памяти.

Я же пока до тестов этих штук не дошел. Зато решил запустить виртуалку на самом дорогом тарифе за умопомрачительные $960 в месяц. За эти деньги нам становится доступно 32 ядра CPU, 192 гигабайта ОЗУ и 4 терабайта SSD.

Давайте посмотрим на результаты тестов.

Сведения о VM

CentOS 7.5

cat /etc/centos-release
-----------
CentOS Linux release 7.5.1804 (Core) 
uname -a
-----------
Linux centos-s-32vcpu-192gb-fra1-01 3.10.0-862.2.3.el7.x86_64 #1 SMP Wed May 9 18:05:47 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Виртуализация KVM

inxi -b
-----------
System:    Host: centos-s-32vcpu-192gb-fra1-01 Kernel: 3.10.0-862.2.3.el7.x86_64 x86_64 bits: 64 Console: N/A 
           Distro: CentOS Linux release 7.5.1804 (Core) 
Machine:   Type: Kvm System: DigitalOcean product: Droplet v: 20171212 serial: 107730873 
           Mobo: N/A model: N/A serial: N/A BIOS: DigitalOcean v: 20171212 date: 12/12/2017 
CPU:       32x Single Core: Intel Xeon E5-2650 v4 type: SMP speed: 2200 MHz 
Graphics:  Card-1: Red Hat QXL paravirtual graphic card driver: qxl v: kernel 
           Display: server: No display server data found. Headless machine? tty: 202x24 
           Message: Unable to show advanced data. Required tool glxinfo missing. 
Network:   Card-1: Intel 82371AB/EB/MB PIIX4 ACPI type: network bridge driver: piix4_smbus 
           Card-2: Red Hat Virtio network driver: virtio-pci 
Drives:    Local Storage: total: 3.75 TiB used: 1.54 GiB (0.0%) 
Info:      Processes: 302 Uptime: 10m Memory: 188.75 GiB used: 1.53 GiB (0.8%) Init: systemd runlevel: 3 
           Shell: clstr_test.sh inxi: 3.0.20 

CPU и ОЗУ

cat /proc/cpuinfo
-----------
processor : 0
vendor_id : GenuineIntel
cpu family  : 6
model   : 79
model name  : Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
stepping  : 1
microcode : 0x1
cpu MHz   : 2199.998
cache size  : 30720 KB
physical id : 0
siblings  : 1
core id   : 0
cpu cores : 1
apicid    : 0
initial apicid  : 0
fpu   : yes
fpu_exception : yes
cpuid level : 13
wp    : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt
bogomips  : 4399.99
clflush size  : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:

...

processor : 31
vendor_id : GenuineIntel
cpu family  : 6
model   : 79
model name  : Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
stepping  : 1
microcode : 0x1
cpu MHz   : 2199.998
cache size  : 30720 KB
physical id : 31
siblings  : 1
core id   : 0
cpu cores : 1
apicid    : 31
initial apicid  : 31
fpu   : yes
fpu_exception : yes
cpuid level : 13
wp    : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt
bogomips  : 4399.99
clflush size  : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:


Memory Info:
====================================================
cat /proc/meminfo
-----------
MemTotal:       197917588 kB
MemFree:        195252340 kB
MemAvailable:   195391888 kB
Buffers:            2088 kB
Cached:          1075068 kB
SwapCached:            0 kB
Active:           484264 kB
Inactive:         632100 kB
Active(anon):      40120 kB
Inactive(anon):    24200 kB
Active(file):     444144 kB
Inactive(file):   607900 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 4 kB
Writeback:             0 kB
AnonPages:         38804 kB
Mapped:            28876 kB
Shmem:             25112 kB
Slab:             214680 kB
SReclaimable:      97904 kB
SUnreclaim:       116776 kB
KernelStack:        5696 kB
PageTables:         3732 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    98958792 kB
Committed_AS:     232348 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      506584 kB
VmallocChunk:   34359138300 kB
HardwareCorrupted:     0 kB
AnonHugePages:     10240 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      151516 kB
DirectMap2M:     5091328 kB
DirectMap1G:    196083712 kB

Разметка диска

df -HT
-----------
Файловая система Тип      Размер Использовано  Дост Использовано% Cмонтировано в
/dev/vda1        xfs        4,2T         1,7G  4,2T            1% /
devtmpfs         devtmpfs   102G            0  102G            0% /dev
tmpfs            tmpfs      102G            0  102G            0% /dev/shm
tmpfs            tmpfs      102G          26M  102G            1% /run
tmpfs            tmpfs      102G            0  102G            0% /sys/fs/cgroup
tmpfs            tmpfs       21G            0   21G            0% /run/user/0

PT Summary

pt-summary
-----------
# Percona Toolkit System Summary Report ######################
        Date | 2018-08-28 08:54:56 UTC (local TZ: UTC +0000)
    Hostname | centos-s-32vcpu-192gb-fra1-01
      Uptime | 10 min,  1 user,  load average: 0,00, 0,16, 0,16
      System | DigitalOcean; Droplet; v20171212 (Other)
 Service Tag | 107730873
    Platform | Linux
     Release | CentOS Linux release 7.5.1804 (Core) 
      Kernel | 3.10.0-862.2.3.el7.x86_64
Architecture | CPU = 64-bit, OS = 64-bit
   Threading | NPTL 2.17
     SELinux | Enforcing
 Virtualized | VMWare
# Processor ##################################################
  Processors | physical = 32, cores = 32, virtual = 32, hyperthreading = no
      Speeds | 32x2199.998
      Models | 32xIntel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
      Caches | 32x30720 KB
# Memory #####################################################
       Total | 188,7G
        Free | 186,2G
        Used | physical = 1,3G, swap allocated = 0,0, swap used = 0,0, virtual = 1,3G
      Shared | 24,5M
     Buffers | 1,2G
      Caches | 186,3G
       Dirty | 4 kB
     UsedRSS | 110,9M
  Swappiness | 30
 DirtyPolicy | 30, 10
 DirtyStatus | 0, 0
  Locator   Size     Speed             Form Factor   Type          Type Detail
  ========= ======== ================= ============= ============= ===========
  DIMM 0    16384 MB 16384 MB          DIMM          RAM           None    
# Mounted Filesystems ########################################
  Filesystem  Size Used Type     Opts                                                          Mountpoint
  devtmpfs     95G   0% devtmpfs rw,nosuid,seclabel,size=98936236k,nr_inodes=24734059,mode=755 /dev
  /dev/vda1   3,8T   1% xfs      rw,relatime,seclabel,attr2,inode64,noquota                    /
  tmpfs        19G   0% tmpfs    rw,nosuid,nodev,seclabel                                      /run/user/0
  tmpfs        19G   0% tmpfs    rw,nosuid,nodev,seclabel,mode=755                             /run/user/0
  tmpfs        19G   0% tmpfs    rw,nosuid,nodev,relatime,seclabel,size=19791760k,mode=700     /run/user/0
  tmpfs        19G   0% tmpfs    ro,nosuid,nodev,noexec,seclabel,mode=755                      /run/user/0
  tmpfs        95G   0% tmpfs    rw,nosuid,nodev,seclabel                                      /dev/shm
  tmpfs        95G   0% tmpfs    rw,nosuid,nodev,seclabel,mode=755                             /dev/shm
  tmpfs        95G   0% tmpfs    rw,nosuid,nodev,relatime,seclabel,size=19791760k,mode=700     /dev/shm
  tmpfs        95G   0% tmpfs    ro,nosuid,nodev,noexec,seclabel,mode=755                      /dev/shm
  tmpfs        95G   0% tmpfs    rw,nosuid,nodev,seclabel                                      /sys/fs/cgroup
  tmpfs        95G   0% tmpfs    rw,nosuid,nodev,seclabel,mode=755                             /sys/fs/cgroup
  tmpfs        95G   0% tmpfs    rw,nosuid,nodev,relatime,seclabel,size=19791760k,mode=700     /sys/fs/cgroup
  tmpfs        95G   0% tmpfs    ro,nosuid,nodev,noexec,seclabel,mode=755                      /sys/fs/cgroup
  tmpfs        95G   1% tmpfs    rw,nosuid,nodev,seclabel                                      /run
  tmpfs        95G   1% tmpfs    rw,nosuid,nodev,seclabel,mode=755                             /run
  tmpfs        95G   1% tmpfs    rw,nosuid,nodev,relatime,seclabel,size=19791760k,mode=700     /run
  tmpfs        95G   1% tmpfs    ro,nosuid,nodev,noexec,seclabel,mode=755                      /run
# Disk Schedulers And Queue Size #############################
         vda | [mq-deadline] 256
         vdb | [mq-deadline] 256
# Disk Partioning ############################################
Device       Type      Start        End               Size
============ ==== ========== ========== ==================
/dev/vda     Disk                            4123168604160
/dev/vdb     Disk                                   444416
# Kernel Inode State #########################################
dentry-state | 114993 99182 45  0 0 0
     file-nr | 960  0 19607256
    inode-nr | 52397  165
# LVM Volumes ################################################
Unable to collect information
# LVM Volume Groups ##########################################
Unable to collect information
# RAID Controller ############################################
  Controller | No RAID controller detected
# Network Config #############################################
  Controller | Red Hat, Inc. Virtio network device
 FIN Timeout | 60
  Port Range | 60999
# Interface Statistics #######################################
  interface  rx_bytes rx_packets  rx_errors   tx_bytes tx_packets  tx_errors
  ========= ========= ========== ========== ========== ========== ==========
  lo              400          6          0        400          6          0
  eth0      225000000      40000          0    3500000      35000          0
# Network Devices ############################################
  Device    Speed     Duplex
  ========= ========= =========
  eth0                            
# Network Connections ########################################
  Connections from remote IP addresses
    46.8.117.33         1
  Connections to local IP addresses
    46.101.119.89       1
  Connections to top 10 local ports
    22                  1
  States of connections
    ESTABLISHED         1
    LISTEN              6
# Top Processes ##############################################
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  826 chrony    20   0  117752   1684   1264 S   6,2  0,0   0:00.02 chronyd
14241 root      20   0  162124   2256   1516 R   6,2  0,0   0:00.01 top
    1 root      20   0   46144   6388   3956 S   0,0  0,0   0:04.44 systemd
    2 root      20   0       0      0      0 S   0,0  0,0   0:00.01 kthreadd
    3 root      20   0       0      0      0 S   0,0  0,0   0:00.00 ksoftirqd/0
    5 root       0 -20       0      0      0 S   0,0  0,0   0:00.00 kworker/0:+
    7 root      rt   0       0      0      0 S   0,0  0,0   0:00.07 migration/0
    8 root      20   0       0      0      0 S   0,0  0,0   0:00.00 rcu_bh
    9 root      20   0       0      0      0 S   0,0  0,0   0:00.81 rcu_sched
# Notable Processes ##########################################
  PID    OOM    COMMAND
 1762    -17    sshd
11220    -17    auditd
# Memory mamagement ##########################################
Transparent huge pages are enabled.
# The End ####################################################

Тесты

DD

dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync 2>&1
rm -f test
-----------
16384+0 записей получено
16384+0 записей отправлено
 скопировано 1073741824 байта (1,1 GB), 1,66075 c, 647 MB/c
16384+0 записей получено
16384+0 записей отправлено
 скопировано 1073741824 байта (1,1 GB), 1,69111 c, 635 MB/c
16384+0 записей получено
16384+0 записей отправлено
 скопировано 1073741824 байта (1,1 GB), 1,59357 c, 674 MB/c

Sysbench тест CPU

sysbench cpu --cpu-max-prime=20000 --num-threads=1 run
-----------
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)

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!

CPU speed:
    events per second:   308.32

General statistics:
    total time:                          10.0033s
    total number of events:              3085

Latency (ms):
         min:                                    3.19
         avg:                                    3.24
         max:                                    4.33
         95th percentile:                        3.30
         sum:                                 9994.64

Threads fairness:
    events (avg/stddev):           3085.0000/0.00
    execution time (avg/stddev):   9.9946/0.00
sysbench mutex --threads=64 run
-----------
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)

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


Initializing worker threads...

Threads started!


General statistics:
    total time:                          1.3852s
    total number of events:              64

Latency (ms):
         min:                                  364.46
         avg:                                  880.07
         max:                                 1194.69
         95th percentile:                     1129.24
         sum:                                56324.23

Threads fairness:
    events (avg/stddev):           1.0000/0.00
    execution time (avg/stddev):   0.8801/0.20

Sysbench тест ОЗУ

sysbench memory --num-threads=4 --memory-total-size=192G run
-----------
WARNING: --num-threads is deprecated, use --threads instead
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)

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


Running memory speed test with the following options:
  block size: 1KiB
  total size: 196608MiB
  operation: write
  scope: global

Initializing worker threads...

Threads started!

Total operations: 57598451 (5758323.45 per second)

56248.49 MiB transferred (5623.36 MiB/sec)


General statistics:
    total time:                          10.0001s
    total number of events:              57598451

Latency (ms):
         min:                                    0.00
         avg:                                    0.00
         max:                                    0.34
         95th percentile:                        0.00
         sum:                                28703.35

Threads fairness:
    events (avg/stddev):           14399612.7500/118477.92
    execution time (avg/stddev):   7.1758/0.02

Sysbench тест диска

sysbench fileio --file-total-size=384G prepare
-----------
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)

128 files, 3145728Kb each, 393216Mb total
Creating files for the test...
Extra file open flags: (none)
Creating file test_file.0

Creating file test_file.127
412316860416 bytes written in 855.83 seconds (459.45 MiB/sec).

sysbench fileio --file-total-size=384G --file-test-mode=rndrw --time=300 --max-requests=0 run
-----------
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)

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


Extra file open flags: (none)
128 files, 3GiB each
384GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...

Threads started!


File operations:
    reads/s:                      2557.61
    writes/s:                     1705.07
    fsyncs/s:                     5456.55

Throughput:
    read, MiB/s:                  39.96
    written, MiB/s:               26.64

General statistics:
    total time:                          300.0029s
    total number of events:              2915692

Latency (ms):
         min:                                    0.00
         avg:                                    0.10
         max:                                  842.48
         95th percentile:                        0.45
         sum:                               297787.80

Threads fairness:
    events (avg/stddev):           2915692.0000/0.00
    execution time (avg/stddev):   297.7878/0.00

SpeedTest

speedtest-cli
-----------
Retrieving speedtest.net configuration...
Testing from DigitalOcean (46.101.119.89)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Structured Communications (London) [0.96 km]: 15.965 ms
Testing download speed................................................................................
Download: 476.17 Mbit/s
Testing upload speed....................................................................................................
Upload: 210.52 Mbit/s

7-zip benchmark

7za b
-----------

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,32 CPUs Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz (406F1),ASM,AES-NI)

Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz (406F1)
CPU Freq:  2446  2451  2453  2455  2460  2465  2465  2466  2464

RAM size:  193278 MB,  # CPU hardware threads:  32
RAM usage:   7060 MB,  # Benchmark threads:     32

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:      29990  1533   1903  29175  |     363052  1795   1725  30961
23:      31765  1612   2008  32366  |     351394  1744   1744  30407
24:      31577  1631   2082  33952  |     356059  1802   1734  31252
25:      32187  1659   2216  36750  |     347051  1755   1760  30885
----------------------------------  | ------------------------------
Avr:            1609   2052  33061  |             1774   1741  30876
Tot:            1691   1897  31969

Выводы

Естественно тесты ничего удивительного не показали. Сложно такую виртуальную машину нагрузить на 100%. Но вообще не понимаю для кого существуют такие тарифные планы. За $960 в месяц можно взять десяток довольно мощных выделенных серверов. Тут преимущество только в том что виртуалку можно создать за 1 минуту и заплатить в итоге только за 1 час использования. Это будет стоить $1,42. В остальных же случаях это слишком дорого.