Express performance review of PostgreSQL 10.5 in the latest Yandex.Oblaka cloud services

    Just the other day, Yandex opened access for beta users to its new service, Yandex.Oblako . It turned out that this event coincided with the need to choose a cloud platform for one of our internal projects and I decided to immediately test the performance of Yandex solutions.

    For the test, I took PostgreSQL and the good old pgbench. The choice of a DBMS fell because it was interesting to test and compare the performance of not only virtual machines, then managed database services.

    Disclaimer: The author is neither a professional admin, nor a DBA, nor a specialist in setting up cloud solutions. Testing was conducted purely for personal purposes and does not pretend to objectivity, so please take the article “as is”. Inside there will not be some deep analysis, but there will be an express comparison with Selectel VPC (on different disks) and various AWS EC2 / RDS configurations in terms of performance and cost of solutions. Perhaps this will save someone a little time.

    Details Yandex.Cloud vs Selectel VPC vs AWS under the cat.

    The structure of the Yandex.Cloud services

    The resource structure of Yandex.Cloud is usual for such services:

    Resource quotas (global)
    Directory (project)

    - Compute Cloud (virtual machines and disks)
    - Managed Databases (database clusters, you can run Clickhouse, MongoDB and PostgreSQL)
    - Object Storage ( cloud storage)
    - Virtual Private Cloud (cloud networks)
    - API

    I see no point in describing the interface in detail, especially since the documentation is freely available and much is clear from it.

    Compare Configurations

    The following resources were allocated to all virtual instances in the test:

    vCPU : 8 cores
    RAM : 32 Gb
    Disk : SSD (specific class — see tested instances).
    OS : CentOS 7 minimal

    For managed database services, the closest possible configuration was requested (Yandex and AWS have configurations with 8CPU / 32RAM).

    Postgres version tested is 10.5. It was installed on the virtual machine from the package postgresql10-server, and on the managed clusters, this version was selected from the list.

    Testing method

    1. On a clean OS, packages were installed postgresql10-serverandpostgresql10
    2. Initialized DB for benchmark with parameters: pgbench -i -s 100
    3. Three times I ran a benchmark with parameters: pgbench -c 10 -T 60
    4. The utility was pgbenchlaunched on the same virtual machine where the DBMS is installed, and for managed clusters on the virtual machine in the same cloud.
    5. The best result of the three was entered into the results table.

    Test results

    All results of the rapid test in a single table (graphs below):
    AWS EC2 m5.2xlarge2822343
    AWS EC2 m5d.2xlarge2752403
    AWS EC2 t3.2xlarge2636290
    AWS EC2 t2.2xlarge2259320
    AWS EC2 m4.2xlarge2187358
    Selectel VPC (fast SSD)1524186
    Yandex Cloud Compute Instance1309155
    Yandex Cloud Managed Database1226234
    AWS RDS db.m4.2xlarge (3000 IOPS)12001007
    AWS RDS db.t2.2xlarge (3000 IOPS)1127862
    AWS RDS db.t2.2xlarge (1000 IOPS)970625
    AWS RDS db.m4.2xlarge (1000 IOPS)885769
    Selectel VPC (universal SSD)247164

    The Price column shows the estimated cost of the cost of the solution being tested per month in USD, including storage for 100Gb. For Amazon RDS, which is charged by the hour, the cost per hour has been multiplied by 720. Prices for calculation are taken from the following sources:

    - for Yandex Cloud Managed Database
    - for Yandex Cloud Compute Instance
    - for Selectel VPC Instance

    Test results in the form of a graph:



    The conclusions, in general, are fairly obvious: it is better not to take universal SSD from Selektel for the purposes of deploying the DBMS :)

    Well, seriously, I was interested in first of all comparing Selectel and Yandex. As it turned out, both solutions are almost nostril-to-nostril in terms of both performance and cost. And the cost was pleasantly surprised: the prices for the tested configurations turned out to be quite affordable.

    The AWS cloud with a similar configuration is expected to be more expensive (although I expected a larger price difference), but none of the Russian providers were able to keep up with AWS EC2. The exception is that RDS is not clear to me, which even the addition of provisioned IOPS does not help - it works all the same slowly, and it costs very, very expensive.

    A couple of words about Yandex: in general, I waited for the appearance of such a service from them for a long time, it was obvious that it was only a matter of time. It is still clear that it is damp (I hope this applies only to the web-muzzle, and not to the infrastructure as a whole), because there are still a lot of bugs and glitches inside. I had to talk tightly with those. support to understand, this is a bug or something I do not understand. But, I am sure, all this will be quickly debugged and another worthy alternative will appear on the Russian IaaS market.

    Also popular now: