Server calculation for 1s. A few words about virtual servers

The 1C:Enterprise platform versions 8.2 and 8.3 are considered standard application for tasks of accounting and management of companies. A wide range of application solutions has been developed for public and private enterprises. Implementing their own information infrastructure, every manager or IT manager of a company has a question about what kind of server is needed for 1C. The problem is complicated by the fact that the purchase of equipment requires significant financial costs, and not every enterprise can afford to choose top-end configurations.

We have collected recommendations from leading hardware manufacturers (HP, Dell, IBM) and developers of the 1C 8.3 software product so that our customers can profitably purchase desired server. An optimal network infrastructure can be obtained from any operating system, but hardware capabilities play a more important role.

Server Selection Criteria

The 1C platform may require significant hardware resources from the server. If the company's budget is unlimited, which happens infrequently, you can take the latest generation platforms without hesitation, fill all the disk baskets, RAM slots and demand uninterrupted system operation from an IT specialist. The choice of equipment with limited funds requires a more balanced approach. To understand which server for "1C" will be able to cope with this, it is necessary to carefully analyze the structure of computing loads. If they are known in advance, it will be much easier to design a ready-made solution.

When choosing a server for "1C" (8.2; ​​8.3), they are guided by the following points:

  • the number of operators simultaneously performing data entry and reporting;
  • the ability to allocate separate physical servers for SQL and the 1C application;
  • planned volumes of data processing;
  • load distribution structure in the client-server architecture

Choice of processor and RAM

Calculation of the frequency, the required number of processor cores, as well as the volume random access memory is the first and most important step. To consider several options, we will choose a server for "1C" taking into account the state of the company.

Small organization (up to 15 employees). With a small number of users, the size of the database, as a rule, does not exceed 2 GB, and the 1C program in the form of a file version is installed on client machines. The OS needs in this case are 4–6 GB, and another 4 GB is allocated to the system file cache. The processor load distribution looks like this:

  • 2 cores - for OS and terminal users;
  • 1 core - for the 1C application server;
  • 1 core - for SQL database.

Entry-level machines with a single quad-core processor can handle this task. It can be both rack and tower servers. The latter option is preferable, since it does not require the allocation of a separate room for a server room.

Medium organization (up to 40 employees). With such a number of users, 1C developers recommend using the terminal access mode to the application. Databases can be up to 4 GB in size. For such a load, you need at least two processors with 4-6 cores. The optimal amount of RAM will be 16-64 GB, since a minimum of 700 MB must be allocated for each user. It is believed that the 1C application solution in which the client machine runs requires from 240 to 480 MB, and another 200–220 MB is allocated for office applications.

With this number of processes, it is recommended to use one mid-range machine with virtualization or two physical servers. One of them will be used for terminal access, and the second one is for SQL. It is best to implement the 1C application server on the first machine or even allocate a separate single-processor system for this. The desired configuration is selected in each specific case based on CPU time analysis.

Large organization (more than 40 employees). The basic hardware configuration in this case will consist of three physical servers:

  • terminal,
  • DBMS,
  • "1C".

Database volumes with such a number of employees often exceed 4 GB, and it is recommended to allocate no less amount of RAM for the system cache. Another 4 GB will be used by the operating system, and 1C applications will need about 8 GB. Thus, you need at least 16 GB of RAM.

For such tasks, two-processor servers with support for Intel Xeon E5-2600 or higher are selected. If the number of employees does not exceed 50 people, only one machine can be left for terminal access and 1C applications. However, in view of the company's growth prospects, it is better to foresee separate server for every task. If the number of personnel involved approaches 100 employees, you need to deploy a cluster of two machines for 1C, and leave one for the rest of the tasks.

Choosing a disk subsystem

Server performance directly depends on the disk subsystem. When 1C applications are running, data reading and writing operations are performed with high intensity. Most of the complaints about server performance are related to locking tables while accessing a large number of users at the same time.

The task of choosing a server for 1C includes monitoring the disk subsystem, which allows you to find the optimal balance of performance and reliability. An extremely important factor affecting performance is its ability to perform a certain number of read / write operations per second (IOPS). If the database is up to 300 MB, and the number of 1C users is up to 6 people, this parameter is 400–600. If the number of server users reaches 100 people, then the IOPS will be 18,000. The streaming speed plays a secondary role.

For every type hard drives read/write speed values ​​are set:

  • SATA - 100/80;
  • SAS - 240/220;
  • SSD - 35,000/8,600.

From this it can be seen that for database servers "1C" are best suited solid state drives. The main factor limiting their use is their high cost. Therefore, SAS drives are also used to reduce the budget. To store critical data, including "1C", hard drives are combined into RAID arrays of different levels, and the redundancy embedded in them should be included in the calculation of server performance.

When designing a solution, system fault tolerance plays an important role. For this, both hardware and software. Servers are equipped with power supplies and disk cages with hot swap, use UPS for uninterrupted power supply. Ensuring the safety of data is carried out by reserving them. At least once a day, a log file is created that provides information recovery in case of system failures.

You can find the desired server and configure it for 1C on the site site. Our experts will assist in solving this problem. For advice, contact them by phone or contact the manager in the chat.

About two years ago we published material about the 1C Enterprise server on the Linux platform, interest in this topic is still great. At the same time, a lot has changed, the 1C platform does not stand still, and most often the implementation goes beyond the simple repetition of instructions. This is not surprising, the 1C Enterprise server is a complex product, so we decided to start this series of articles aimed at a deeper study of the subject.

Before picking up the mouse and running to the server room, you should clearly master the necessary minimum knowledge, namely, have an idea about the structure of the 1C Enterprise server and the purpose of its individual components. Most of the problems during implementation are due to the fact that the 1C Enterprise server is perceived as a kind of monolithic formation in which all components are interconnected in a cunning way known to one developer. However, this is not the case, and today we will figure out what our server consists of and how it all works together.

