Standard load test. Standard load test How to install 1s load test

For 1C server roles, MS SQL 2008 DBMS server for 50 users.

According to a server expert, we collect hardware:

Choosing a platform: IBM x3650 M3
Select a processor: Intel Xeon E5506 - 1 pc.
Choosing RAM: 4 sticks of 4GB each
Selecting a hard drive: 3 SAS 146 GB RAID5

Software used:

OS MS Windows 2008 x64
DBMS MS SQL 2008 x64
Server 1C 8.2 x64

Test environment: to conduct load testing, the 1C 8.2 configuration was used: “Standard load test”.

Test progress:

A 1C client session was launched on the local server in agent mode and in testing mode.
In the test configuration, the initial number of emulated standard 1C users creating and deleting documents and reports was specified as 20. The step to increase the number of users after the tests was set to 20 users.

Initially (without user connections), the DBMS occupies 569 MB of RAM (2 databases were created: 1C 8.2 configuration: UPP and test configuration), the memory occupied by the system is 2.56 GB.
During testing (up to 110 users), memory for the DBMS is allocated up to 12 GB, one 1C test session occupies 55 MB (55 MB x 200 = 11 GB). For comparison, one real user session (1C client application) takes about 300 - 500 MB. The size of memory allocated for the 1C client application is indicated for a user working in the standard 1C: Trade or 1C: UPP configuration. The 1C server service (rphost) practically does not use the OP, since it only translates requests from the client part to the DBMS (according to the standard, port TCP 1541 and TCP 475 are used for the 1C security server).

CPU resource usage was shared between the 1C server service (rphost) and the DBMS service (sqlservr). With a load of 40 users, rphost took 37% of the CPU power, sqlservr took 30%. With a load of 60 users, rphost occupied 47% of the CPU power, sqlservr occupied 29%.

While deleting created documents, the sqlsrvr service accessed the disk subsystem for recording at speeds of up to 6.5 MB/sec (about 52 MB/sec).

The network load between the 1C server and the DBMS (on the local lookback interface) was 10 Mb/s.
Test result produced by the 1C test configuration:

Parameters: Run test 000000006 from 05/24/2012 12:44:16
Standard load test, version 2.0.4.11
Start of testing 05/23/2012 12:36:39. Running time: 57.1 minutes.
Test conditions
"Server 1C: Enterprise: test
Infobase name: testcenter_82
Virtual users: TEST,"

Conclusions:

It is necessary to relax the server configuration, since the current one is 100% redundant for 50 users.
It is necessary to perform testing using a second server to launch emulated users and check the network load, the expected load is 10 Mb/sec.
The 1C architecture consists of 4 blocks: 1C server, DBMS, 1C security server and 1C client. In this test, all these functions were launched on one server.

When there is a heavy load on the 1C server, there are the following recommendations:

Separate the roles of the 1C server, DBMS server, 1C protection server and 1C client applications (for greater performance, it is better to run 1C client applications on a terminal server).
On the DBMS server, you must use the following structure for data storage systems: the OS should be located on RAID 1, DBMS data files (.mdf, .ndf) on a separate RAID 0, log files (.ldf) on a separate RAID 0, temporary files and a swap file on a separate disk.

The implementation of 1C infrastructure on Linux is an ancient topic, but still relevant. We recently published an article 1C Application Server on Linux, but the question of real performance in comparison with a solution for Windows remained open. Testing was also carried out in manual mode, but for the sake of objectivity of the results, I will publish the results of Gilev’s test, which was carried out on the same hardware platform using different operating systems: Linux CentOS 7 and MS Windows Server 2012.

A stand with two Intel Xeon E5-2670 processors, 8x4GB of RAM and an Intel SSD was used as a server.

Summary table of average values ​​of Gilev test results.

Examples of results







Acceptable test results, ease of deployment and low licensing costs prompted us to create a complete product: Linux-based 1C Server out of the box.

Each model has a convenient configurator in which you can choose the optimal configuration for your tasks. Here's a little more about this.

Creating a 1C server computing power calculator is not a trivial task. And creating a universal 1C configurator for all possible cases is almost impossible.

Surely there are many admins on the hub who have their own idea of ​​the load and computing power requirements of 1C servers (Your comments will increase the value of this article). There are also official 1C recommendations in which everything will work on everything...

But there are still basic parameters that can be calculated, applicable to a typical operating scheme. Knowing how much processor and RAM resources a terminal session consumes, how many IOPS SQL will require for a certain number of users, and based on the results of numerous tests, we have developed a configurator for a standard solution for 1C.

Of course, each case is unique and requires a detailed presale, but for an approximate calculation it is enough to indicate the number of users, the type of database, the volume of the current database and select the necessary licenses.

To compare the cost of a ready-made solution based on Linux and Windows, I will give an example from the configurator with retail prices.

A server for 20 users with a SQL database of up to 80GB, a 1C: Accounting 8 PROF license, based on Linux CentOS will cost RUB 522,759.43. A similar configuration based on Windows - RUB 1,036,279.43.

The range of servers for 1C STSS Flagman consists of 3 models for both Linux and Windows.


1C113.5-020UL- entry-level 1C server, support for up to 20 users with a SQL database. The amount of disk space is calculated taking into account the growth of the database by 20% per year for 3 years. The RAID1 array is based on Intel Enterprise SSD. It is possible to install a double power supply and additional disks for “cold” data. A choice of software services is available: PostgreSQL, xrdp and httpd.

1C216.4-200UL- a model based on a 2-processor platform that ensures the operation of 1C infrastructure for up to 200 simultaneous connections. The storage is calculated according to the same principle - the size of the database taking into account growth, but is built on the basis of a RAID10 array of 4xSSD of the required volume.

1C217.2-050UL-REF- this is a solution for customers with a limited budget, built on the basis of a server restored in our production (after warranty replacement, demo fund, etc.) Servers undergo the same load tests before shipment as new models, but have a shortened warranty period ( 1 year). The server supports up to 50 connections and, excluding licenses, costs only RUB 203,705.00, with an array for a 40GB database.


1C113.5-020UW- entry-level 1C server, support for up to 20 users with a SQL database. The amount of disk space is calculated taking into account the growth of the database by 20% per year for 3 years. The RAID1 array is based on Intel Enterprise SSD. It is possible to install a double power supply and additional disks for “cold” data.

1C216.4-200UW- Windows-based model supporting up to 200 users. The storage is built on the basis of a RAID10 array of 4xSSD of the required volume.

1C217.2-050UW-REF- same platform as the Linux-based solution. Budget option for 50 connections, 1 year warranty.

The following licenses can be selected as the 1C platform in all models:

1C: Managing a small company 8 PROF
1C: Trade management 8 PROF
1C: Accounting 8 PROF
1C: Accounting 8 CORP
1C: Salary and personnel management 8 PROF
1C: Salary and personnel management 8 CORP
1C: Document flow 8 PROF
1C: Document flow 8 KORP

If the customer has sufficient expertise to select a server for 1C, he can use classic models of server equipment. But if there is no such expertise, then, I hope, our server configurator for 1C will help you make the optimal choice of system.

Thank you for your attention! I hope that habra users close to this topic will share their experience in selecting equipment for 1C in the comments.

A mandatory operation for any implementation or change of an existing information system is to assess the required speed of the system and plan the necessary computing resources for its implementation. Currently, there is no exact solution to this problem in general form, and if, despite its complexity and cost, such an algorithm is proposed by any manufacturer, then even small changes in hardware, software version, system configuration or quantity or standard user behavior will lead to significant errors.

However, there are plenty of ways to evaluate the software and hardware configuration needed to achieve the required performance. All of these methods can be used in the selection process, but the consumer must understand their applications and limitations.

Most existing performance evaluation methods rely on some type of testing.

There are two main types of testing: component and integral.

Component testing involves testing individual components of a solution, ranging from the performance of processors or storage subsystems to testing the performance of the server as a whole, but without the payload in the form of a particular business application.

The integrated approach is characterized by an assessment of the performance of the solution as a whole, both its software and hardware parts. In this case, both a business application can be used, which will be used in the final solution, as well as some model applications that emulate some standard business processes and loads.

The green color of the graph, together with some conditionally selected indicators on the right, allows us to make a cross-platform generalized assessment of “good” performance.

How to be happy about your test results

You received a certain performance (speed) index as a result. It doesn’t matter whether the result is good or bad - this is the result of the PLATFORM running on your hardware. In the case of the client - server version, this is the result of a complex chain of requests passing through various sections. You get the total actual result, which is determined by the bottleneck in the system. There is always a bottleneck.

In other words, both DBMS settings, OS settings, and hardware have an impact on the overall team result.

Which server is better

