Want more timely Centmin Mod News Updates?
Become a Member

DigitalOcean Linode Vultr Benchmarks KVM VPS Benchmarks $5/month - DigitalOcean vs Vultr vs Linode

Discussion in 'Virtual Private Server (VPS) hosting' started by eva2000, Feb 15, 2017.

Thread Status:
Not open for further replies.
  1. eva2000

    eva2000 Administrator Staff Member

    29,743
    6,719
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +10,031
    Local Time:
    9:33 AM
    Nginx 1.13.x
    MariaDB 5.5
    Linode's latest announcement for a $5/month 1GB KVM VPS Linode plan puts them directly in competition with Vultr and DigitalOcean's offerings.

    It's time to spin up Linode, DigitalOcean and Vultr's respective $5/month plans and compare them through various benchmarks:
    1. Centmin Mod 123.09beta01 LEMP initial install timed benchmark
    2. centminmodbench.sh benchmark script.

    The $5/month VPS plans are all located on US West Coast and using CentOS 6.x 64bit OS as CentOS 7 64bit min required memory is 1GB which only Linode's $5/month plan satisfies.

    Linode - referral link
    • 1GB Linode
    • 20GB disk
    • 1TB bandwidth
    • Freemont, California
    • CentOS 6.x 64bit
    Code (Text):
    cat /proc/cpuinfo
    processor       : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 62
    model name      : Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
    stepping        : 4
    microcode       : 0x1
    cpu MHz         : 2799.998
    cache size      : 4096 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 ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm fsgsbase tsc_adjust smep erms xsaveopt arat
    bugs            :
    bogomips        : 5602.32
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 40 bits physical, 48 bits virtual
    power management:
    

    DigitalOcean - referral link
    • 512MB DigitalOcean
    • 20GB disk
    • 1TB bandwidth
    • San Francisco 2
    • CentOS 6.x 64bit
    Code (Text):
    cat /proc/cpuinfo
    processor       : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 63
    model name      : Intel(R) Xeon(R) CPU E5-2650L v3 @ 1.80GHz
    stepping        : 2
    microcode       : 1
    cpu MHz         : 1799.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 up arch_perfmon rep_good unfair_spinlock 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 arat xsaveopt vnmi ept fsgsbase bmi1 avx2 smep bmi2 erms invpcid
    bogomips        : 3599.99
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 40 bits physical, 48 bits virtual
    power management:
    

    Vultr - referral link
    • 768MB Vultr
    • 15GB disk
    • 1TB bandwidth
    • Los Angeles
    • CentOS 6.x 64bit
    Code (Text):
     cat /proc/cpuinfo
    processor       : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 61
    model name      : Virtual CPU a7769a6388d5
    stepping        : 2
    microcode       : 1
    cpu MHz         : 2394.454
    cache size      : 4096 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 syscall nx rdtscp lm constant_tsc up rep_good xtopology unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm arat xsaveopt fsgsbase bmi1 avx2 smep bmi2 erms invpcid
    bogomips        : 4788.90
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 40 bits physical, 48 bits virtual
    power management:
    


    Centmin Mod 123.09beta01 Initial Install Times



    First benchmark is Centmin Mod 123.09beta01 timed initial installations. The default curl one liner install method actually provides a breakdown of times for various parts of the initial install process. This allows you to get an idea of the overall VPS's performance for cpu, memory, disk i/o and network connectivity. You can compare this to other VPS and dedicated server initial install times posted here.

    The install command is one liner below
    Code (Text):
    yum -y update; curl -O https://centminmod.com/betainstaller.sh && chmod 0700 betainstaller.sh && bash betainstaller.sh
    

    Note:
    • All 3 VPS plans don't have the recommended disk capacity for long term Centmin Mod LEMP stack usage outlined in Centmin Mod LEMP Install Guide. However, for benchmarking purposes it should be fine. I'll report both the initial install times as well as overall disk usage footprint post initial install so you can get an idea of what disk free space is available at end of each respective VPS providers Centmin Mod install.
    • Centmin Mod /tmp secure lock down routine also auto detects amount of memory and disk space and auto creates a custom /tmp directory and /tmp size based on memory and disk space detected. So you will notice the /tmp disk space allocated differs as Linode has more memory and disk free space so got a larger /tmp allocation.

    Centmin Mod Install Time Results



    Results are very close. Centmin Mod 123.09beta01 now uses Intel optimised compile options for Nginx and PHP-FPM installs when Intel processors are detected. This slows down compile times compared to before, but results in faster and more performant Nginx and PHP binaries. You can compare these times to other VPS and dedicated server initial install times posted here.

    cmm-install-linode-vs-digitalocean-vs-vultr-01.png

    Linode

    Linode Install Time
    Code (Text):
    ---------------------------------------------------------------------------
    Total Curl Installer YUM Time: 85.5528 seconds
    Total YUM Time: 56.307824081 seconds
    Total YUM + Source Download Time: 112.3741
    Total Nginx First Time Install Time: 419.1218
    Total PHP First Time Install Time: 694.4519
    Download Zip From Github Time: 38.7638
    Total Time Other eg. source compiles: 339.9888
    Total Centmin Mod Install Time: 1565.9367
    ---------------------------------------------------------------------------
    Total Install Time (curl yum + cm install + zip download): 1690.2533 seconds
    ---------------------------------------------------------------------------
    

    Linode disk usage post install
    Code (Text):
    df -hT
    Filesystem           Type   Size  Used Avail Use% Mounted on
    /dev/sda             ext4    20G  5.8G   14G  31% /
    tmpfs                tmpfs  495M     0  495M   0% /dev/shm
    /home/usertmp_donotdelete
                         ext4   2.0G  3.1M  1.8G   1% /tmp
    

    DigitalOcean

    DO Install Time
    Code (Text):
    ---------------------------------------------------------------------------
    Total Curl Installer YUM Time: 172.9285 seconds
    Total YUM Time: 61.379857823 seconds
    Total YUM + Source Download Time: 98.0235
    Total Nginx First Time Install Time: 405.3312
    Total PHP First Time Install Time: 712.9118
    Download Zip From Github Time: 47.4086
    Total Time Other eg. source compiles: 333.0548
    Total Centmin Mod Install Time: 1549.3213
    ---------------------------------------------------------------------------
    Total Install Time (curl yum + cm install + zip download): 1769.6584 seconds
    ---------------------------------------------------------------------------
    

    DO disk usage post install
    Code (Text):
    df -hT
    Filesystem           Type   Size  Used Avail Use% Mounted on
    /dev/vda1            ext4    20G  6.9G   12G  37% /
    tmpfs                tmpfs  246M     0  246M   0% /dev/shm
    /home/usertmp_donotdelete
                         ext4   2.0G  3.1M  1.9G   1% /tmp
    

    Vultr

    Vultr Install Time
    Code (Text):
    ---------------------------------------------------------------------------
    Total Curl Installer YUM Time: 162.1471 seconds
    Total YUM Time: 77.659763284 seconds
    Total YUM + Source Download Time: 119.1383
    Total Nginx First Time Install Time: 363.3935
    Total PHP First Time Install Time: 708.2680
    Download Zip From Github Time: 37.6862
    Total Time Other eg. source compiles: 348.4568
    Total Centmin Mod Install Time: 1539.2566
    ---------------------------------------------------------------------------
    Total Install Time (curl yum + cm install + zip download): 1739.0899 seconds
    ---------------------------------------------------------------------------
    

    Vultr disk usage post install
    Code (Text):
    df -hT
    Filesystem           Type   Size  Used Avail Use% Mounted on
    /dev/vda1            ext4    15G  6.0G  8.1G  43% /
    tmpfs                tmpfs  372M     0  372M   0% /dev/shm
    /home/usertmp_donotdelete
                         ext4   976M  1.3M  924M   1% /tmp
    


    The resulting Nginx configuration installed for all 3 VPSes
    PHP
    Code (Text):
    php -v
    PHP 5.6.30 (cli) (built: Feb 15 2017 08:04:45)
    Copyright (c) 1997-2016 The PHP Group
    Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
        with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

    Code (Text):
    php -m
    [PHP Modules]
    bcmath
    bz2
    calendar
    Core
    ctype
    curl
    date
    dom
    enchant
    ereg
    exif
    filter
    ftp
    gd
    geoip
    gettext
    gmp
    hash
    iconv
    igbinary
    imagick
    imap
    intl
    json
    ldap
    libxml
    mailparse
    mbstring
    mcrypt
    memcache
    memcached
    mhash
    mysql
    mysqli
    mysqlnd
    openssl
    pcntl
    pcre
    PDO
    pdo_mysql
    pdo_sqlite
    Phar
    posix
    pspell
    readline
    redis
    Reflection
    session
    shmop
    SimpleXML
    snmp
    soap
    sockets
    SPL
    sqlite3
    standard
    sysvmsg
    sysvsem
    sysvshm
    tidy
    tokenizer
    xml
    xmlreader
    xmlrpc
    xmlwriter
    xsl
    Zend OPcache
    zip
    zlib
    
    [Zend Modules]
    Zend OPcache

    MariaDB MySQL
    Code (Text):
    mysqladmin ver
    mysqladmin  Ver 9.1 Distrib 10.1.21-MariaDB, for Linux on x86_64
    Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
    
    Server version          10.1.21-MariaDB
    Protocol version        10
    Connection              Localhost via UNIX socket
    UNIX socket             /var/lib/mysql/mysql.sock
    Uptime:                 9 min 1 sec
    
    Threads: 1  Questions: 15  Slow queries: 0  Opens: 18  Flush tables: 1  Open tables: 12  Queries per second avg: 0.027
    
     
    Last edited: Feb 15, 2017
    • Informative Informative x 1
  2. eva2000

    eva2000 Administrator Staff Member

    29,743
    6,719
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +10,031
    Local Time:
    9:33 AM
    Nginx 1.13.x
    MariaDB 5.5

    centminmodbench.sh Benchmarks



    centminmodbench.sh is a custom benchmark script written for Centmin Mod LEMP stack environments which give a thorough overview of a systems performance and can be obtained at bench.centminmod.com. I use it on all my newly provisioned VPSes or dedicated servers after Centmin Mod initial install :)

    Notes:
    • Previous comparison benchmarks with 2GB Linode and higher have always had faster disk I/O across the board for all disk benchmarks compared to DigitalOcean and Vultr. This is first time I see Linode with 1GB Linode VPS loose to DigitalOcean at least in some disk I/O benchmarks. Linode capping 1GB Linode plans disk a bit more ? Or just there's more contention right now as lots of Linode users are spinning up 1GB Linode plans ?

    Disk Benchmarks



    Ioping

    disk-ioping.png

    Disk dd

    disk-dd.png

    Disk fio

    disk-fio.png

    Ramdisk Benchmarks



    Ramdisk Ioping

    ram-ioping.png

    Ramdisk Disk dd

    ram-dd.png

    Network Bandwidth Benchmarks



    For single threaded wget

    bandwidth.png

    For multithreaded Axel

    axel.png

    Ping benchmarks



    ping.png

    OpenSSL 1.0.1e System Benchmarks



    openssl.png

    LibreSSL 2.4.5 Benchmarks



    libressl.png

    mysqlslap



    mysqlslap.png

    php benchmark



    phpbench.png

    UnixBench 5.1.3



    unixbench.png
     
    Last edited: Feb 15, 2017
  3. eva2000

    eva2000 Administrator Staff Member

    29,743
    6,719
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +10,031
    Local Time:
    9:33 AM
    Nginx 1.13.x
    MariaDB 5.5

    Summary



    • Comparison benchmarks at $5/month price point for Linode vs DigitalOcean vs Vultr are very close. Closer than higher priced respective VPS providers' plans from my previous comparison benchmark results.
    • CPU performance wise for UnixBench, Linode wins due to faster Intel Xeon E5-2680v2 @2.80Ghz processors in play. Note, Linode also has Intel Xeon E5-2680v3 @2.50Ghz and Intel Xeon E5-2697v4 @2.30Ghz available in their mix. Vultr comes in 2nd place and DigitalOcean with the slowest clocked processors in 3rd place.
    • Ram bandwidth wise, Linode also wins with DigitalOcean coming 2nd and Vultr 3rd place.
    • OpenSSL/LibreSSL and thus HTTPS related performance wise Vultr just edges out Linode for non-hardware assisted (non AES-NI) based benchmarks if you look at RSA 2048 results. Vultr hides the actual processor they use but it's clocked at @2.40Ghz and given the Intel hardware assisted AES-NI aes256/aes128 (evp) results, I suspect Vultr is using Intel Xeon E5 v3 based processor as Linode's Intel Xeon E5-2680v2 just looses out to the newer v3 generation. Again DigitalOcean can't compete at all due to a much slower clocked Intel Xeon E5-2650Lv3 @1.80Ghz processor. For HTTPS based web sites, you'd want to be using either Vultr or Linode for your VPSes
    • MySQL via mysqlsap is single threaded test so not indicative of real world performance but they're all close with Vultr 1st, Linode 2nd and DigitalOcean 3rd.
    • phpbench benchmark is also close with Vultr 1st, Linode 2nd and DigitalOcean 3rd.
    • Network bandwidth wise given all servers are in US West region, it comes down to where your target majority audience lies. Though Linode and Vultr seems to have higher Axel multithreaded bandwidth results within their own network geographic POPs. Particularly, Vultr's Los Angeles bandwidth results are very fast.
    • Disk capacity wise, post Centmin Mod install - Linode has the most available disk free space at ~14GB, DigitalOcean has ~12GB and Vultr has the least amount of disk free space at ~8.1GB.
     
    Last edited: Feb 15, 2017
  4. eva2000

    eva2000 Administrator Staff Member

    29,743
    6,719
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +10,031
    Local Time:
    9:33 AM
    Nginx 1.13.x
    MariaDB 5.5

    Additional Benchmarks



    Centmin Mod specific benchmarks starting with Nginx recompiles via centmin.sh menu option 4
    Code (Text):
    --------------------------------------------------------
         Centmin Mod Menu 123.09beta01 centminmod.com
    --------------------------------------------------------
    1).  Centmin Install
    2).  Add Nginx vhost domain
    3).  NSD setup domain name DNS
    4).  Nginx Upgrade / Downgrade
    5).  PHP Upgrade / Downgrade
    6).  XCache Re-install
    7).  APC Cache Re-install
    8).  XCache Install
    9).  APC Cache Install
    10). Memcached Server Re-install
    11). MariaDB MySQL Upgrade & Management
    12). Zend OpCache Install/Re-install
    13). Install/Reinstall Redis PHP Extension
    14). SELinux disable
    15). Install/Reinstall ImagicK PHP Extension
    16). Change SSHD Port Number
    17). Multi-thread compression: pigz,pbzip2,lbzip2...
    18). Suhosin PHP Extension install
    19). Install FFMPEG and FFMPEG PHP Extension
    20). NSD Install/Re-Install
    21). Update - Nginx + PHP-FPM + Siege
    22). Add Wordpress Nginx vhost + Cache Plugin
    23). Update Centmin Mod Code Base
    24). Exit
    --------------------------------------------------------
    Enter option [ 1 - 24 ] 4
    --------------------------------------------------------


    Nginx Compiles With Clang 3.4.2



    Interestingly, Vultr beats Linode at this.

    Initial Recompile of Nginx 1.11.10 with Clang (without ccache compiler caching)
    • 1GB Linode Nginx Compile Time (clang 3.4.2): 433.364348870 seconds
    • 512MB DigitalOcean Nginx Compile Time (clang 3.4.2): 451.068507956 seconds
    • 768MB Vultr Nginx Compile Time (clang 3.4.2): 403.497354649 seconds
    2nd recompile of Nginx 1.11.10 with Clang (with ccache compiler caching that Centmin Mod utilises :)). Looks like first run was with ccache due to Nginx 1.11.10 initial install heh.
    • 1GB Linode Nginx Compile Time (clang 3.4.2): 437.776197867 seconds
    • 512MB DigitalOcean Nginx Compile Time (clang 3.4.2): 454.367761398 seconds
    • 768MB Vultr Nginx Compile Time (clang 3.4.2): 412.509430887 seconds

    Nginx Compiles With GCC 5.3.1



    Don't want to use clang for Nginx compiles ? Find let's use GCC 5.3.1 via persistent config options set in /etc/centminmod/custom_config.inc prior to centmin.sh menu option 4 runs
    Code (Text):
    CLANG='n'
    NGINX_DEVTOOLSETGCC='y'
    

    Disable Clang and switch to GCC but also enable CentOS 6 required devtoolset-4's GCC 5.3.1 for newer GCC supported optimised compiler options for Intel processors. Interestingly, Vultr beats Linode at this as well !

    Initial Recompile of Nginx 1.11.10 with GCC 5.3.1 (without ccache compiler caching)
    • 1GB Linode Nginx Compile Time (GCC 5.3.1 + intel optimised compile flags): 509.451241064 seconds
    • 512MB DigitalOcean Nginx Compile Time (GCC 5.3.1 + intel optimised compile flags): 545.787215357 seconds
    • 768MB Vultr Nginx Compile Time (GCC 5.3.1 + intel optimised compile flags): 496.162247899 seconds
    2nd recompile of Nginx 1.11.10 with GCC 5.3.1 (with ccache compiler caching that Centmin Mod utilises :)). The ccache compiler caching took effect it seems :) So the gap between then is alot closer with Linode beating Vultr and DigitalOcean :)
    • 1GB Linode Nginx Compile Time (GCC 5.3.1 + intel optimised compile flags): 103.919578148 seconds
    • 512MB DigitalOcean Nginx Compile Time (GCC 5.3.1 + intel optimised compile flags): 124.027317160 seconds
    • 768MB Vultr Nginx Compile Time (GCC 5.3.1 + intel optimised compile flags): 120.147377029 seconds
     
    Last edited: Feb 16, 2017
  5. eva2000

    eva2000 Administrator Staff Member

    29,743
    6,719
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +10,031
    Local Time:
    9:33 AM
    Nginx 1.13.x
    MariaDB 5.5

    Nginx Compiles With GCC 5.3.1 + ngx_pagespeed



    Lets continue to use GCC 5.3.1 via persistent config options set in /etc/centminmod/custom_config.inc prior to centmin.sh menu option 4 runs but also enable ngx_pagespeed support in Nginx as a dynamic Nginx module.
    Code (Text):
    CLANG='n'
    NGINX_DEVTOOLSETGCC='y'
    NGXDYNAMIC_NGXPAGESPEED='y'
    NGINX_PAGESPEED='y'
    

    Disable Clang and switch to GCC but also enable CentOS 6 required devtoolset-4's GCC 5.3.1 for newer GCC supported optimised compiler options for Intel processors. And then enable ngx_pagespeed nginx module.

    Seems Linode is jumping ahead somewhat :)

    Initial Recompile of Nginx 1.11.10 with GCC 5.3.1 (without ccache compiler caching)
    • 1GB Linode Nginx Compile Time (GCC 5.3.1 + intel optimised compile flags): 138.722691165 seconds
    • 512MB DigitalOcean Nginx Compile Time (GCC 5.3.1 + intel optimised compile flags): 279.454765974 seconds
    • 768MB Vultr Nginx Compile Time (GCC 5.3.1 + intel optimised compile flags): 199.946660634 seconds
    2nd recompile of Nginx 1.11.10 with GCC 5.3.1 (with ccache compiler caching that Centmin Mod utilises :)). The ccache compiler caching took effect it seems :) So the gap between then is alot closer with Linode beating Vultr and DigitalOcean again :)
    • 1GB Linode Nginx Compile Time (GCC 5.3.1 + intel optimised compile flags): 113.737785803 seconds
    • 512MB DigitalOcean Nginx Compile Time (GCC 5.3.1 + intel optimised compile flags): 131.987518011 seconds
    • 768MB Vultr Nginx Compile Time (GCC 5.3.1 + intel optimised compile flags): 130.775641876 seconds
     
  6. eva2000

    eva2000 Administrator Staff Member

    29,743
    6,719
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +10,031
    Local Time:
    9:33 AM
    Nginx 1.13.x
    MariaDB 5.5

    PHP 7.1.1 Update + Profile Guided Optimisations (PGO)



    Next lets test Centmin Mod's PHP 5.6.30 to PHP 7.1.1 update via centmin.sh menu option 5 with Intel Profile Guided Optimisations enabled for an extra 3-17% performance boost for resulting PHP-FPM binary :)
    Code (Text):
    --------------------------------------------------------
         Centmin Mod Menu 123.09beta01 centminmod.com
    --------------------------------------------------------
    1).  Centmin Install
    2).  Add Nginx vhost domain
    3).  NSD setup domain name DNS
    4).  Nginx Upgrade / Downgrade
    5).  PHP Upgrade / Downgrade
    6).  XCache Re-install
    7).  APC Cache Re-install
    8).  XCache Install
    9).  APC Cache Install
    10). Memcached Server Re-install
    11). MariaDB MySQL Upgrade & Management
    12). Zend OpCache Install/Re-install
    13). Install/Reinstall Redis PHP Extension
    14). SELinux disable
    15). Install/Reinstall ImagicK PHP Extension
    16). Change SSHD Port Number
    17). Multi-thread compression: pigz,pbzip2,lbzip2...
    18). Suhosin PHP Extension install
    19). Install FFMPEG and FFMPEG PHP Extension
    20). NSD Install/Re-Install
    21). Update - Nginx + PHP-FPM + Siege
    22). Add Wordpress Nginx vhost + Cache Plugin
    23). Update Centmin Mod Code Base
    24). Exit
    --------------------------------------------------------
    Enter option [ 1 - 24 ] 5

    Set in persistent config file /etc/centminmod/custom_config.inc the following variables prior to centmin.sh menu option 5 run.
    Code (Text):
    PHP_PGO='y'
    PHP_PGO_CENTOSSIX='y'
    


    Notes:
    • Profile Guided Optimisations require compiling twice so compile times are longer than non-PGO compiles.
    • PHP upgrade process also auto detects previous php custom compiled php extensions and recompiles them only on major PHP version updates i.e. PHP 5.6 to 7.1. Extensions include, memcache, memcached, redis, imagick, mailparse, igbinary etc.
    Initial PHP 7.1.1 update (without ccache compiler caching)

    Vultr just beats Linode with DigitalOcean coming in last place.
    • 1GB Linode PHP 7.1.1 update Time: 2591.184774317 seconds
    • 512MB DigitalOcean PHP 7.1.1 update Time: 2702.411883064 seconds
    • 768MB Vultr PHP 7.1.1 update Time: 2573.834929631 seconds
    2nd recompile PHP 7.1.1 update (with ccache compiler caching that Centmin Mod utilises :)).

    Looks like for recompiles with ccache Vultr just beat Linode again - probably to do with Linode's E5-2680v2 processor having large cache and system having faster memory bandwidth from the above ramdisk DD and ioping benchmarks as well as faster disk I/O. The ccache compiler caching sped up compile times by up to 44%.
    • 1GB Linode PHP 7.1.1 update Time: 1470.882428352 seconds
    • 512MB DigitalOcean PHP 7.1.1 update Time: 1544.948207248 seconds
    • 768MB Vultr PHP 7.1.1 update Time: 1427.041743830 seconds
    Code (Text):
    php -v
    PHP 7.1.1 (cli) (built: Feb 15 2017 15:36:07) ( NTS )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
        with Zend OPcache v7.1.1, Copyright (c) 1999-2017, by Zend Technologies
    


    Interesting, I believe PHP compile has revealed Vultr's true processor family used as well hehe.

    During PHP-FPM compile, Linode sees march=Ivybridge for Intel Xeon E5-2680v2 @2.80Ghz
    Code (Text):
    -O3 -m64 -march=ivybridge -pipe -gsplit-dwarf -fvisibility=hidden
    

    During PHP-FPM compile, DigitalOcean sees march=Haswell for Intel Xeon E5-2650Lv3 @1.80Ghz
    Code (Text):
    -O3 -m64 -march=haswell -pipe -gsplit-dwarf -fvisibility=hidden
    

    During PHP-FPM compile, Vultr sees march=Broadwell so could Vultr for this VPS be using Intel Xeon E5-2600 v4 based processors ? i.e. Xeon E5-2640v4 @2.4Ghz Intel® Xeon® Processor E5-2640 v4 (25M Cache, 2.40 GHz) Product Specifications ? Would explain why even at lower 2.40Ghz vs Linode's 2.80Ghz, OpenSSL/LibreSSL hardware assisted AES-NI and non-AES-NI results were sometimes in Vultr's favour due to improvements in E5-2600v4 Broadwell architecture :)
    Code (Text):
    -O3 -m64 -march=broadwell -pipe -gsplit-dwarf -fvisibility=hidden
    


    upload_2017-2-16_1-15-16.png
    upload_2017-2-16_1-15-49.png
     
    Last edited: Feb 16, 2017
  7. eva2000

    eva2000 Administrator Staff Member

    29,743
    6,719
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +10,031
    Local Time:
    9:33 AM
    Nginx 1.13.x
    MariaDB 5.5

    Centmin Mod 123.09beta01 Install Tests Part 2



    Redoing the Centmin Mod 123.09beta01 initial install tests again as I made some updates to 123.09beta01 branch to speed up initial installs for slower servers

    i.e.

    Centmin Mod Install Time Results



    Like before, will list the respective VPS install times along with post-install disk capacity available. However, will also add a few more nuggets of info like how Centmin Mod auto optimises MariaDB MySQL configuration for InnoDB IO capacity settings. Centmin Mod does this by automatically measuring the system disk I/O performance during initial install and then calculating based on a preset formula the values to tune for MySQL InnoDB IO capacity.

    Looks like the PHP install times improved but overall due to YUM and other download times at the time, overall initial install time was slightly slower than the first install times done above for Linode (+0.44%), bit more for Vultr (+3.06%) but ALOT for DigitalOcean (+18.5%). In fact DigitalOcean was slower even for PHP compiles than before.

    cmm-install-linode-vs-digitalocean-vs-vultr-02.png

    InnoDB IO Capacity for auto tuned /etc/my.cnf values was set to
    • Linode = 1700
    • DigitalOcean = 1000
    • Vultr = 1500

    Linode

    Linode Install Time
    Code (Text):
    ---------------------------------------------------------------------------
    Total Curl Installer YUM Time: 110.3357 seconds
    Total YUM Time: 43.144001227 seconds
    Total YUM + Source Download Time: 70.1251
    Total Nginx First Time Install Time: 412.3141
    Total PHP First Time Install Time: 686.8069
    Download Zip From Github Time: 42.9962
    Total Time Other eg. source compiles: 375.1298
    Total Centmin Mod Install Time: 1544.3758
    ---------------------------------------------------------------------------
    Total Install Time (curl yum + cm install + zip download): 1697.7077 seconds
    ---------------------------------------------------------------------------
    

    Linode disk usage post install
    Code (Text):
    df -hT
    Filesystem           Type   Size  Used Avail Use% Mounted on
    /dev/sda             ext4    20G  7.1G   13G  37% /
    tmpfs                tmpfs  495M     0  495M   0% /dev/shm
    /home/usertmp_donotdelete
                         ext4   2.0G  3.1M  1.8G   1% /tmp
    

    Linode MariaDB MySQL InnoDB IO Capacity Auto Tuned values
    Code (Text):
    Full Reads: 29681
    Full Writes: 24899
    
    set innodb_flush_neighbors = 0
    
    innodb_io_capacity = 1700
    
    +------------------------+-------+
    /etc/my.cnf adjustment
    +------------------------+-------+
    existing value:
    Variable_name   Value
    innodb_io_capacity      100
    innodb_io_capacity_max  2000
    new value:
    Variable_name   Value
    innodb_io_capacity      1700
    innodb_io_capacity_max  3400
    
    +------------------------+-------+
    innodb io threads adjustment
    +------------------------+-------+
    existing value:
    +------------------------+-------+
    innodb_read_io_threads = 2
    innodb_write_io_threads = 2
    +------------------------+-------+
    new value:
    +------------------------+-------+
    innodb_read_io_threads = 2
    innodb_write_io_threads = 2
    +------------------------+-------+
    

    Linode memory
    Code (Text):
    free -m
                 total       used       free     shared    buffers     cached
    Mem:           989        469        519         12        124        111
    -/+ buffers/cache:        234        755
    Swap:         1279          0       1279
    

    DigitalOcean

    DO Install Time
    Code (Text):
    ---------------------------------------------------------------------------
    Total Curl Installer YUM Time: 320.1908 seconds
    Total YUM Time: 34.019539149 seconds
    Total YUM + Source Download Time: 68.3981
    Total Nginx First Time Install Time: 444.3602
    Total PHP First Time Install Time: 777.1906
    Download Zip From Github Time: 48.3683
    Total Time Other eg. source compiles: 438.5473
    Total Centmin Mod Install Time: 1728.4961
    ---------------------------------------------------------------------------
    Total Install Time (curl yum + cm install + zip download): 2097.0552 seconds
    ---------------------------------------------------------------------------
    

    DO disk usage post install
    Code (Text):
    df -hT
    Filesystem           Type   Size  Used Avail Use% Mounted on
    /dev/vda1            ext4    20G  7.1G   12G  38% /
    tmpfs                tmpfs  246M     0  246M   0% /dev/shm
    /home/usertmp_donotdelete
                         ext4   2.0G  3.1M  1.9G   1% /tmp
    

    DigitalOcean MariaDB MySQL InnoDB IO Capacity Auto Tuned values
    Code (Text):
    Full Reads: 124121
    Full Writes: 8208
    
    set innodb_flush_neighbors = 0
    
    innodb_io_capacity = 1000
    
    +------------------------+-------+
    /etc/my.cnf adjustment
    +------------------------+-------+
    existing value:
    Variable_name   Value
    innodb_io_capacity      100
    innodb_io_capacity_max  2000
    new value:
    Variable_name   Value
    innodb_io_capacity      1000
    innodb_io_capacity_max  2000
    
    +------------------------+-------+
    innodb io threads adjustment
    +------------------------+-------+
    existing value:
    +------------------------+-------+
    innodb_read_io_threads = 2
    innodb_write_io_threads = 2
    +------------------------+-------+
    new value:
    +------------------------+-------+
    innodb_read_io_threads = 2
    innodb_write_io_threads = 2
    +------------------------+-------+
    

    DO memory
    Code (Text):
    free -m
                 total       used       free     shared    buffers     cached
    Mem:           490        165        325         12          4         32
    -/+ buffers/cache:        128        362
    Swap:         1023          5       1018
    

    Vultr

    Vultr Install Time
    Code (Text):
    ---------------------------------------------------------------------------
    Total Curl Installer YUM Time: 269.0428 seconds
    Total YUM Time: 39.852537077 seconds
    Total YUM + Source Download Time: 77.5085
    Total Nginx First Time Install Time: 380.9312
    Total PHP First Time Install Time: 640.2329
    Download Zip From Github Time: 46.4213
    Total Time Other eg. source compiles: 378.1278
    Total Centmin Mod Install Time: 1476.8004
    ---------------------------------------------------------------------------
    Total Install Time (curl yum + cm install + zip download): 1792.2645 seconds
    ---------------------------------------------------------------------------
    

    Vultr disk usage post install
    Code (Text):
    df -hT
    Filesystem           Type   Size  Used Avail Use% Mounted on
    /dev/vda1            ext4    15G  6.3G  7.8G  45% /
    tmpfs                tmpfs  372M     0  372M   0% /dev/shm
    /home/usertmp_donotdelete
                         ext4   976M  1.3M  924M   1% /tmp
    

    Vultr MariaDB MySQL InnoDB IO Capacity Auto Tuned values
    Code (Text):
    Full Reads: 22021
    Full Writes: 17392
    
    set innodb_flush_neighbors = 0
    
    innodb_io_capacity = 1500
    
    +------------------------+-------+
    /etc/my.cnf adjustment
    +------------------------+-------+
    existing value:
    Variable_name   Value
    innodb_io_capacity      100
    innodb_io_capacity_max  2000
    new value:
    Variable_name   Value
    innodb_io_capacity      1500
    innodb_io_capacity_max  3000
    
    +------------------------+-------+
    innodb io threads adjustment
    +------------------------+-------+
    existing value:
    +------------------------+-------+
    innodb_read_io_threads = 2
    innodb_write_io_threads = 2
    +------------------------+-------+
    new value:
    +------------------------+-------+
    innodb_read_io_threads = 2
    innodb_write_io_threads = 2
    +------------------------+-------+
    

    Vultr memory
    Code (Text):
    free -m
                 total       used       free     shared    buffers     cached
    Mem:           742        396        345         12        125         42
    -/+ buffers/cache:        228        513
    Swap:         1023          0       1023
    
     
    Last edited: Feb 20, 2017
Thread Status:
Not open for further replies.