Each support specialist has experience in receiving abstract complaints from users. Everyone is familiar with the formulations: “she thinks for a very long time,” “I have a red window,” “the system is working somehow wrong,” and also “this hasn’t happened for a long time, and here it is again.”

In such a situation, it is very difficult to immediately figure out where the error lies and what to do first. In this article we will look at what 1C performance depends on, i.e. highly loaded systems created on the basis of 1C:Enterprise, in situations where the symptoms are not fully understood and a specific diagnosis cannot be made.


The main reasons affecting 1C performance

In more than 60% of cases, the reasons for low productivity are:

  • Suboptimal queries and configuration code (26% of cases);
  • Suboptimal indexing of object tables (19% of cases);
  • Non-optimal load on the disk subsystem (16% of cases).

Leading Microsoft developers agree with this.

Thus, to obtain a significant improvement in the performance of the database application, you can optimize the scope of data access, including logical and physical design databases (as far as possible in 1C), as well as by creating the right queries and using optimal indexing. Some database performance problems can be solved by increasing hardware capacity, but not always: incorrect design application solution cannot be compensated by a more powerful server. It is not uncommon that, without understanding the causes of a performance problem, user companies incur significant costs by purchasing new equipment, but the problem remains unresolved.

High-quality diagnostics of 1C performance using the entire range of existing tools is the key to successful problem solving and cost optimization

The first step to identifying and resolving low-performance issues is to develop a comprehensive list of the key problematic activities, including their current speed and expected future speed.

Example:

Incorrect: The program freezes when generating a report. I want it to form faster.

Correct: The “Debt Statement” report is generated in 5 minutes 10 seconds. The expected speed of generating this report is no more than 20 seconds.

After the list of problems has been compiled and digitized, it is necessary to analyze the causes, starting with a search for problematic code, if any (for example, “heavy” requests, long waits on locks, deadlocks, etc.).

Tools for identifying problematic code

  • "1C:Performance Management Center" (module included in tool package“1C: Corporate”, the manufacturer of which is 1C);
  • Cloud services Gileva;
  • Standard tools built into DBMS from leading vendors.

The effectiveness of using these tools is guaranteed by the qualification of the developer “1C: Expert on Technological Issues”, which implies his participation in large-scale implementations of 1C. At the same time, different experts, based on their individual experience, may give preference to one or another tool/method.

In parallel with the use of one of the presented tools, they also apply regular means monitoring equipment load (“Performance monitors” counters).

Based on the measurements obtained, the class of cause is identified:

  • The problem is in the code;
  • And/or the problem is in the hardware;
  • The problem is with other resource-intensive programs used on production servers.

Load testing 1C - a method for assessing server equipment

As already mentioned, among the factors that can affect the performance of 1C, both positively and negatively, server hardware and its configuration occupy an important place. Let's consider options for measurements, load assessment and testing of system performance under the following conditions:

  • Server 1C is available and is located:
  • Together with the DBMS;
  • On a separate server.

To assess the compliance of the parameters of the existing server equipment with the requirements of the system, it is necessary to collect data on the load on the hardware, including the processor, i.e. 1C load testing. For this purpose, “Performance Monitor” is used - a tool that allows you to measure equipment on the operating circuit and read performance counters.

Below is a basic set of counters that need to be configured to monitor hardware performance in Windows. Collection is made from all servers where 1C servers are installed.

If the processor load percentage counter for the “Processor” view has a high value, you should identify processes that can be stopped without affecting the operation of the server, and also be transferred to other servers.

The “Process” view will allow you to configure monitoring for each individual process, as well as determine which processes are taking up the most CPU time. If only 1C server is installed on the server, then in order to understand what load it puts on the hardware, you need to configure the collection of the following counters:

\Process("1cv8*")\% Processor Time
\Process("ragent*")\% Processor Time
\Process("ragent*")\Private Bytes
\Process("ragent*")\Virtual Bytes
\Process("rmngr*")\% Processor Time
\Process("rmngr*")\Private Bytes
\Process("rmngr*")\Virtual Bytes
\Process("rphost*")\% Processor Time
\Process("rphost*")\Private Bytes
\Process("rphost*")\Virtual Bytes
\Process("1cv8*")\Private Bytes
\Process("1cv8*")\Virtual Bytes

If the current system is in an unsatisfactory condition, then based on the collected measurements, using a linear relationship, the equipment parameters for installing the target system should be calculated.

If the purchase of server equipment is only planned, its parameters can be calculated by emulating the operation of the planned system, but on a smaller scale, using existing equipment. For this purpose, “1C: Test Center” is used, which is included in the 1C Corporate Toolkit. Based on the measurements obtained, using calculation methods, the parameters of the planned system and, accordingly, the requirements for equipment are determined. This test can be used repeatedly for different measurements, having previously supplemented and expanded the functionality. This technique has high accuracy and ease of calculation.

Computers (conventional name) participating in the tests - description (disks are indicated only for the database):

(clarification between servers 1 Gbit network)

1) IT33- desktop on Core i5 4 cores 2.8 GHz, DDR3 3 GB, one HDD 7200 r/s.

2) REAL- THE MOST POWERFUL as I thought)) 8 Xeon cores at 3 GHz, DDR2 48 GB, RAID10 on SSD

3) REAL2- 8 Xeon cores at 2 GHz, DDR2 22 GB,RAID10 on hard drives SAS 10,000 rps

Tests were carried out in configuration 1c from Gilev:

"SQL Server" ---> "1C Server" ---> "Evaluation" + "Name of client computer (if not specified, then it is the same one in the list)"

>1)REAL2--->REAL2--->25.64(TCP--SQL)
>2)REAL2--->REAL2--->26.32(SQL--Shared Memory)

>3)REAL2--->REAL2--->25.64(SQL--Shared Memory) + IT33(client) - from client to Servers network=10 Mbit

>4 )REAL2--->REAL2--->24.27(SQL--Shared Memory) + REAL(client) - hmm.. strange 1 Gbit network... why are there fewer parrots..
>5)REAL2--->REAL2--->37.59(File)

** **** **************************
>1)REAL--->REAL--->8.73(TCP--SQL)

>2)REAL---> Real2--->11.99(TCP--SQL) --- this is already starting to give me some thoughts))

>3)REAL--->REAL--->17.48 (File)

** **** ******************************

>1)IT33--->IT33--->26.88(TCP--SQL)
>2)IT33--->IT33--->34.72(SQL--Shared Memory)
>3)IT33--->IT33--->59.52(File)

Results:

I looked at the test results... twisted this way and that)) and then it dawned on me (I took measurements of the speed of the RAM),

what about the speed of 1s 8.x (I note that the Test Results are based on SINGLE-USER mode, but also for the client-server version with multi-user work - I think they will also have a considerable share of influence) -

So 1C speed is affected by: CPU bus frequency + RAM memory frequency

----> what affects WRITE and READ speeds in RAM. Which is the basis for the performance of 1s 8.x.

Computers that shared prizes in terms of operating speed 1s))

1)IT33--->IT33--->59.52(File)

RAM DDR 3 (Read 11089 MB/s, Write 7047 MB/s) ------ as I expected the difference will be significant with servers

2)REAL2--->REAL2--->37.59(File)
- RAM DDR2 (Read=3474, Write=2068)

3)REAL--->REAL--->17.48(File)
- RAM DDR2 (Read=1737 MB/s, Write=1042 MB/s) - as it turned out, the speed is lower than on Real2 - exactly 2 times,

Due to the enabled Virtual Cores (Hyper-trading), we will most likely disable it.

CONCLUSIONS:

The highest operating speed of 1s 8.x is achieved:

I) for the File option (I personally am not interested)

A) launching the Client (any) on a computer with high speed of working with RAM. (for example Terminal Server

DB there).

II) for Client-Server option

1) Thick clients 1C on the "Terminal Server" - with +

2) Thin clients 1C- there is no particular difference where... but it is advisable to configure it via "HTTP://".
3a) "SQL Server" + "1C Enterprise Server"(in Shared Memory mode) - on one car with Highest speed Writing/Reading RAM + Highest frequency GHz CPU cores disks

Clarifications:

- supportShared Memory- appeared on the engine starting from 8.2.17 (ATTENTION in the configuration - compatibility mode with previous versions engine), on previous engines Naimed Pipes will be used - also showing good results))

- RAID on SSD drive X- it is advisable to use RAID10 - for fault tolerance, while taking into account the Write SCALE:

example RAID10 (4 pcs Write penalty = 2), Write speed = 4/2 = 2 disks, No read penalty.

You can also further increase the reliability and stability of the SSD speed - using not the entire disk capacity.

example (raising the reliability of a Desktop SSD to the level of a Server SSD):

If, for example, SSD Intel 520 series 120GB, and allocate 81 GB, and leave the rest of the space unallocated -

then about 32% of the SSD space will be allocated for over provisioning in addition to the already existing hidden 8%. In total we get about 40%

The difference between the server SSD Intel 710 series and the desktop SSD Intel 320 series is precisely the difference in over provisioning: more than 40% for the Intel 710 and 8% for the Intel 320.

If there are a lot of 1C clients from 100 onwards:

1) Based on current technologies Ethernet networks -It is NOT advisable to delete "SQL" "Server 1C".

for example due to latency (delays) in the Gigabit network Ethernet - real speed exchange with SQL = 30 Megabytes/s - which is not enough even for intensive work with the Database of 1 user.

2) Because in fact, "Server 1C" = "Object DBMS" (multidimensional objects), and "SQL" = "Relational DBMS"(flat-tabular data storage)

=> in the SQL database, a FLAT projection of 1C Objects is stored and 1C Server collects an Object from this projection, then works with this Object and finally, upon completion of the work, again lays it out in a flat view and stores it in SQL.

As a result, between “SQL” and “1C Server”, you have to give up splitting it into two physical servers. But you can use the full implementation of NUMA nodes. ( This must be supported by the OS and the processors themselves).


3b) We separate SQL servers and 1c servers separately: On current Ethernet technologies - for example Gigabit - NOT Practical
-SQL to server with Highest speed Writing/Reading RAM + Highest frequency GHz CPU cores
-Some PHYSICAL servers in Cluster 1c c Highest speed Writing/Reading RAM + Highest frequency GHz CPU cores+ it is advisable to use RAID on SSD- disks

IGOR CHUFAROV, Head of Integrated Department automated systems JSC "Radiozavod" [email protected]

40 points in the Gilev test –
myth or reality?

Heated discussions continue around the Gilev test, including those based on conflicting results. I will share my experience using this tool.

Origins of ambiguity

When faced with the Gilev test for the first time, many specialists are surprised by the uncharacteristic results obtained with its help. For example, desktop hardware can show better results than an expensive, powerful server. The file version receives a higher rating than SQL. And if with the second incident everything is more or less clear, this is explained both in the documentation for the test and in numerous discussions on the forums, then from the relatively low results on an expensive server equipment No one has yet drawn any clear conclusions.

Before informing about the results obtained, it is worth mentioning a few words about the Gilev test itself, telling what it is.

The name “Gilev Test” refers to the TPC-1C load test, available for free download at .

Known results

The source provides interesting results of comparing a server based on 2*Intel Xeon E5620 2.4 Ghz with 48 GB random access memory And personal computer on Intel Core i5 3.0 Ghz with 16 GB of RAM. Without additional settings and out-of-the-box tricks, the workstation “broke” the server in Gilev’s test, showing 155% higher performance.

The server scored approximately 17 points, while the desktop scored more than 40. As a result of experiments (most of which involved cutting down desktop resources to determine how much this would degrade the test result) and server settings, the authors of the article managed to achieve 25.6 points.

The result, frankly speaking, is far from 40 on the usual system unit. So, is it better to deploy the 1C server on budget hardware purchased at the nearest kiosk? Of course not.

Discussion at Infostart Event 2016

A few days before my trip to the Infostart Event 2016 conference in St. Petersburg, an interesting two-hour video about the operation of the 1C:Enterprise system in virtualized environments, equipment selection and performance issues appeared on the website courses-po-1s.rf.

At the Infostart Event 2016 conference, the author of this webinar, Andrey Burmistrov, was expected to speak - a 1C expert on technological issues of large implementations, who worked both in the 1C company and on many large implementations in our country, a mentor to more than 2000 specialists in the course “1C Performance Optimization” "and preparation for 1C: Expert.

In the wake of interest in the topic, I talked with Andrey both virtually and subsequently at the conference itself. One of the questions that I asked him during the HighLoad round table concerned the possibility of releasing a webinar with reference testing of various server hardware options - with SSD, with regular hard drive, in various equipment configurations. The answer sounded something like this: “Thank you, that’s an interesting idea. Maybe we'll do it. Just give us an Intel P3700, P3600 and we'll be happy to test it. It’s not so easy to get an SSD somewhere for testing for a week.”

So, it turned out that with their own eyes, almost none of my interlocutors saw more than 30 points in SQL mode, and those who saw it noted that it was not on server equipment.

Vicious circle? A serious question has arisen: “40 points in the Gilev test on server hardware in SQL mode - myth or reality?”

Read the entire article in the magazine " System Administrator", No. 5 for 2017 on pages 10-15.

PDF version given number can be purchased in our

The main purpose of writing this article is to avoid repeating obvious nuances for those administrators (and programmers) who have not yet gained experience with 1C.

The secondary goal is that if I have any shortcomings, Infostart will be the quickest to point this out to me.

V. Gilev’s test has already become a kind of “de facto” standard. The author on his website gave quite clear recommendations, but I will simply present some results and comment on the most likely errors. Naturally, the test results on your equipment may differ; this is just a guide for what should be and what you can strive for. I would like to note right away that changes must be made step by step, and after each step, check what result it gave.

There are similar articles on Infostart, I will put links to them in the relevant sections (if I miss something, please suggest me in the comments, I will add it). So, let’s assume your 1C is slow. How to diagnose the problem, and how to understand who is to blame, the administrator or the programmer?

Initial data:

Tested computer, main guinea pig: HP DL180G6, equipped with 2*Xeon 5650, 32 Gb, Intel 362i, Win 2008 r2. For comparison, the Core i3-2100 shows comparable results in the single-threaded test. The equipment I specifically took was not the newest, but modern equipment the results are noticeably better.

For testing separate 1C and SQL servers, SQL server: IBM System 3650 x4, 2*Xeon E5-2630, 32 Gb, Intel 350, Win 2008 r2.

To test a 10 Gbit network, Intel 520-DA2 adapters were used.

File version. (the database is on the server in a shared folder, clients connect via the network, CIFS/SMB protocol). Algorithm step by step:

0. Add to file server Gilev's test database into the same folder as the main databases. We connect from the client computer and run the test. We remember the result.

It is understood that even for old computers 10 years ago (Pentium on 775 socket ) the time from clicking on the 1C:Enterprise shortcut to the appearance of the database window should pass less than a minute. ( Celeron = slow).

If you have a computer worse than a Pentium 775 socket with 1 GB of RAM, then I sympathize with you, and it will be difficult for you to achieve comfortable work on 1C 8.2 in the file version. Think about either an upgrade (it's high time) or switching to terminal (or web, in the case of thin clients and controlled forms) server.

If the computer is no worse, then you can kick the administrator. At a minimum, check the operation of the network, antivirus and HASP protection driver.

If Gilev’s test at this stage showed 30 “parrots” or higher, but the 1C working base still works slowly, the questions should be directed to the programmer.

1. As a guide to how much a client computer can “squeeze”, we check the operation of only this computer, without a network. We put the test base on local computer(on a very fast disk). If the client computer does not have a normal SSD, then a ramdisk is created. For now, the simplest and free one is Ramdisk enterprise.

To test version 8.2, a 256 MB ramdisk is enough, and! The most important. After rebooting the computer, with the ramdisk running, there should be 100-200 MB free on it. Accordingly, without a ramdisk, for normal operation free memory should be 300-400 MB.

To test version 8.3, a 256 MB ramdisk is enough, but you need more free RAM.

When testing, you need to look at the processor load. In a case close to ideal (ramdisk), local file 1c loads 1 processor core when running. Accordingly, if during testing your processor core is not fully loaded, look for weak points. A little emotional, but generally correct, the influence of the processor on the operation of 1C is described. Just for reference, even on modern Core i3s high frequency the numbers 70-80 are quite realistic.

The most common errors at this stage.

a) Incorrectly configured antivirus. There are many antiviruses, the settings for each are different, I will only say that with proper configuration, neither the web nor Kaspersky 1C interferes. With the default settings, approximately 3-5 parrots (10-15%) can be taken away.

b) Performance mode. For some reason, few people pay attention to this, but the effect is the most significant. If you need speed, then you must do this, both on client and server computers. ( Good description at Gilev's. The only caveat is that on some motherboards If you turn off Intel SpeedStep, you cannot turn on TurboBoost).

In short, while 1C is running, there is a lot of waiting for a response from other devices (disk, network, etc.). While waiting for a response, if the performance mode is enabled, the processor lowers its frequency. A response comes from the device, 1C (the processor) needs to work, but the first clock cycles are at a reduced frequency, then the frequency increases - and 1C again waits for a response from the device. And so - many hundreds of times per second.

You can (and preferably) enable performance mode in two places:

Via BIOS. Disable modes C1, C1E, Intel C-state (C2, C3, C4). In different bios they are called differently, but the meaning is the same. It takes a long time to search, a reboot is required, but if you do it once, then you can forget it. If you do everything correctly in the BIOS, the speed will increase. On some motherboards, you can configure the BIOS settings so that Windows performance mode will not play a role. (Examples BIOS settings at Gilev). These settings mainly concern server processors or “advanced” BIOSes, if you haven’t found this and you DO NOT have Xeon, that’s okay.

Control panel - Power supply - High performance. Minus - if the computer has not been serviced for a long time, it will make a louder fan noise, heat up more and consume more energy. This is a performance fee.

How to check that the mode is enabled. Launch the task manager - performance - resource monitor - CPU. We wait until the processor is busy with nothing.

These are the default settings.

In BIOS C-state included,

balanced power consumption mode


In BIOS C-state included, high performance mode

For Pentium and Core you can stop there,

You can still squeeze a little "parrots" out of Xeon


In BIOS C-state turned off, high performance mode.

If you don't use Turbo boost, this is what it should look like

server tuned for performance


And now the numbers. Let me remind you: Intel Xeon 5650, ramdisk. In the first case, the test shows 23.26, in the last - 49.5. The difference is almost twofold. The numbers may vary, but the ratio remains essentially the same for Intel Core.

Dear administrators, you can criticize 1C as much as you like, but if end users need speed, you need to enable high performance mode.

c) Turbo Boost. First you need to understand whether your processor supports this function, for example. If it supports, then you can still quite legally get some performance. (I don’t want to touch on the issues of frequency overclocking, especially servers, do it at your own peril and risk. But I agree that increasing Bus speed from 133 to 166 gives a very noticeable increase in both speed and heat dissipation)

How to enable turbo boost written, for example, But! For 1C there are some nuances (not the most obvious). The difficulty is that the maximum effect of turbo boost occurs when C-state is turned on. And we get something like this:

Please note that the multiplier is the maximum, the Core speed is beautiful, and the performance is high. But what will happen as a result with 1s?

Factor

Core speed (frequency), GHz

CPU-Z Single Thread

Gilev Ramdisk test

file version

Gilev Ramdisk test

client-server

Without Turbo boost

C-state off, Turbo boost

53.19

40,32

C-state on, Turbo boost

1080

53,13

23,04

But in the end it turns out that according to CPU performance tests the version with a multiplier of 23 is ahead, according to Gilev’s tests in the file version the performance with a multiplier of 22 and 23 is the same, but in the client-server version - the version with a multiplier of 23 is terrible terrible terrible (even if C -state set to level 7, it is still slower than with C-state turned off). Therefore, the recommendation is to check both options for yourself and choose the best one. In any case, the difference between 49.5 and 53 parrots is quite significant, especially without much effort.

Conclusion - turbo boost must be turned on. Let me remind you that it is not enough to enable the Turbo boost item in the BIOS, you also need to look at other settings (BIOS: QPI L0s, L1 - disable, demand scrubbing - disable, Intel SpeedStep - enable, Turbo boost - enable. Control Panel - Power Options - High Performance) . And I would still (even for the file version) choose the option where c-state is turned off, even though the multiplier is smaller. It will turn out something like this...

A rather controversial point is the memory frequency. For example, memory frequency is shown to have a very strong influence. My tests did not reveal such a dependence. I will not compare DDR 2/3/4, I will show the results of changing the frequency within the same line. The memory is the same, but in the BIOS we are forced to set lower frequencies.




And test results. 1C 8.2.19.83, for the file version local ramdisk, for client-server 1C and SQL on one computer, Shared memory. Turbo boost is disabled in both versions. 8.3 shows comparable results.

The difference is within the measurement error. I specifically pulled out screenshots of CPU-Z to show that with a change in frequency, other parameters also change, the same CAS Latency and RAS to CAS Delay, which neutralizes the change in frequency. The difference will be when the memory modules are physically changed, from slower to faster, but even there the numbers are not particularly significant.

2. When we have sorted out the processor and memory of the client computer, we move on to the next very important place - the network. Many volumes of books have been written about network tuning, there are articles on Infostart (, and others), but here I will not focus on this topic. Before starting testing 1C, please make sure that iperf between two computers shows the entire bandwidth (for 1 Gbit cards - well, at least 850 Mbit, or better yet 950-980), that Gilev’s advice has been followed. Then - the simplest test of work will be, oddly enough, copying one large file(5-10 gigabytes) over the network. An indirect sign of normal operation on a 1 Gbit network will be the average copying speed of 100 MB/sec, good operation - 120 MB/sec. I would like to draw your attention to the fact that the weak point (including) may be the processor load. SMB The protocol on Linux is quite poorly parallelized, and during operation it can quite easily “eat up” one processor core and not consume any more.

And further. With settings according to default windows client works best with windows server (or even windows working station) and the SMB/CIFS protocol, the linux client (debian, ubuntu did not look at the others) works better with linux and NFS (it also works with SMB, but the parrots are higher on NFS). The fact that during linear copying a Windows Linux server to NFS is copied into one stream faster does not mean anything. Debian tuning for 1C is a topic for a separate article, I’m not ready for it yet, although I can say that in the file version I got even slightly better performance than the Win version on the same equipment, but with postgres with over 50 users I still have everything very bad.

The most important , which “burned” administrators know, but beginners do not take into account. There are many ways to set the path to the 1c database. You can do \\server\share, you can do \\192.168.0.1\share, you can net use z: \\192.168.0.1\share (and in some cases this method will also work, but not always) and then specify the Z drive. It seems that all these paths point to the same place, but for 1C there is only one way that provides normal performance quite reliably. So, this is what you need to do correctly:

IN command line(or in policies, or as you prefer) - do net use DriveLetter: \\server\share. Example: net use m: \\server\bases. I specifically emphasize NOT the IP address, namely Name server. If the server name is not visible, add it to dns on the server, or locally in hosts file. But the address must be by name. Accordingly, on the way to the database, access this disk (see picture).

And now I will show with numbers why this is the advice. Initial data: Intel cards X520-DA2, Intel 362, Intel 350, Realtek 8169. OS Win 2008 R2, Win 7, Debian 8. Latest drivers, updates applied. Before testing, I made sure that Iperf gives the full bandwidth (except for 10 Gbit cards, it only managed to squeeze out 7.2 Gbit, I’ll see why later, test server not configured properly yet). The disks are different, but everywhere there is an SSD (I specially inserted a single disk for testing, it is not loaded with anything else) or a raid from an SSD. Speed ​​100 Mbit obtained by limiting settings Intel adapter 362. No difference was found between 1 Gbit copper Intel 350 and 1 Gbit optics Intel X520-DA2 (obtained by limiting the speed of the adapter). Maximum performance, turbo boost is turned off (just for comparability of results, turbo boost for good results adds a little less than 10%, for bad results it may not have any effect at all). Versions 1C 8.2.19.86, 8.3.6.2076. I don’t give all the numbers, but only the most interesting ones, so that you have something to compare with.

Win 2008 - Win 2008

contact by ip address

Win 2008 - Win 2008

Calling by name

Win 2008 - Win 2008

Contact by IP address

Win 2008 - Win 2008

Calling by name

Win 2008 - Win 7

Calling by name

Win 2008 - Debian

Calling by name

Win 2008 - Win 2008

Contact by IP address

Win 2008 - Win 2008

Calling by name

11,20 26,18 15,20 43,86 40,65 37,04 16,23 44,64
1C 8.2 11,29 26,18 15,29 43,10 40,65 36,76 15,11 44,10
8.2.19.83 12,15 25,77 15,15 43,10 14,97 42,74
6,13 34,25 14,98 43,10 39,37 37,59 15,53 42,74
1C 8.3 6,61 33,33 15,58 43,86 40,00 37,88 16,23 42,74
8.3.6.2076 33,78 15,53 43,48 39,37 37,59 42,74

Conclusions (from the table and from personal experience. Applies only to the file version):

Over the network, you can get quite normal numbers for work if this network is properly configured and the path is entered correctly in 1C. Even the first Core i3 can easily produce 40+ parrots, which is quite good, and these are not only parrots, in real work the difference is also noticeable. But! The limitation when working with several (more than 10) users will no longer be the network, here 1 Gbit is still enough, but blocking during multi-user work (Gilev).

The 1C 8.3 platform is many times more demanding in terms of proper network configuration. Basic settings- see Gilev, but keep in mind that everything can influence. I saw an acceleration from uninstalling (and not just turning off) the antivirus, from removing protocols like FCoE, from changing drivers to an older, but Microsoft certified version (especially for cheap cards like ASUS and DLC), from removing the second network card from the server . There are a lot of options, set up your network carefully. There may well be a situation where platform 8.2 gives acceptable numbers, and 8.3 - two or even more times less. Try playing with platform versions 8.3, sometimes you get a very big effect.

1C 8.3.6.2076 (maybe later, I haven’t looked for the exact version yet) is still easier to configure over the network than 8.3.7.2008. I was able to achieve normal operation over the network from 8.3.7.2008 (in comparable parrots) only a few times; I could not repeat it for a more general case. I didn’t understand much, but judging by the foot wraps from Process Explorer, the recording there is not as good as in 8.3.6.

Despite the fact that when working on a 100 Mbit network, its load schedule is small (we can say that the network is free), the operating speed is still much less than on 1 Gbit. The reason is network latency.

All other things being equal (a well-functioning network) for 1C 8.2 the Intel-Realtek connection is 10% slower than Intel-Intel. But realtek-realtek can generally give sharp subsidence out of the blue. Therefore, if you have money, it’s better to keep Intel network cards everywhere; if you don’t have money, then install Intel only on the server (your CO). And there are many times more instructions for tuning Intel network cards.

Default antivirus settings (using drweb version 10 as an example) take up about 8-10% of parrots. If you configure it as it should (allow the 1cv8 process to do everything, although it is not safe), the speed is the same as without an antivirus.

Do NOT read Linux gurus. A server with samba is great and free, but if you install Win XP or Win7 (or even better - server OS) on the server, then the file version of 1c will work faster. Yes, samba and the protocol stack and network settings and much, much more can be well tuned in debian/ubuntu, but this is recommended for specialists. There is no point in installing Linux with default settings and then saying that it is slow.

It's quite a good idea to check the operation of disks connected via net use using fio . At least it will be clear whether these are problems with the 1C platform, or with the network/disk.

For the single-user version, I can’t think of tests (or a situation) where the difference between 1 Gbit and 10 Gbit would be visible. The only thing where 10Gbit for the file version gave better results is connecting disks via iSCSI, but this is a topic for a separate article. Still, I think that for the file version 1 Gbit cards are enough.

I don’t understand why, with a 100 Mbit network, 8.3 works noticeably faster than 8.2, but it was a fact. All other equipment, all other settings are absolutely the same, it’s just that in one case 8.2 is tested, and in the other - 8.3.

Non-tuned NFS win-win or win-lin gives 6 parrots, I did not include them in the table. After tuning I got 25, but it was unstable (the difference in measurements was more than 2 units). I can’t give any recommendations yet using windows and NFS protocol.

After all the settings and checks, we run the test again from the client computer and rejoice at the improved result (if it works). If the result has improved, there are more than 30 parrots (and especially more than 40), fewer than 10 users are working at the same time, and the working database is still slow - almost certainly a problem with the programmer (or you have already reached the peak capabilities of the file version).

Terminal server. (the database is on the server, clients connect via the network, RDP protocol). Algorithm step by step:

0. Add Gilev’s test database to the server in the same folder as the main databases. We connect from the same server and run the test. We remember the result.

1. In the same way as in the file version, we set up the work. In the case of a terminal server, the processor generally plays the main role (it is assumed that there are no obvious weak points, such as lack of memory or a huge amount of unnecessary software).

2. Setting up network cards in the case of a terminal server has virtually no effect on the operation of 1c. To ensure “special” comfort, if your server produces more than 50 parrots, you can play with new versions RDP protocol, simply for user comfort, faster response and scrolling.

3. When active work a large number of users (and here you can already try connecting 30 people to one database, if you try) it is very advisable to install an SSD drive. For some reason, it is believed that the disk does not particularly affect the operation of 1C, but all tests are carried out with the controller cache enabled for writing, which is incorrect. The test base is small, it fits quite well in the cache, hence the high numbers. On real (large) databases everything will be completely different, so the cache is disabled for tests.

For example, I checked the operation of the Gilev test with different disk options. I installed the discs from what was at hand, just to show the tendency. The difference between 8.3.6.2076 and 8.3.7.2008 is small (in the Ramdisk Turbo boost version 8.3.6 produces 56.18 and 8.3.7.2008 produces 55.56, in other tests the difference is even smaller). Power consumption - maximum performance, turbo boost disabled (unless otherwise stated).

Raid 10 4x SATA 7200

ATA ST31500341AS

Raid 10 4x SAS 10k

Raid 10 4x SAS 15k

Single SSD

Ramdisk

Cache enabled

RAID controller

21,74 28,09 32,47 49,02 50,51 53,76 49,02
1C 8.2 21,65 28,57 32,05 48,54 49,02 53,19
8.2.19.83 21,65 28,41 31,45 48,54 49,50 53,19
33,33 42,74 45,05 51,55 52,08 55,56 51,55
1C 8.3 33,46 42,02 45,05 51,02 52,08 54,95
8.3.7.2008 35,46 43,01 44,64 51,55 52,08 56,18

The enabled RAID controller cache eliminates all the differences between the disks; the numbers are the same for both sat and cas. Testing with it on a small amount of data is useless and is not indicative of any kind.

For platform 8.2, the difference in performance between SATA and SSD options is more than double. This is not a typo. If you look at the performance monitor during the test on SATA drives. then you can clearly see “Active disk operating time (in%)” 80-95. Yes, if you enable the cache of the disks themselves for recording, the speed will increase to 35, if you enable the cache of the raid controller - up to 49 (regardless of which disks are tested in this moment). But these are synthetic cache parrots; in real work, with large databases, there will never be a 100% write cache hit ratio.

The speed of even cheap SSDs (I tested on Agility 3) is quite enough to run the file version. The recording resource is another matter, you need to look at it in each specific case, it is clear that the Intel 3700 will have it an order of magnitude higher, but the price is corresponding. And yes, I understand that when testing an SSD disk, I also test the cache of this disk to a greater extent, the real results will be less.

The most correct (from my point of view) solution would be to allocate 2 SSD disks in a mirrored raid for a file database (or several file databases), and don't put anything else there. Yes, with a mirror, SSDs wear out equally, and this is a minus, but at least the controller electronics are somehow protected from errors.

The main advantages of SSD drives for the file version will appear when there are many databases, each with several users. If there are 1-2 databases, and there are about 10 users, then SAS disks will be enough. (but in any case, look at loading these disks, at least through perfmon).

The main advantages of a terminal server are that it can have very weak clients, and the network settings affect the terminal server much less (again, your K.O.).

Conclusions: if you run the Gilev test on a terminal server (from the same disk where the working databases are located) and at those moments when the working database slows down, and the Gilev test shows a good result (above 30), then the slow operation of the main working database is to blame most likely a programmer.

If Gilev’s test shows small numbers, and you have a high-clock processor and fast disks, then the administrator needs to take at least perfmon, recording all the results somewhere, and watch, observe, and draw conclusions. There will be no definitive advice.

Client-server option.

Tests were carried out only on 8.2, because on 8.3 everything depends quite seriously on the version.

For testing, I chose different server options and networks between them to show the main trends.

SQL: Xeon E5-2630

SQL: Xeon E5-2630

Fiber channel - SSD

SQL: Xeon E5-2630

Fiber channel - SAS

SQL: Xeon E5-2630

Local SSD

SQL: Xeon E5-2630

Fiber channel - SSD

SQL: Xeon E5-2630

Local SSD

1C: Xeon 5650 =

1C: Xeon 5650 =

Shared memory

1C: Xeon 5650 =

1C: Xeon 5650 =

1C: Xeon 5650 =

16,78 18,23 16,84 28,57 27,78 32,05 34,72 36,50 23,26 40,65 39.37
1C 8.2 17,12 17,06 14,53 29,41 28,41 31,45 34,97 36,23 23,81 40,32 39.06
16,72 16,89 13,44 29,76 28,57 32,05 34,97 36,23 23,26 40,32 39.06

It seems that I have considered all the interesting options, if there is anything else you are interested in, write in the comments, I will try to do it.

SAS on storage systems is slower than local SSDs, even though the storage systems have larger cache sizes. SSDs, both local and on storage systems, work at comparable speeds for Gilev’s test. I don’t know any standard multi-threaded test (not just recording, but all equipment) except for the 1C load test from the MCC.

Changing the 1C server from 5520 to 5650 almost doubled the performance. Yes, the server configurations do not completely match, but it shows a trend (no surprise).

Increasing the frequency on the SQL server certainly gives an effect, but not the same as on the 1C server; MS SQL server is excellent (if you ask it) to use multi-cores and free memory.

Changing the network between 1C and SQL from 1 Gbit to 10 Gbit gives approximately 10% parrots. I expected more.

Enabling Shared memory still gives an effect, although not 15%, as described. Be sure to do it, fortunately it’s quick and easy. If during installation someone gave the SQL server a named instance, then for 1C to work, the server name must be specified not by FQDN (tcp/ip will work), not through localhost or just ServerName, but through ServerName\InstanceName, for example zz-test\zztest. (Otherwise there will be a DBMS error: Microsoft SQL Server Native Client 10.0: Shared Memory Provider: The shared memory library used to establish a connection to SQL Server 2000 was not found. HRESULT=80004005, HRESULT=80004005, HRESULT=80004005, SQLSrvr: SQLSTATE=08001, state=1, Severity=10, native=126, line=0).

For less than 100 users, the only point in splitting it into two separate servers is a Win 2008 Std (and older) license, which only supports 32GB of RAM. In all other cases, 1C and SQL definitely need to be installed on one server and given more (at least 64 GB) memory. Giving MS SQL less than 24-28 GB of RAM is unjustified greed (if you think that you have enough memory for it and everything works fine, maybe the file version of 1C would be enough for you?)

How much worse does the combination of 1C and SQL work in virtual machine- the topic of a separate article (hint - noticeably worse). Even in Hyper-V everything is not so clear...

Balanced performance mode is bad. The results are quite consistent with the file version.

Many sources say that debugging mode (ragent.exe -debug) causes a significant decrease in performance. Well, it reduces, yes, but I wouldn’t call 2-3% a significant effect.

Good day, dear ones.
This note is a hint for me and others.
This information will be useful for beginners to create and optimize a 1C database on a SQL server

When you have no experience working with server part 1C, then when such a desire and/or need appears, quite a few nuances and non-obviousness appear.
It's sad that even such a simple quest as choosing a server for 1C does not guarantee success, and you may encounter extremely slow performance.
At the stage of finding out what is wrong, you may need to understand in what sequence and what to do.
Begin. Don't forget to backup your data.
My server is based on Windows Server 2012 R2 standard, and SQL 2012.
You may have other inboxes, it doesn't matter (right now).
We took the Comprehensive delivery of the USP (it includes 10 client licenses, a server (32 bit only), and configurations for ZUP, UT, Accounting, and the USP itself. It is noteworthy that the franchisees wanted to include individual supplies in their entirety, and better yet CORP. The analysis showed that This is unnecessary, and it’s cheaper to take a complex configuration.
When selecting hardware, it is important for you to remember that in the client-server version, 1C requires that the processor frequency be maximum, as well as the memory frequency (remember this when choosing hardware). (that is, it is better to disable Hyper trading and all sorts of C1-2-3 state in the BIOS).
You also need to “physically” distribute the database file (MDF) and log file (LDF) onto separate hard drives, not logical drives.
And if for the file version it would be optimal to recommend an SSD, then here, not everything is so obvious.
Go to the Gilev forum to get acquainted with the “mysteries” that arise in an attempt to improve 1C performance. A lot of interesting.
In my case, fellow admins allocated me a blade on a blade server, with 2 AMD Quad-Core Opteron(tm) Processor 2354 physical processors, with 16 GB (667 MHz). System on 2 disks in a mirror. The disks for the base were allocated using Fiber chanel, on HP EVA.
Now I'm looking for another configuration, but for now I have to live with this.
And at the implementation stage, while an analysis was underway on how to transfer data from another ERP system, the 1C programmer drew my attention to the slow work and long processing of documents. That is, the system is not yet in use, but it is already slowing down and dying, and re-running is 3 times slower than a person on a laptop, and people will also have to work with this (3-4 main ones, and 25-40 timekeepers).
Not in order.
He recommended using Gilev’s test (his website is easy to Google), which full services support, and information. Which I took advantage of.
The test showed that everything is bad, and the recommended number of users is missing.
Having looked more closely, I realized that the database and log were at least different drives- but logical.
And to correct this, I took screenshots and this reminder for the future for myself and others:

Creating a database in SQL server management studio We distribute the database and log onto different physical disks.


For recovery method, select Simple


We create new base through the 1C client on the computer


Select adding information base. In our case, without configuration.


Set the name. Anything here. Better than on the server.


Fill in the data. When I pointed to the server, the server name was 127.0.0.1 - otherwise it didn’t work.


we don't change anything here


We load our information base (pre-existing or new, for example a test)


Actually choosing a base. I'm downloading Gilev's test for platform 8.3


Confirm

Confirm



Test result. It's still bad, but the recommended number of users is more than required, which is good.

P.S. Don't forget to make a backup.
P.P.S when running the Gilev test in the test database, which is located in the same storage locations as any combat one - keep in mind that at least the Log file will tend to take up all the free space, which can lead to the combat database stopping and failing the test!!!
P.P.P.S also remember that SQL when working uses the TEMP database, located in the same place where SQL is installed (by default in C).
Therefore, it is also desirable to improve access to this database.

Also information to help - Effector Saver allows you to save 1C database
There is little point in backing up everything else, since in my case the licenses are software and when transferred to another hardware, the licenses disappear.

From the extra.
If you want to allow domain users to create any database using 1C tools with impunity, then account 1C server service to create a domain account that has the right to create databases without any system administrators is quite enough,
At the same time, there is no need to write a login and password in the properties of the infobase...