This test, performed on a specific server, gives the result based on the totality of hardware settings, operating system, database, etc. However, a high result on a particular server hardware means that, under normal conditions, the same result will be obtained on identical server hardware. This test is a free tool to help you compare the installation of 1C:Enterprise under Windows and Linux, three different DBMSs supported by the 1C:Enterprise 8 platform.

Test safety

The test is absolutely safe. It does not lead to a “crash” of the server (there is no “stress” algorithm) and does not require preliminary measures even on a “combat” server. Confidential data is also not recorded in the test results. Information about CPU, RAM, HDD parameters is collected. Device serial numbers are not collected. You can easily verify all this - the test code is 100% open. It is impossible to send any information without your knowledge.

Classification TPC-A-local Throughput / TPC-1C-GILV-A

The test belongs to the section of universal integral cross-platform tests. Moreover, it is applicable for file and client-server options for using 1C:Enterprise. The test works for all DBMSs supported by 1C.

Universality allows you to make a generalized performance assessment without being tied to a specific typical platform configuration.

On the other hand, this means that for accurate calculations of a custom project, the test allows you to make a preliminary assessment before specialized load testing.

Download test

This test is not commercial and can be downloaded for free for 8.2 and free for 8.3.

Technical details

What happens in the test within the framework of “one” operation cycle?

Features of using the test on a PostgreSQL database

Set the standard_conforming_strings parameter in the postgresql.conf configuration file to 'off'

How to measure iron load

It should be noted that the test itself already partially performs the measurement. For a more detailed picture, I recommend using Mark Rusinovich’s Process Explorer utility.

The figure shows an example of measurement for the file version.

To understand the real load on the equipment, it was necessary to test the performance of a 1C terminal server in production, which is what I did quite recently, and now I want to present the results for everyone to see.

Read more in the article.

You will find other articles about 1C in the corresponding section -.

In several previous articles on 1C, I worked on calculating server configurations for various loads generated by the efforts of the main users of 1C, namely employees of the accounting and sales departments. The tasks of accountants depend not only on drawing up reports and entering data into the program, and therefore it is more preferable for them to have full terminal access and work with everything they need from there (). For managers, everything is much simpler and for them, publishing an application () is a completely acceptable use case.

I didn’t risk putting the server into production without conducting real testing, so large-scale testing was organized. Its advantage for me personally was that I could confirm (or refute) in practice my theoretical calculations, the basis for which were very subjective performance indicators of employee workstations.

Test environment

So, for testing we took a server with a CPU Intel Xeon E5-1650 v3 @ 3.50GHz, 128 GB RAM, 2*SSD in RAID 1. A virtual machine is deployed on this server, which is just a terminal server, with the applications 1C 8.2, 1C 8.3, MS Office 2013 Pro installed on it.

I’ll say right away that the nature of the load was mixed, that is, there were clients working via RemoteApp and there were those who logged in fully via RDP and used the programs necessary for their work (not only 1C, but also Office). The distribution was approximately as follows: 24 RemoteApp sessions, 5 RDP clients.

Users were faced with the task of logging into applications every 30 minutes for two hours and performing everyday tasks in them - building reports, printing data, posting documents, exporting data to other formats, etc. The main thing is that there was no goal to put the server the goal was to give a real average daily load.

Test results

Everything started as usual - users from the third push, already from department heads and above, began to log into 1C and perform routine tasks. This all did not last long and I had only one chance to take server performance indicators as close as possible to the real load. This is what I got in the end:

RAM (dynamically allocated memory was set on the virtual server, so if necessary, the current amount of RAM was constantly changing upward):

Now it is necessary to analyze the results and draw conclusions.

Data analysis

It should be noted that the calculations for the processor turned out to be extremely accurate.

In the article, I empirically established that the CPU resource consumption of one 1C RemoteApp session averages 122,775 processor performance units (performance data taken from the website www.cpubenchmark.net). In another article, I calculated the resources required to run a full RDP session and they amounted to 4% of the Core i5 4460, that is, 0.04 * 6622 (the data is also with www.cpubenchmark.net) = 264,88.

In total we get:

  • a full RDP session eats up 264,88 CPU performance units;
  • session 1C RemoteApp consumes 122,775 units.

At the top I mentioned that there were 24 RemoteApp and 5 RDP users. We count:

24 * 122,775 + 5 * 264,88 = 4271

The relative performance index of the Intel Xeon E5-1650 v3 is 13477 units. That is, theoretically CPU load should be around 32% (4271 / 13477 * 100).