I would like to emphasize once again the extreme importance of what will be discussed below. Without this knowledge, it will be problematic to achieve stable operation, not to mention diagnosing bottlenecks and increasing productivity. As a result, a classic picture may turn out: it seems that the iron is powerful, everything is done according to the instructions, but it slows down. Unfortunately, most instructions for beginners (including ours) contain information only on how to do it, without focusing on what exactly is being done and why. So let's start fixing it.

The client-server version of 1C Enterprise is a three-level structure (the so-called "three-link"), which includes: a client, a 1C Enterprise server and a DBMS server. These are completely independent components that can be combined in any acceptable combination to achieve the best result. Consider the following diagram:

Let's start with clients, the current version of the platform (8.2) provides for the use of three types of clients. Let's analyze them in more detail.

fat client

This is a classic 1C client application, before the release of the 8.2 platform, it was the only available type of client. The scheme of operation of a thick client is as follows: the client application requests data from the 1C server, then, in turn, requests them from the database and sends them back to the client, on which they are processed. As you can see, this scheme suboptimal: the 1C server is essentially just a layer between the client and the database, all calculations take place on the client. This imposes increased requirements on client PCs, as server computing power is not used. It should be clearly understood that in thick client mode you will not get an increase in performance from switching to the client-server version, perhaps even vice versa.

Thin Client

It can be called the main type of client application for the 8.2 platform, in theory, in practice, not everything is so smooth and we will return to this. The scheme of its work is radically different: the client requests data from the 1C server, it receives them from the database, processes and gives the result of the calculation to the client. In this case, the main computational load falls on the server, so there are no special requirements for client PCs and the channel from the client to the server.

Also, the thin client can work both over the TCP/IP protocol in local network, and via HTTP over the Internet. This requires another intermediary - a web server that transmits client requests to the 1C server, no data processing is performed on the web server, it is used exclusively as a transport. The advantages of a thin client are clear, it allows, in the presence of a powerful server, to significantly speed up the work with the program, it also significantly reduces network traffic, which is very important for office networks.

Web client

Its existence logically follows from some properties of the thin client, indeed, if all requests are processed by the server, the transport is HTTP, then why not use a browser for work? The web client operation scheme is no different from the thin one, however, today not all functions supported by the thin client are implemented and work correctly in the web client. In part, this can be fixed in the configuration, in part, the mechanism for displaying information in the browser imposes restrictions. However, 1C has a web client and it works, and no one bothers you (again in theory) to work in the program while lying on the beach with a tablet.

Now about a fly in the ointment in a barrel of honey. For normal operation in thin and web client mode, the configuration must work in managed application mode and support all functions in this mode. The managed application mode is the main one for the 8.2 platform and is quite radically different from what it was before, including externally. A visually driven application can be distinguished by a new interface that features tabs and hyperlinks:

At least, unusual, especially in comparison with the classic interface, but do not rush to rejoice when you see new interface, except appearance, the configuration must support the execution of all its functionality on the server, it may well turn out that not all features will be available in thin and web client mode.

Today, only a part of them work in managed application mode. typical configurations such as: Small Business Management, Retail Management 11, Retail 2, and Payroll and Human Resources. These solutions can take full advantage of the new platform. Enterprise Accounting 2.0 does not use the managed application mode and will not work in thin and web clients, the same applies to many third-party solutions, such as Fireplace, etc.

conclusions

If possible, you should use a thin client, as this allows you to shift all calculations to the server side to work comfortably even on slow channels, incl. through the Internet. At the same time, it should be remembered that working in the Configurator mode is possible only through a thick client, which will also have to be used to work with configurations that have not yet been transferred to the managed application mode.

The web client should be used when it is not possible to use a thin one, for example, from someone else's PC on a business trip, while you should be prepared for the absence or incorrect operation of some functions.

Server cluster 1C

Having dealt with the clients, let's move on to the servers. The system provides for the use of three types of servers: 1C server, DBMS server and web server. It is important to understand that server data is completely independent of each other, this gives the system flexibility and allows rational use of computing resources.

Also, the system does not impose any requirements on platforms. You can share both Windows and Linux servers, Apache and IIS can be used as a web server, PostgreSQL, MS are supported from the DBMS SQL Server, IBM DB2 and Oracle. Therefore, no one bothers you to create a scheme in which the 1C server running on the Linux platform will work together with the database server running Windows Server and IIS and vice versa. In addition, you can use several DBMS servers (as well as web servers) by placing different databases on different servers.

This approach allows you to flexibly combine, expand and change the existing configuration depending on current needs, while everything will be as transparent as possible for the end user. For example, you can transfer resource-intensive information security to a separate DBMS server by changing only the database connection parameters in the server settings without affecting the client settings.

And finally, the most interesting: a cluster of 1C Enterprise servers. Yes, that's right, not a single server, but a cluster of servers. Usually, this is where misunderstandings begin, especially if there is only one server. However, everything falls into place if we take into account that the concept of a server cluster is primarily logical, but this approach easily allows you to scale the scheme, increasing its performance or fault tolerance.

Any cluster consists of the Central server 1C Enterprise and working servers. In the simplest configuration, this will be the same physical server. However, if necessary, we can add additional working servers, the load on which will be balanced by the central server. This allows users to quickly and transparently increase the computing power of the system and increase fault tolerance. The cluster also does not impose requirements for the homogeneity of the platform; servers can work in it both under Windows control, and under Linux.

What conclusions can be drawn from the above? Firstly, the client-server system 1C Enterprise is very flexible and allows you to optimally use the available computing resources to obtain the best result. Which configuration to choose depends on the specific tasks and the funds allocated for their solution.

For example, if you have a small load and you are using a thick client and a configuration that does not support the managed application mode, it makes sense to combine a 1C server cluster and a DBMS server on one physical server, since it is very wasteful to allocate a separate machine for the layer between the client and the database.

Conversely, when using a managed application in thin client mode, it is better to separate the DBMS server and the server cluster into different servers, each of which will be optimized for its task.

Everyone knows that a server is a specialized computer in the material sense, what is in the language system administrators called iron. If we are talking about the 1C Enterprise environment and file version work, then the enterprise server, whose employees work with accounting programs, stores databases to which users connect via a local network from client devices. In addition, other information can, of course, be stored on the server.

What is a 1C server

But there is another understanding of the server

Server 1C is a program that works in client-server mode with 1C databases running DBMS, for example, Microsoft SQL Server or Linux PostgreSQL, IBM DB2, Oracle Database, etc. That is, it is not just the storage of the 1C database on the server, it is the management of the work processes of 1C Enterprise.

As a rule, the 1C server is used by medium and large companies in which about 20 or more users work with 1C databases at the same time. With a smaller number of 1C users, the file mode is still enough, when the 1C database is located on one of the computers (possibly one of the users), and the path to it on the local network is registered from the rest of the PCs. For example, like this: \\<Имя компьютера в сети>\Bases 1s\<Имя базы 1с>

And for the user on whose computer the database is located:


Why do we need a 1C server, and what advantages does it have?

  • performance. When working in the client-server version of 1C, the most voluminous and “heavy operations”, for example, group re-posting of documents or group data processing, are performed on server capacities, and the end result, the so-called “sample”, is provided to the client application. Increasing the capacity of one server is easier and cheaper than upgrading all client machines.
  • Safety. When using the 1C client-server mode, users do not know the location of the database. This simplest way stop the possibility of copying information from the database. IN file mode working with the database, the user can easily do this.
  • Another serious argument in favor of integrating the 1C server architecture information system based on 1C is the ease of administration, as well as the ability to control and restrict user access to the database.

Server operation 1C

A configuration or 1C client application launched by a user on his device, say, a computer, is connected to a 1C: Enterprise 8 server cluster that accesses a server that stores databases managed by MS SQL Server or PostgreSQL.

It is desirable to place the 1C Enterprise 8 server and the database server on different hardware, since it is thanks to this that the load is distributed between the 1C Enterprise servers and the database.


Installing server 1C

Let's go directly to the instructions for installing the 1C server. To begin with, we need an installation distribution kit, which can be taken from the 1C user support site (users.v8.1c.ru).

From the list of supplied distributions, two options are suitable for us:

  • Technological platform 1C Enterprise for Windows - to install the server 1C 32-bit version.
  • Server 1C Enterprise (x64) for Windows - to install the server 1C both 64x and 32-bit version.

Open the folder with the installation files. For the 1C Enterprise environment, this is a standard window.


We need the Setup.exe file. Its launch will call the 1C Enterprise installation assistant. On the first page, click Next.

On the next page, we will be asked to select the components to be installed. In addition to the standard ones, pay attention to:

  • Server 1C Enterprise, which will install the components of the server 1C.
  • Server administration 1C Enterprise 8 - necessary elements server administration 1C.

The rest of the components can be installed as needed now or later. Therefore, we click "Next".


After that, we have to choose a language among the proposed interface languages. It all depends on the desire of the user. Please note that choosing " System settings» work will continue in the language of the OS installed on the computer.

In most cases, the 1C server is installed as a service (recommended), so we put the appropriate checkmark on the next page. We also select a user to start the service or create a new one. Be sure to check that the user has the following rights:

  • Login, that is, access directly to the service (Log on as service);
  • Login to the system to run a batch of jobs/commands (Log on as batch job);
  • Ability to use Performance Log Users.

In addition, it is better to give the user rights to the directory of server service files. The default is C:\ProgramFiles(or ProgramFiles(x86))\1cv8\srvinfo. The path depends on what bitness we install the application for the 1C Enterprise server.

Created New user USR1CV8 will have all of the listed permissions by default. Set a password and continue the installation of the Enterprise server.


On the next page we begin the installation.

After its completion, the program will offer to install the protection driver. Using software protection driver is not required. Whether we check the box or not depends on the type of our license.

Now we need to make sure the server service is running.

We can access the list of services by using the services.msc command in the search bar of the Start menu. The service may look as shown in the screenshot or "1C: Enterprise 8.3 Server Agent". If the service is not running, start it manually: right click click on the service - Properties - Run. Also set the Startup Type to Automatic.

Server 1C installation is completed. It remains only to configure windows firewall so that users with client machines could connect to the 1C server. To do this, you need to unblock ports 1541, 1560-1591 in the firewall. You can read about how to add an allow rule to the firewall on the Internet.

In the final, we will activate the existing license for the 1C server.

Server 1C is special program, which allows you to run 1C in a company in client-server mode. What does all of this mean?

In general, 1C can work in two modes. The first is usually called file. The program that the user runs () on his computer independently works with the database.

The second mode is called client-server (or simply server-side). This means that a special program is running on the server (computer) - the 1C server (the program, also called the 1C Application Server). The program that the user (1C client) runs on his computer works with the 1C server program, and that, in turn, works with the database. The database used is a DBMS - MS SQL or similar.

Server 1C is usually used in the following cases:

  • Database is large (4Gb+)
  • The number of users is large (20-30+)
  • A 1C thin or web client is used (in general, any kind of 1C and web bundle)
  • I want to work with 1C on Linux.

Today we will discuss how to set up a 1C server.

What is a 1C server

To avoid confusion, let's figure out what they mean when they say "Server 1C":

  • This is a 1C Server program (usually run as a Windows service)
  • This is the server that this program is running on (i.e. the computer)
  • This is the server running MS SQL, on which the database is located, which is managed by the Server 1C program
  • This is the server that runs the web. Apache server or MS IIS, through which the 1C web client works.

If I add that the 1C server can be a cluster (that is, a group of servers on which the slave programs of the 1C server run), then you can get completely confused.

The real scheme of the Server 1C

The 1C server (more precisely, the 1C application server) is a 1C program installed [most often] as a Windows service. You can also install it as a regular program and use autoload to start it when Windows boot. Also, the 1C server can be installed under Unix / Linux, there is a separate distribution kit for this (see the link on how to install under Linux here).

Server 1C is not a single program, but consists of several processes:

  • Server agent (ragent.exe) - in fact, it is a 1C server. It does nothing but store and identify one or a group of 1C clusters.
  • Cluster 1C (rmngr.exe) is a group of 1C workflows that actually process data. The cluster itself does not process anything, but manages workflows.
  • The 1C workflow (rphost.exe) is actually the “workhorse” that processes the user session.

Thus, one 1C server can consist of several clusters (which can be located on different computers), and each cluster can consist of several processes. What does it give?

By creating multiple clusters, you balance the overall stability of the system. If one of the clusters (or server computers) crashes, another cluster will continue to work.

By creating multiple processes, you balance the load on the processor and the amount of available memory.

Scheme of the 1C server with other components of the 1C system

In the case when a 1C thick client is used, then the 1C server is needed to send queries to the 1C SQL server. In the case when a 1C thin client or 1C web client is used, the 1C server performs all calculations. Accordingly, the load on the server computer increases.

DBMS (in conversation, many people call SQL, although this is incorrect) is a database management system. Orally often referred to as "es-ku-el" or "skul" or "sequel". In most cases, MS SQL is used with 1C, as this has developed historically. Version 8.2 introduced support for Oracle and IBM DB2, as well as for those who would like to build a fully licensed and free system on Linux - PostgreSQL, distributed free of charge (licensed).

DBMS in lightly loaded systems are usually installed on the same server computer as the 1C server. In this case, you need to monitor the MS SQL settings, including memory usage.

In heavily loaded systems, MS SQL and the 1C server are distributed to different computers (in difficult cases, even the 1C server itself is distributed to several computers). They use computer resources in different ways, both require a processor and a hard drive. On the 1C server side, the load is greater on the processor and memory (only temporary files are stored on the hard drive). From the MS SQL side active work users on entering documents is a lot of small reads/small writes.

The web version additionally uses a web server. It is required when:

  • need to work 1C with the web (web services, web extension)
  • using a 1C thin client via the Internet
  • using the web client.

The web server does not perform any 1C actions and performs the function of a gasket between the client and the 1C server. Those. he transfers (broadcasts) all actions to be performed on the 1C server. Web work IIS servers with a 1C server is built on the basis of the ISAPI extension, from the 1C distribution kit.

Server management 1C

The 1C server is managed using special utility Administration of servers 1C. The utility is located in the 1C: Enterprise menu by clicking the Start button.

If you have several versions of 1C installed on your computer, then the console usually starts - latest version(during installation, the version of the console is registered). Please note that the version of the console and the version of the 1C server program must match.

If you need to run the console previous version- in the Start menu of a specific version of 1C, you can select the Register administration utility command. Then try starting the console again.

The control console window is divided into two parts - the left (with a list of parameters) and the right (information panel). When you first start the panel on the left will be empty.

To add a 1C server that we will manage, and which is already installed and running, you need to right-click on the 1C Central Servers line and select New 1C Server. As the Name, you need to enter the IP address or the name of the computer on which the 1C server is installed and running.

To enter the added / selected server - open the branch by clicking on the cross to the left of the name / IP address:

  • branch Administrators
    Here, 1C server administrators are indicated (i.e. added). 1C server administrators have rights to manage the server itself (not a cluster!). If none is added, then everyone who enters can manage the server.
  • branch Clusters
    Here is the list of clusters. If it is empty, create the first default cluster.
    Having expanded the cluster branch, you can manage the cluster:
  • branch Administrators
    The 1C cluster administrators are indicated here (i.e., added). 1C cluster administrators have rights to manage the cluster, but not the 1C server. If none is added, then anyone who enters can manage the cluster. You do not need to be a server administrator to manage a cluster.
  • branch Working servers
    Here you can add and remove workflows. As mentioned above, this allows balancing the load on the performance of user sessions by separating them into different processes. Process properties include:
    o Use/Do not use/Reserve – process activity
    o Performance – number up to 1000, default 1000; allows you to manipulate the current priority of a process; new sessions connect to the process with the highest throughput figure; however, once every N minutes, the system itself rearranges this figure according to the actual load of the process.
  • Infobase branch
    Actually, the connected (located on this 1C server) databases are located here. The database properties are:
    o Blocking sessions - blocking connections to this database now
    o Message - issued when trying to join when blocked
    o Permission code/Parameter - allows connection even if the ban is set.
  • Infobases/Database name/Sessions branch
    List of users connected to the database. By highlighting the session with the cursor, you can delete it with the Del button. You can select all at once. Be careful - don't delete yourself!

To date, the financial product 1C from the applied accounting program for accounting has grown into a wide-format complex for accounting and maintenance of almost any type of business, claiming to compete with the world's "monsters" SAP R / 3 and Microsoft Dynamics AX (Axapta).

Russian companies are increasingly organizing their business processes using modern configurations 1C 8.3 "Trade Management", "Production Management", "ERP Enterprise Management" and the like. Accounting, marketing, production, sales departments are transferred to 1C, integration with IP-telephony and document management systems is being carried out. However, immediately after the intentions “let's work in 1C”, questions arise - on what resources will the central base of 1C work, what hardware will show the best result for a reasonable budget? It is easier for giant enterprises in the public sector in this situation - a clear command was given to numerous full-time IT integrators and architects, mechanisms for large-budget tenders began to spin with the obligatory condition for providing a turnkey concept and further support of the system by certified specialists. But what about companies that want to purchase and install one of the 1C: Enterprise products themselves, spending their budget wisely?

The most basic mistake, if you do not take into account the use of pirated or unverified software, is saving on hardware for 1C. These trends are especially common in startups and small companies. There is an opinion that it is not necessary to buy expensive server equipment with Intel Xeon processors, it is not necessary to pre-calculate the amount of RAM, the load on the CPU and the disk subsystem, that there is no need to create redundant disk arrays (Raid), use professional disk controllers with Cache-RAM and etc. Errors in the calculations of the IT architecture for 1C lead to sad consequences, which the company learns about already upon stopping business processes. Therefore, it is very important to pay attention to each hardware node of the server platform for 1C.

Examples typical problems due to incorrect construction of the IT architecture for 1C:
  • "Braking" of the base and 1C interfaces due to the excess load on key resources (usually RAM or disk subsystem).
  • Errors and "crashes" of the 1C program due to the instability of the incorrectly selected equipment.
  • Downtime of the company due to the failure of the central hardware.
  • Partial or complete loss of 1C data due to random hardware or software failures.

Hardware resources of the server 1C

Let us consider below the most key hardware resources, the mistake in choosing which can ruin the entire enterprise automation project when creating a server under 1C on your own.

Central processing unit (CPU)

Number of physical cores CPU. The topic of eternal disputes on various 1C forums is what is more important than CPU frequency or multi-core. The roots of these contradictions go back to the past, to 1C 8.0 or even 1C 7.7. Indeed, the 1C executable processes of earlier versions were purely single-core, i.e. no matter how many cores the central processor provides - the enterprise server service 1C 8.0 or the "thick client 1C 7.7" always occupied only one "zero" core in operating system. Today, the picture has changed - the operating system boldly distributes the tasks of one 1C: Enterprise (rphost) process across several CPU cores (see Figure 1).




Figure 1 - CPU load during the operation of 1C server processes.


But this does not mean at all that if you buy a processor with the maximum number cores, then the 1C server paired with a DBMS (most often DBMS means MS SQL) will show fantastic performance and re-carrying out accounting periods in the 1C program will be a matter of a few minutes. It is necessary to understand the difference between the speed of performing a single operation and the process of processing a large amount of information simultaneously. The number of physical cores just allows you to solve the issue of stability and performance of simultaneous work with many different tasks by the 1C: Enterprise server and DBMS. Hence the conclusion - the greater the number of 1C users, the more the right number of cores will play a role for the comfortable simultaneous operation of these same users. The dependence of the number of users on the number of cores for the 1C server is shown in Table 1.


Number of concurrent users on the 1C:Enterprise server Processor type and model Number of cores used
Up to 10 users Custom Intel Core from 3.1Ghz No more than 2-4
Up to 20 users Server Intel Xeon from 2.4 Ghz 4 to 6
Up to 30 users Server Intel Xeon from 2.6 Ghz 6 to 8 cores
Up to 50 users Server Intel Xeon from 2.4 Ghz - in the amount of 2 pcs From 4 per processor

Table 1 - The ratio of the number of users on the 1C server and the recommended number of CPU cores.


CPU frequency. In contrast to the number of cores - the frequency of the central processor affects precisely the speed of processing one piece of a task at one time, which is the most popular criterion for 1C end users. The frequency of the processor is exactly the parameter, with an increase in which for a single user, the speed of processing requests by the 1C server and the DBMS will increase and the time during which the system will provide the final result to the end user will decrease. In support of this, the well-known specialist Gilev, in one of his articles based on practical tests, made an unambiguous conclusion - “the speed of 1C is much more influenced by the frequency of the central processor than its other parameters, whether it be the end client 1C or the server 1C: Enterprise ". This is the architecture of the 1C program.

Cache, virtualization and hyper threading. In the past, when multi-core processors were not yet so common, Intel invented a special CPU technology that mimics multi-core, the so-called "hyper-threading". Once enabled, one physical processor (one physical core) is defined by the operating system as two separate processors (two logical cores). We recommend turning off “hyperthreading” for the 1C server. This technology does not bring any acceleration of 1C.

Using virtual machines for the 1C:Enterprise server and DBMS, it must be taken into account that the cores of virtual machines are "weaker" than real physical cores, although they are called the same - "cores". There are no exact official coefficients, but articles on Microsoft technical portals recommend counting 4-6 processor cores in a virtual machine per physical core.

A cache is a scratchpad memory used by the processor to reduce the average access time to computer memory. In fact, it is an integral part of the processor, since it is located on the same chip with it and is part of the functional blocks. Everything is very clear here - the larger the cache, the larger "pieces" of information the processor can process. Typically, the size of the cache depends on the processor models - the more expensive the model, the usually more cache memory there. However, we do not believe that the size of the processor cache drastically affects the performance of the 1C server and DBMS. Rather, it belongs to the field of "fine tuning".

Processor type. Everyone knows that Hardware divided into server and user. Is it possible in some cases to use an inexpensive custom CPU as an alternative to a professional but expensive server CPU? It turns out - it is possible. Consider a table comparing the main parameters of two options for central Intel processors(see table 2).

Custom Intel® Core™ i7-6700T Processor (8M Cache, up to 3.60 GHz) Server Intel® Xeon® Processor E5-2680 v2 (25M Cache, 2.80 GHz)
Cache 8MB 25MB
System bus frequency 8 GT/s DMI3 8 GT/s QPI
Command set 64-bit SSE4.1/4.2, AVX 2.0 64-bit AVX 2.0
Number of Cores 4 10
CPU base clock 2.8GHz 2.8GHz
Max. amount and type of RAM 64 GB non-ECC 768 GB ECC
Estimated cost 354$ 1 280$

Table 2 - Comparison of the main parameters of the home and server CPU from Intel.


As we can see, the server processor has much higher values ​​in the number of cores, cache size, support for more RAM and, of course, at a higher price. However, the server CPU practically does not differ from the user CPU in support of certain processor commands (instructions) and in clock frequency. From this we can conclude that for small organizations it is quite acceptable to use a custom central processor for the 1C: Enterprise server. The only issue is that a user processor cannot be installed in a server socket. motherboard and support server RAM with parity check (ECC), and the use of custom components entails risks to the stability of the entire system as a whole.

Random Access Memory (RAM)

RAM type. The bar of random access memory (RAM) differs in its purpose - for multi-user server systems or for personal devices - PCs, laptops, nettops, thin clients etc. As in the case of the CPU - the main parameters of the RAM modules are approximately equivalent - modern PC RAM practically does not lag behind the server RAM either in the volume of one bar, or in the clock frequency, or in the type of DDR modules. Differences between server RAM and "home" RAM in the use cases and purpose of the hardware platform - this is also where its higher cost is formed:

  • Server RAM has ECC (Error Correction Code) parity - an encoding / decoding technique that allows you to correct errors in information processing directly by the RAM module
  • The server motherboard has many more slots for installing RAM modules than an ordinary PC
  • Server RAM contains registers (buffers) that provide data buffering (partial Registered or full Full Buffered), thereby reducing the load on the memory controller with many simultaneous requests. Buffered "FB-DIMMs" are incompatible with unbuffered ones.
  • Registered memory modules also allow you to increase the scalability of memory - the presence of registers makes it possible to install more modules in one channel.

We can conclude that the use of server RAM modules makes it possible to install large amounts of RAM in one system, and ECC parity control techniques and the use of buffers allow the server operating system to work stably and quickly.

The amount of RAM. One of the key factors for the high performance of the 1C server and DBMS is a sufficient amount of RAM. Of course, the actual RAM requirements depend on many factors - the type of 1C configuration, the number of 1C: Enterprise server processes, the size of the DBMS database, and so on. However, it is possible to derive an approximate dependence of the amount of RAM on the number of users (see Table 3).


RAM requirement for server 1c and DBMS Up to 10 users Up to 20 users Up to 30 users Up to 50 users
Server 1c:Enterprise 4-6 GB 6-8 GB 12-14 GB 18-24 GB
MS SQL server 4-6 GB 8-10 GB 16-18 GB 24-28 GB

Table 3 - Approximate ratio of the number of users of the 1C server and the recommended RAM for the processes of the 1C: Enterprise server and MS SQL server.


Regarding server processes 1C: Enterprise (rphost.exe) - modern 1C platforms do not allow you to manually specify the number of 1C server processes. Instead, the system requires you to set parameters such as the number information bases and the number of users per rphost.exe process, after which it automatically determines the optimal number of 1C:Enterprise server processes. You can also configure the smooth release of RAM by the rphost.exe process if its volume exceeds a predetermined threshold. At the same time, the 1C server creates a new rphost.exe process, which gradually takes over the 1C tasks, allowing you to unload the required 1C process.

You also need to note that the amount of RAM allocated to the SQL service is considered sufficient if the hit of SQL data in the cache is at least 90%. This metric is quite handy because you can't just look at the amount of RAM consumed by the SQL server - the latest releases of SQL have dynamically consumed RAM - the maximum possible amount of RAM is captured and released as RAM is requested by other processes.

RAM frequency. In short, this is the bandwidth of the channels through which data is transmitted to the motherboard, and from there to the processor. It is desirable that this parameter coincides with the allowable frequency of the motherboard or exceeds it, otherwise the RAM transmission channel runs the risk of becoming a bottleneck. Within one type DDR increasing / decreasing the frequency does not drastically affect the performance of the 1C server and refers more to the area of ​​\u200b\u200b"fine tuning".

RAM timings. This is the delay or latency (Latency) of the RAM. This parameter is characterized by the data delay time during the transition between different modules of the RAM chip. Smaller values ​​mean faster performance. However, the impact on the overall performance of the server system, and even more so on the 1C:Enterprise server, is not high. Usually, only gamers and overclockers pay attention to these parameters, for whom every extra drop of performance is the most expensive thing.

Disk subsystem and hard drives HDD

hard drive controllers. The main device for connecting and organizing hard drives in a hardware system is the hard drive controller. It is of two types:

1. Built-in - the controller module is built into the system, the hard drive cage is connected directly to the motherboard. It is considered a more economical solution.

2. External - is a separate printed circuit board(device) that plugs into the motherboard connector. It is considered a more professional solution due to the fact that it has separate chips for conducting and controlling operations with hard HDDs. Recommended for important server systems such as 1C:Enterprise server and DBMS.

There is also a third type - a device for receiving / transmitting block data via iSCSI, FiberChanel, InfiniBand, SAS channels. However, in this version, the disk subsystem is “removed” to a separate data storage device (SHD) connected to the server via an optical or copper cable. In our article, we are analyzing the requirements for a standalone server for 1C, so we will not consider this type.

