📜 ⬆️ ⬇️

Third cosmic speed for MS SQL Server



In September, DataCore introduced a new product line, MaxParallel, and the first product in the series, MaxParallel for SQL Server. MaxParallel does a simple thing - it speeds up the operation of the MS SQL database, without requiring any changes to the database itself (its optimization and so on) or the hardware (increasing the number of processors, memory, and so on).

What is the idea: almost all modern database servers are multi-core, and applications successfully use these kernels to parallelize computing. But the I / O process remains consistent and uses a single processor core. And if you force the I / O scheduler to use more processor resources, the database will run faster. At least be able to work faster. The uniqueness of MaxParallel is not only that it speeds up the database without serious intervention, but also that it removes the “bottleneck” that cannot be removed otherwise. Neither the increase in the number of cores in the server, nor the acceleration of disks on the back end will change the fact that the OS itself uses only one processor core for processing input and output. The only solution would be to distribute the load between multiple servers - more servers, therefore, more OS instances and, as a result, a more productive I / O subsystem. But this approach is expensive and very much so.
')
Even before the official announcement of the product, we organized a closed-end product testing with a limited number of customers. And one of them had the following task: users work with a database. There are about 40 such users. It is necessary to increase the number of users, while maintaining an acceptable response time (or reducing it) and also increasing the number of transactions per user (or, again, increasing it). Here is what the company had at the beginning:



When the number of users increased by 10 people, the response increased almost 5 times, and the number of transactions decreased by ~ 20%. And this is unacceptable. We tried to enable caching. This gave a performance boost, but not the one that the customer expected.



Moreover, it is worth paying attention to the fact that in both cases (with and without caching), a drop in performance occurs when there are more than enough processor resources in the server.



The implementation of DataCore had a positive effect:



The number of users were able to increase by 3 times, while maintaining an acceptable response time. Moreover, to speed up the database, processor resources were used, which in other cases were not used.

Installation


The installation of MaxParallel is quite simple, but still need to take into account a few points:


To install MaxParallel, it is required that a Microsoft SQL database be installed on the same server, this is mandatory and the installation wizard checks this. If all is well, the wizard continues the installation process. Then the process is fairly straightforward: “Next” -> “Next” -> “Finish”. The distribution itself takes 135 MB. The installation process will require one reboot for the new drivers to take effect.

MaxParallel does not have a control interface as such; there is only a tray icon that opens a window with only one setting - “On / Off” and a window for activating the license.



The solution is managed through the command line, for which the DcsMpAdmin.exe utility is provided. With it, you can enable / disable the service, select disks for acceleration, limit the amount of memory for the MaxParallel service. But most will not need this utility.



Who will it help?


MaxParallel best of all manifests itself by speeding up the MS SQL 2008 database, a little less on versions 2012 and higher. in-memory is heavily used in them. But here the effect can be seen with the naked eye. Parallel loads on the database are especially well accelerated. case of a lot of INSERT / UPDATE, as well as huge reports.

When MaxParallel does not help:


How to try


MaxParallel can be tried for free for 30 days, for which there is a fully functional trial period. The easiest way to understand whether MaxParallel is suitable for your environment is to measure the parameters of the current MS SQL operation in terms of transactions per second, response time and reporting time, as well as measure the consumption of system resources, such as memory and processor time. After that, put MaxParallel, run it and take repeated measurements, and compare the results.

You can also try the version of MaxParallel deployed in MS Azure, you only need to have an account on Azure (it's free). There for an hour you will be given a Windows Server 2012R virtual machine with 8 cores based on Intel Xeon E5-2673v3, 28GB of memory, with MS SQL 2014, MaxParallel and HammerDB. You can independently check different scenarios, but only on synthetics.

For example:

Work HammerDB to MaxParallel.



Work HammerDB after running MaxParallel.



In the appendage is offered a fairly clear document that describes the testing process in steps. But, if you have the knowledge and skills to work with MS SQL, you can implement any script.

Licensing


MaxParallel is sold by subscription for a period of one year and is also licensed as MS SQL. core and editorial - Standard, Enterprise, Web, Express, Developer. The MaxParallel license must be the same as the MS SQL edition. The cost is announced on the website:



Also, for users of Azure cloud resources, you can buy virtual machines with MaxParallel on the Azure Marketplace:



Conclusion


DataCore has launched an interesting tool on the market that will find its place in the infrastructure. This is not a universal solution, but its scope is clear and well defined. In the future, the company plans to release similar solutions for other areas: file server, Exchange (I even heard the words “Linux” from engineers). I urge everyone to try MaxParallel, and if there is no allergy to it, share the test results. Happy New Year and success to you!

Anton Ivanov
Regional submit DataCore.
Anton.Ivanov@datacore.com

Source: https://habr.com/ru/post/345890/


All Articles