The CPU load graph shows that in the time interval 10:30 - 10:50 the CPU is loaded by 25 - 40% (peaks do not count). Of course, you won’t get a straight line of CPU load of 32%; there will still be fluctuations from minimums to relative maximums, but in general we can assume that the real data agrees with the theoretical ones. By the way, the more users there are on your server, the more uniform the load will be.

In fact, the RAM data turned out to be more valuable. According to calculations from previous articles, I had:

  • 2GB per RDP session;
  • 100MB per RemoteApp session.

That is, the amount of occupied memory should have been a maximum of 12.4 GB + a little for the OS. But, as it turned out and as I in principle had a presentiment, this value in practice was a completely different figure. 1C turned out to be very greedy for RAM, to my regret. Moreover, the application behaves in such a way that once it has taken up some space, it does not consider it necessary to release it at the moment when it is no longer needed:

Well, is it normal to eat up 2GB of RAM and sit and do nothing (session CPU load is 0%). Modern programmers do not care at all about the optimal use of resources. Personally, when I was at university, I was forced to rewrite application code if it was written irrationally in terms of the use of computing resources. Apparently, the qualifications of modern programmers have fallen below the plinth, or maybe this is just an approach - why optimize already written code, when it is better to develop new functionality. In general, it’s not the point, it bombed and that’s okay.

Of the 16GB of “speakers” allocated to the server, it ate them all and most likely demanded more. In theory, if there is a shortage of RAM, the OS will swap to the disk and in this case, a severe drop in performance begins. In my case, this was not the case and most likely this was due to the SSD, which showed practically no load at all - only two short-term peaks during the entire test period (from 10:00 to 12:00). However, as practice shows, I do not recommend saving on the RAM of terminal servers.

1C Test Center 8 is a specialized software product from 1C that allows you to evaluate system performance and study the bottlenecks of the information system.

Previously we looked at a custom configuration. Now we will learn how to create scenarios for multi-user configuration testing by users and run the testing itself.

The testing script in 1C Test Center is written inside a specially created processing. This template is located inside the configuration, it has the name “TCTestProcessingTemplate”. To create your own test script, you need to copy this template and based on it create your own, new one, let’s call it “Re-posting goods receipt”:

Let's add a new attribute to processing and display it on the form - “DocumentForCopying”, this is the document that we will copy.

Let's take a closer look at the form module. You can use three procedures in it - TCIinitialize(), TTSExecute(), Delete().

  • TCIinitialize - used to initially fill out the infobase settings, for example, filling out the accounting policy.
  • TCExecute is the main module in which the testing script is written directly.
  • TCUDeleteData is a module that describes the deletion of objects created during the testing process.

Let's write the simplest code into the TCExecute() procedure, which will copy the selected document 5 times in a row and measure the copying and posting of each document:

For th=1 To 5 Cycle

Tools = KipExternalComponent.GetTools();
StartTime = KipExternalComponent.TimerValue(Tools);

Get 267 video lessons on 1C for free:

CreateDocuments();

EndTime = KipExternalComponent.TimerValue(Tools);
Execution Duration = (End Time - Start Time) / 1000;

TCWriteIndicator("Execution Time", Execution Duration);

EndCycle;

Return TCExecutionResultSuccessfully();

The CreateDocuments() procedure will be executed on the server:

Procedure CreateDocuments()

NewDocument = TCObject.DocumentForCopying.Copy();
NewDocument.Date = CurrentDate();
NewDocument.Write(DocumentWriteMode.Post);

End of Procedure

This completes the preparation of the script, let's move on to the Test Center to conduct load testing.

Setting up 1C Test Center 8.3

After writing the testing, we will begin setting up the Test Center itself. To configure, you need to fill out a number of reference books:

  • Treatments— a directory containing a list of processes connected to testing. Processing can be both internal and external.
  • Roles— a directory for storing the processing-processing settings link. Settings are data that are individual for each test (number of iterations, document copied, etc.).
  • Users— list of users and their passwords.
  • Computers— a list of computers on which the test will be performed.
  • Clients - setting up where, from whom and in what mode load testing will be launched.

Test Scenarios

The main reference book, which consolidates all the settings: how many times, by what user, under what name will load testing be performed.

Also on the “Parameters” tab you can configure a technical testing scenario:

After setting up the script, all that remains is to launch it.

Starting testing in 1C: Test Center

When everything is ready, all that remains is to start the testing job.

To do this, you need to launch at least two sessions of the program: the first - in the role of the so-called. “agent”, and the second as the initiator of the script launch.

Launching the agent:

Running the script:

To run, just select the desired script from the list and click on the Run button.