Types and levels of RAID arrays. It is a data virtualization technology that combines multiple drives into a logical unit for redundancy and performance. Consider the most popular RAID specification levels:

  • RAID 0 (“Striping”) It has no redundancy, and distributes information at once across all disks included in the array in the form of small blocks ("stripes"). This greatly improves performance, but suffers from reliability. We do not recommend using this array type despite the performance gain.
  • RAID 1 (“Mirroring”, “mirror”). It has protection against failure of half of the available hardware (in the general case, one of the two hard drives), provides an acceptable write speed and a gain in read speed due to query parallelization. This type of array will quite “pull” a 1C + DBMS server up to 25-30 users, especially if SAS 15K or SSD disks are used.
  • RAID 10. Mirrored pairs of disks line up in a "chain", so the volume of the resulting volume may exceed the capacity of one hard drive. In our opinion, the most successful type of disk array, because it combines the reliability of RAID1 and the speed of RAID 0. In combination with SAS 15K or SSD drives, it can be used for 1C servers from 40-50 users.
  • RAID 5. Known for its economy. Sacrificing for the sake of redundancy the capacity of only one disk from the array, we get protection against the failure of any of the hard drives in the system. (its variant RAID 6 requires an extra two hard drives to accommodate checksums, but retains data even if two disks fail). This type The array is economical, reliable and has a fairly tangible reading speed. Unfortunately, the bottleneck of this array is the low write speed, which allows it to be comfortably used with 1C server configurations of up to 15-20 users. It is also optimal for applied purposes - storage of file data, document management archives, etc.

Types of hard drive interfaces. According to the type of connection, hard drives are divided:

  • HDD Sata Home. The cheapest option for hard drives, designed for use in home PCs or network media centers. Strongly not recommended to use similar devices in 1c servers due to the low fault tolerance and stability of operation - the components of these disks are simply not designed to work in 24/7 mode and quickly fail.
  • HDD Sata Server. This name usually refers to hard drives with a Sata interface and a spindle speed of 7,200 rpm. The prefix "Server" means that such drives have been tested for performance in server systems and are designed for stable operation in 24/7 mode. Usually used in 1C servers to store large amounts of information that does not require high processing speed. Eg - archival bases 1s, exchange folders, upload files office documents etc.
  • HDD SAS Server. Differences SAS interface(modern analog of SCSI) from the Sata interface a little. Here, the average response time of the disk, and work in a common disk shelf, and work with the HDD controller at higher information exchange rates - up to 6 Gb / s (compared to Sata 3 Gb / s). But the main advantage is the existence of SAS disk models with a spindle speed of 15,000 rpm. It is this design feature allows SAS disks to carry out almost 3 times more IOPS compared to Sata Server HDD. Such SAS disks are small in size and are recommended for use with 1c main databases with a constantly high workload.
  • SSD drives. These drives differ from the previous ones not in the connection interface, but in their design - they are solid-state and have no moving parts, i.e. in essence, they are analogues of "flash drives". Such technologies allow SSDs to produce an “outrageous” number of I / O operations per second (from 10,000 operations on the simplest SSD models). However, this advantage also reverse side- the higher price of SSD drives and the "threshold of their life", which depends on the limit on the number of writes to SSD blocks. However, every year these discs are becoming more affordable and durable. Since the cost of SSD disks increases many times depending on the volume, it would be most reasonable to use them for small, but super-loaded 1c databases that require high access speed, as well as for TempDB temporary databases.

IOPS is the number of I/O operations per second. In fact, IOPS is the number of blocks of information that can be read or written to the media in 1 second of time. That is, in its purest form - this is the key parameter of the speed of information processing hard drive affecting the performance of the 1C server. If we take for comparison a standard block of information 4kb, then we can roughly distinguish the following IOPS indicators (see Table 4).


HDD IOPS Interface
7,200 rpm SATA drives ~75-100 IOPS SATA 3Gb/s
10,000 rpm SATA drives ~125-150 IOPS SATA 3Gb/s
10,000 rpm SAS drives ~140 IOPS SAS
15,000 rpm SAS drives ~175-210 IOPS SAS
SSD drives From 8,000 IOPS SAS or SATA

Table 4 - IOPS indicators on various types of hard drives when working with a 4kb data block.


Of course, in its pure form, IOPS is of little use for calculating the final calculations and requirements for the disk subsystem of the 1C server. After all, the total performance of the disk subsystem consists of the type of RAID array, types of disk and indicators of the speed of its interface, response time (Latency), random access time, the percentage of read and write operations, and many other factors. However given parameter, in our opinion, is a key indicator of the speed of the disk subsystem and at the stages of developing a server architecture, it helps to determine what type of hard disks will generally be most suitable for certain needs. (see RAID calculator)

practice test

What is the relationship between the number of 1C users and the number of iops? Our team conducted a practical test (see Table 5) to measure the load on the disk subsystem with a certain number of 1C sessions. Since the 1C system is a programmable environment and each company can have its own set of business processes in 1C, we needed to be tied to a certain reference configuration for testing. In this capacity, a specialized configuration of TsUP 1C was chosen, developed for testing and debugging. Based on it, our 1C programmers added a number of queries that simulate normal work an ordinary enterprise, with the formation of accounting inquiries, postings, reporting and posting operational documents.


System disk Database disk
Iteration Users IOPS write IOPS read IOPS write IOPS read
Averages
1 12 9,1 0,1 13,1 1,5
2 20 7,9 0,1 21,8 0,4
3 32 5,2 0,006 36,1 5,2
4 40 7,7 0,013 27,52 1,3
5 52 7,7 0,006 32,04 0,94

Table 5 - Results of a practical test on the load on the disk subsystem.


The test results show that the lion's share of the load on the disk subsystem occurs when writing 1C to the database of the DBMS server and to system disk operating system (on which 1C:Enterprise cache server files are located by default).

