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 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.
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
All results of the rapid test in a single table (graphs below):
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.
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
- On a clean OS, packages were installed
postgresql10-server
andpostgresql10
- Initialized DB for benchmark with parameters:
pgbench -i -s 100
- Three times I ran a benchmark with parameters:
pgbench -c 10 -T 60
- The utility was
pgbench
launched on the same virtual machine where the DBMS is installed, and for managed clusters on the virtual machine in the same cloud. - 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):
Resource | Tps | Price |
---|---|---|
AWS EC2 m5.2xlarge | 2822 | 343 |
AWS EC2 m5d.2xlarge | 2752 | 403 |
AWS EC2 t3.2xlarge | 2636 | 290 |
AWS EC2 t2.2xlarge | 2259 | 320 |
AWS EC2 m4.2xlarge | 2187 | 358 |
Selectel VPC (fast SSD) | 1524 | 186 |
Yandex Cloud Compute Instance | 1309 | 155 |
Yandex Cloud Managed Database | 1226 | 234 |
AWS RDS db.m4.2xlarge (3000 IOPS) | 1200 | 1007 |
AWS RDS db.t2.2xlarge (3000 IOPS) | 1127 | 862 |
AWS RDS db.t2.2xlarge (1000 IOPS) | 970 | 625 |
AWS RDS db.m4.2xlarge (1000 IOPS) | 885 | 769 |
Selectel VPC (universal SSD) | 247 | 164 |
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:
findings
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.