At the same time, we carried out practical measurements of already operating 1C UPP 8.2 databases during the test period - 5 working days. They show that, on average, a 1C + DBMS server consumes twice as many iops “for writing” than “for reading”. Such a difference between synthetic tests and monitoring statistics of a real 1C server is due to both periodic sampling of information data from the database during the working day, and regular reading of the database during backup or DBMS replication.

Other components of the hard drive, which are worth paying attention to.

  • Physical size (form factor). To date, almost all known drives for personal computers and servers have a size of 3.5 or 2.5 inches. Note that 2.5-inch drives are not produced in large volumes.
  • Random access time- time for which HDD guaranteed to perform a read-write operation on a specific area of ​​the magnetic disk. As a rule, server disks have better results. This is enough important parameter when building an array of disks for the 1C DBMS server.
  • Spindle speed- the number of revolutions of the hard disk spindle per minute. Everything is simple and clear here - the access time and the average transmission speed depend on the speed of rotation of the spindle with magnetic plates data hard disk.
  • Hard disk buffer size- A buffer is a temporary memory designed to smooth out differences in the read / write speed of a hard disk and data transfer through the interface.
  • Reliability- is defined as mean time between failures (MTBF). As a rule, reliability directly depends on the manufacturer, price and environment of use of the hard drive. We consider reliability to be an important hard drive parameter that affects the quality of the 1C server.

The right choice: home or server hardware

The cheapening of hardware components and the active growth of the potential capacities of "home computers" lead to another fatal misconception - small businesses are actively using workstations as a platform for joint work with bases 1C. At the same time, without realizing that in addition to the parameters of the core frequency, the amount of memory and the possibility of using budget SSDs in a regular PC, there are more systemic, deeper and more important requirements for the operation of hardware in a commercial structure (see Table 6).

To solve the issue of organizing a 1C server, we offer rental of 1C cloud servers in Tier III class data centers. The economic feasibility of choosing a server rental can be found in the article.


Options Server Personal Computer
Sufficiency of computing power V V
Guaranteed operability of the system in 24/7 mode V X
Reliability and stability of key hardware components V X
Opportunity remote control power and console (IPMI) V X
Budget cost of the hardware platform X V

Table 6 - Comparison of home and server hardware according to the criteria required for the high-quality operation of the 1C server.

Fault-tolerant work 1C

Of course, one of the important requirements for the server part of 1C is the stability of its operation and resistance to failures. Microsoft and 1C itself have made a lot of efforts in this direction, creating technologies for clustering their services at a fairly serious level (see Table 7).


Fault tolerance of SQL servers Based on the concept of a single shared data warehouse. The built-in SQL Server clustering technology combines two SQL servers into one cluster with a single virtual IP address and a single database. Thus, when the main SQL fails, queries are automatically transferred to the backup.
The second option is the recently appeared AlwaysOn, a technology for automatic regular replication of DBMS databases between the primary and backup SQL servers. At the same time, the duplicate SQL server is physically located on a different storage, which increases the resistance to risks
Failover service server 1C:Enterprise 1C Enterprise servers are combined into an active-active software failover cluster with automatic switching on failure and saving current sessions.

Table 7 - Fault tolerance of SQL and 1C servers.


However, each technology has both pros and cons. In addition to the key advantages, you need to know some features of 1C and SQL clustering () in order not to end up with a deterioration in service performance:

  • SQL clustering uses virtual IP. And this means that the interaction between the 1C:Enterprise server and MS SQL will always take place via the network interface, even if both services are in the same operating system. Which, accordingly, will slow down the work of 1C in comparison with the classic version of the architecture recommended by 1C itself - the use of Shared Memory. In principle, this obstacle can be "bypassed" using, for example, MS SQL Log Shipping technology. However, in this case, switching to a backup SQL server will no longer be automatic, and this option cannot be considered a full-fledged cluster.
  • A SQL cluster requires a large budget. If we are talking about classical clustering of MS SQL service, a single database storage is required, connected to the main and backup SQL servers. Typically, this role is played by expensive storage systems, which increases the budget by an order of magnitude. If we are talking about the newfangled AlwaysOn, then a single database storage is not required, the technology works with local drives primary and backup servers over the network. But you need a version of SQL Server Enterprise, the license for which costs 4 times more than for a regular SQL Server Standard.
  • Number of licenses. Despite the fact that the second SQL server does not process data and is in reserve, licenses will need to be purchased for both servers - both the main and the backup. Particularly painful for the budget are SQL Server Enterprise licenses to implement a distributed cluster of AlwaysOn High Availability Groups.
  • No need to use cheap custom hardware for a service as important as accounting system the entire enterprise. The price in this case directly determines the quality, stability and durability of such a platform.
  • When choosing a server platform, we recommend paying attention to the presence of two power supplies, a remote IPMI card, and the manufacturer's brand. Of course, everyone chooses a solution based on their budget, top brands are sometimes too expensive and not entirely appropriate, but you shouldn’t save on the manufacturer at all, this can lead to uncontrollable force majeure in working with 1C. We personally use Supermicro server platforms in combination with Intel server CPUs.
  • There is an opinion, confirmed by practice, that the performance of 1C depends more on more high frequency CPU work than on the number of cores provided.
  • No need to save on the amount of RAM allocated for the 1C server and SQL service. RAM on this moment is a fairly cheap resource, and its shortage (even by 10-15 percent) will lead to a strong drop in the performance of the 1C system, because a slower swap system will be enabled. Plus, swap will give an additional load on the disk subsystem, which will worsen the situation even more.
  • The EFSOL company offers comprehensive services for the selection of a 1C server, which includes: 1C server design, purchase, configuration and maintenance.
  • Alternative own creation server 1C option is to rent a server for 1C. Cloud technologies allow you to get a reliable fault-tolerant service for comfortable work in 1C at low monthly costs.

System integration. Consulting



Loading...
Top