Slows down 1s 8.3 file version. Automation Tips
This article discusses the main factors: when 1C slows down, 1C freezes and 1C works slowly. The data was prepared on the basis of SoftPoint's many years of experience in optimizing large IT systems built on a combination of 1C + MS SQL.
To begin with, it is worth noting the myth that 1C is not designed for the simultaneous operation of a large number of users, actively supported by forum users who find comfort and reason in these posts to leave everything as it is. With enough patience and a level of knowledge, you can bring the system to any number of users. Slow work and freezing 1C will no longer be a problem.
From practice: It is easiest to optimize 1C v7.7 (Optimization of 1C 8.1, 1C 8.2, 1C 8.3 is a more difficult task, since the application consists of 3 links). Getting it up to 400 concurrent users is a fairly typical project. Up to 1500 is already difficult, requiring hard work.
The second myth: in order to improve the performance of 1C and get rid of 1C freezes, you need to install a more powerful server. As a rule, in optimization projects in 95% of cases it is possible to achieve acceptable performance either without an upgrade at all, or by updating an insignificant part of the equipment, for example, by adding RAM. At the same time, it should be noted that the equipment must still be server-based, especially disk subsystem. An outdated disk subsystem is just one of the reasons why 1C is slow.
The main limitation in multi-user work in 1C is the blocking mechanism. It is the locks in 1C, and not the server equipment, that usually prevent a large number of people from working in the database. To overcome this trouble, you have to work hard and change the logic of locks in 1C - lower them from tabular to line-by-line. Then, for example, holding a document will block only one, and not all documents in the system.
Figure 1. 1C blocking queue in the PerfExpert monitoring system, with information about 1C users, a configuration module, and a specific line of code in this module.
Changing the 1C lock mechanism is a very complex technology. Not everyone is able to pull off such a trick, and for them there is only one way left - to optimize the structure and speed up the execution time of operations. The fact is that blocking in 1C and the time it takes to complete operations are highly interrelated indicators. For example, if the document posting operation takes 15 seconds, then with a large number of users, it is highly likely that during posting someone else will try to post the document and will wait in the lock. If you bring the execution time to at least 1 second, then 1C blocking for this operation will be significantly reduced.
More dangerous in terms of blocking are group processing, which can be long in execution time and at the same time cause 1C blocking. Any processing that changes the data, such as resequencing or batch processing of documents, locks tables and prevents other users from posting documents. Naturally, the faster these processings are performed, the less time locks and easier for users to operate.
Heavy reports that perform only read operations can also be dangerous in terms of locks, although they do not seem to lock data. Such reports affect the intensity of blocking in 1C, slowing down other operations in the system. That is, if the report is very heavy and takes up the bulk of the server resources, it may turn out that before the report was launched, the same executions were performed for 1 second, and during the report execution, 15 seconds were performed. Naturally, with an increase in the execution time of operations, the intensity of blocking will also increase.
Figure 2. Load on the working server in the context of configuration modules, from all users. Each module has its own color. There is a clear imbalance in the load created from 1C.
The main rule when optimizing is that the time of the document should take a minimum of time and perform only the necessary operations. For example, register calculations are often used in posting processing without specifying filtering conditions. In this case, you need to specify filters for the registers that allow you to get the best selectivity, without forgetting that, according to the filtering conditions, the register should have corresponding indices.
In addition to running heavy reports, non-optimal settings of MS SQL and MS Windows can slow down the execution time of operations and, therefore, increase the intensity of 1C blocking. This problem is found in 95% of customers. It should be noted that these are servers of serious organizations, and entire departments of highly qualified administrators are involved in their support and configuration.
The main reason for not properly configuring the server is the fear of administrators to change anything on a running server and the rule "The best is the enemy of the good." If the administrator changes the server settings and problems begin, then all the anger of the authorities will pour out on the negligent administrator. Therefore, it is more profitable for him to leave everything as it is, and not take a single step without the order of his superiors, than to experiment under his own responsibility.
The second reason is the lack of clear information on network optimization problems. There are a lot of opinions, which often completely contradict each other. Every opinion dedicated to optimization has its opponents and fanatics who will defend it. As a result, the internet and forums confuse server settings rather than help. In a situation of such uncertainty, the administrator has even less desire to change something on the server, which at least somehow works.
At first glance, the picture is clear - you need to optimize everything that slows down the 1C server. But let's imagine ourselves in the place of such an optimizer - let's say we have 1C 8.1 8.2 8.3 SCP and 50 users work at the same time. One terrible day, users begin to complain that 1C is slow, and we need to solve this problem.
First of all, we look at what is happening on the server - all of a sudden there is some kind of independent antivirus that performs a full system scan. Inspection shows that everything is decent - the server is loaded under 100%, and only by the sqlservr process.
From practice: one of the junior administrators, on his own initiative, turned on auto-update on the server, Windows and SQL were joyfully updated, and after the update, a massive slowdown in the work of 1C users began, or 1C simply freezes.
The next step is to check which programs load MS SQL. Inspection shows that the load is generated from approximately 20 application server connections.
From practice: the program that quickly updates the data on the site got stuck, and instead of updating every 4 hours, it did it without stopping, without pauses, heavily loading the server, and blocking the data.
Further analysis of the situation faces great difficulties. We have already found out that the load comes directly from 1C, but how to understand what exactly users are doing? Or at least who they are. Well, if there are 10 1C users in the organization, then you can just walk through them and find out what they are doing now, but in our case there are fifty of them, and they are scattered over several buildings.
In the example we are considering, the situation is not yet complicated. And imagine that the slowdown was not today, but yesterday. Today the situation does not repeat itself, everything is in order, but you need to figure out why the operators could not work yesterday (they naturally complained only before leaving home, because they like to chat all day, because nothing works, they like it more than working ). This case highlights the need for a server logging system that will always keep a history of the main parameters of the server and from which the sequence of events can be restored.
The logging system is simply an indispensable tool in system optimization. If you add to it the ability to view the current state online, you will get a system for monitoring the state of the server. Every optimization project starts with collecting server state statistics to identify bottlenecks.
When we started working in the field of optimization, we tried many server monitoring systems, unfortunately, we failed to find something that solves this problem at the proper level, so we had to create a system on our own. The result was a unique product, PerfExpert, which made it possible to automate and streamline the processes of optimizing IT systems. The program is distinguished by tight integration with 1C, the absence of any noticeable additional load and repeatedly proven suitability for practical use in combat situations.
Returning to our example, the most likely outcome is: The administrator says “The programmers who wrote the configuration are to blame”, the programmers answer - “We have everything written well - the server is not working well.” And the cart, as they say, is still there. As a result, 1C slows down, freezes or runs slowly.
In any case, to solve 1C performance problems, we recommend that you first purchase and use performance monitoring PerfExpert , this will allow you to make the right management decision and save money. The product is suitable both for small IS 1C:Enterprise - up to 50 users, and for systems - from 1000 users. From July 2015 performance monitoring PerfExpert received a certificate 1C: Compatible, was tested in Microsoft and helps to solve performance problems not only for 1C systems, but also for others information systems on the base MS SQL Server (Axapta, CRM Dynamics, Doc Vision and others).
If you liked the information, the recommended next steps are:
- If you want to independently deal with the technical performance problems of 1C (1C 7.7, 1C 8.1, 1C 8.2,1C 8.3) and other information systems, then for you a unique list of technical articles in our Almanac (Locks and deadlocks, heavy CPU and disk load, database maintenance and index tuning are just a small part of the technical materials that you will find there).
.
- If you want to discuss performance problems with our expert or order a PerfExpert performance monitoring solution then leave a request and we will contact you as soon as possible.
I often get asked questions like:
- because of what the server 1C slows down?
- computer with 1C works very slowly
- client 1C is terribly slow
What to do and how to win it, and so on in order:
Clients work very slowly with the server version of 1C
In addition to the slow work of 1C, there is also slow work with network files. The problem occurs during normal operation and with RDP
to solve this, after each installation of the Seven or the 2008 server, I always run
netsh int tcp set global autotuning=disabled
netsh int tcp set global autotuninglevel=disabled
netsh int tcp set global rss=disabled chimney=disabled
and the network works without problems
sometimes the best is:
netsh interface tcp set global autotuning= HighlyRestricted
here is what the setup looks like
Configure Antivirus or Windows Firewall
How to configure the Anti-Virus or Windows firewall for the operation of the 1C server (a bundle from the 1C Server: Enterprise and MS SQL 2008, for example).
Add rules:
- If the SQL server accepts connections on the standard TCP port 1433, then we allow it.
- If the SQL port is dynamic, you must allow connections to the %ProgramFiles%\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\sqlservr.exe application.
- Server 1C works on ports 1541, cluster 1540 and range 1560-1591. For completely mystical reasons, sometimes such a list of open ports still does not allow connections to the server. To make it work for sure, allow the range 1540-1591.
Server / Computer Performance Tuning
In order for the computer to work with maximum performance, you need to configure it for this:
1. BIOS settings
- In the server BIOS, disable all settings to save processor power.
- If there is "C1E" & be sure to DISCONNECT!!
- For some not very parallel tasks, it is also recommended to turn off hyperthreading in the bios
- In some cases (especially for HP!) you need to go into the server's BIOS and turn OFF the items there, in the name of which there are EIST, Intel SpeedStep and C1E.
- Instead, you need to find in the same place the items related to the processor, in the name of which there is Turbo Boost, and ENABLE them.
- If the BIOS has a general indication of the power saving mode & enable it in the maximum performance mode (it can also be called "aggressive")
2. Scheme settings in the operating system - High performance
Servers with Intel Sandy Bridge architecture can dynamically change processor frequencies.
The main purpose of writing the article is not to repeat the obvious nuances to those administrators (and programmers) who have not yet gained experience with 1C.
A secondary goal, if I have any shortcomings, Infostart will point this out to me the fastest.
V. Gilev's test has already become a kind of "de facto" standard. The author on his website gave quite understandable recommendations, but I will simply give some results and comment on the most likely errors. Naturally, the test results on your equipment may differ, this is just a guideline, what should be and what you can strive for. I want 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, in the relevant sections I will put links to them (if I miss something, please tell me in the comments, I will add it). So, suppose you slow down 1C. 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, 2*Xeon 5650, 32 Gb, Intel 362i , Win 2008 r2. For comparison, comparable results in a single-threaded test are shown by the Core i3-2100. The equipment was specially taken not the newest, on modern equipment the results are noticeably better.
For testing remote 1C and SQL servers, SQL server: IBM System 3650 x4, 2*Xeon E5-2630, 32 Gb, Intel 350, Win 2008 r2.
To test the 10 Gbit network, Intel 520-DA2 adapters were used.
File version. (the base lies on the server in the shared folder, clients are connected on a network, the CIFS/SMB protocol). Step by step algorithm:
0. Add the Gilev test database to the file server in the same folder as the main databases. We connect from the client computer, 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 label until the database window appears should be less than a minute. ( Celeron = slow work).
If your computer is worse than a Pentium on 775 socket from 1 GB random access memory, then I sympathize with you, and it will be difficult for you to achieve comfortable work on 1C 8.2 in the file version. Consider either upgrading (long overdue) or switching to a terminal (or web, in the case of thin clients and managed forms) server.
If the computer is not 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" and more, but the 1C working base still works slowly - the questions are already for the programmer.
1. For a guideline, how much a client computer can "squeeze out", we check the operation of only this computer, without a network. We put the test base on the local computer (on a very fast disk). If the client computer does not have a normal SSD, then a ramdisk is created. So far, the simplest and free one is Ramdisk enterprise.
To test version 8.2, 256 MB of a ramdisk is enough, and! The most important. After restarting the computer with a working ramdisk, it should have 100-200 MB free. Accordingly, without a ramdisk, for normal operation of free memory there should be 300-400 MB.
For testing version 8.3, a 256 MB ramdisk is enough, but more free RAM is needed.
When testing, you need to look at the processor load. In a case close to ideal (ramdisk), the local file 1c loads 1 processor core during operation. Accordingly, if during testing your processor core is not fully loaded, look for weaknesses. 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 i3 with a high frequency, the numbers 70-80 are quite real.
The most common mistakes at this stage.
a) Incorrectly configured antivirus. There are many antiviruses, the settings for each are different, I can only say that with proper configuration, neither the web nor Kaspersky 1C interfere. With the "default" settings - about 3-5 parrots (10-15%) can be taken away.
b) Performance mode. For some reason, few people pay attention to this, and the effect is the most significant. If you need speed, then you must do it, both on client and server computers. ( good description at Gilev. The only caveat, on some motherboards If you turn off Intel SpeedStep, then you can not turn on TurboBoost).
In short, during 1C operation, there are a lot of waiting for a response from other devices (disk, network, etc.). While waiting for a response, if the performance mode is balanced, then the processor lowers its frequency. A response comes from the device, 1C (the processor) needs to work, but the first cycles go at a reduced frequency, then the frequency rises - 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:
Through BIOS. Disable C1, C1E, Intel C-state (C2, C3, C4) modes. In different bios they are called differently, but the meaning is the same. Search for a long time, a reboot is required, but if you did it once, then you can forget. If everything is done correctly in the BIOS, then the speed will be added. On some motherboards, BIOS settings can be set so that the Windows performance mode will not play a role. (Examples BIOS settings at Gilev). These settings mainly concern server processors or "advanced" BIOS, if you haven't found it in your system, and you don't have Xeon - it's okay.
Control Panel - Power - High performance. Minus - if the computer has not been serviced for a long time, it will buzz more strongly with a fan, it will heat up more and consume more energy. This is the price of performance.
How to check that the mode is enabled. Run Task Manager - Performance - Resource Monitor - CPU. We wait until the processor is busy with nothing.
These are the default settings. BIOS C-state included, balanced power mode |
|
BIOS C-state included, high performance mode For Pentium and Core, you can stop there, you can still squeeze some "parrots" out of Xeon |
|
BIOS C-state off, high performance mode. If you do not use Turbo boost - this is how it should look 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 latter - 49.5. The difference is almost twofold. The numbers may vary, but the ratio remains pretty much the same for the Intel Core.
Dear administrators, you can scold 1C as you like, but if end users need speed, you must enable high performance mode.
c) Turbo Boost. First you need to understand if your processor supports this function, for example. If it does, then you can still quite legally get some performance. (I don’t want to touch on the issues of overclocking, especially servers, do it at your own peril and risk. But I agree that increasing the Bus speed from 133 to 166 gives a very noticeable increase in both speed and heat dissipation)
How to turn on turbo boost is written, for example,. But! For 1C there are some nuances (not the most obvious). The difficulty is that the maximum effect of turbo boost is manifested when the C-state is turned on. And it turns out something like this picture:
Please note that the multiplier is the maximum, the Core speed is the most beautiful, the performance is high. But what will happen as a result of 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 variant 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 variant with a multiplier of 23 horror horror horror (even if C -state set to level 7, it is still slower than with C-state turned off). Therefore, the recommendation, check both options for yourself, and choose the best one from them. In any case, the difference between 49.5 and 53 parrots is quite significant, especially since it is without much effort.
Conclusion - turbo boost must be included. 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 - High performance) . And I would still (even for the file version) stop at the option where c-state is turned off, even though the multiplier is less there. Get something like this...
A rather controversial point is the memory frequency. For example, the memory frequency is shown as very influential. My tests did not reveal such 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 force 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 options. 8.3 shows comparable results.
The difference is within the measurement error. I specifically pulled out the CPU-Z screenshots to show that other parameters change with the frequency change, the same CAS Latency and RAS to CAS Delay, which levels out the frequency change. The difference will be when the memory modules physically change, from slower to faster, but even there the numbers are not very significant.
2. When we figured 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), here I will not focus on this topic. Before starting testing 1C, please make sure that iperf between two computers shows the entire band (for 1 Gbit cards - well, at least 850 Mbit, but better 950-980), that Gilev's advice is 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 network of 1 Gbps will be an average copy speed of 100 Mb / s, good work - 120 Mb / s. I want to draw your attention to the fact that the processor load can also be a weak point (including). SMB the protocol on Linux is rather poorly parallelized, and during operation it can quite easily “eat” one processor core and not consume it anymore.
And further. With default settings, windows client works best with windows server (or even windows workstation) and SMB / CIFS protocol, linux client (debian, ubuntu did not look at the rest) works best with linux and NFS (it also works with SMB, but on NFS parrots above). The fact that when linearly copying a win-linux server to nfs is copied into one stream faster, does not mean anything. Tuning debian 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 even got a little better performance than the Win version on the same equipment, but with postgres with users over 50 I still have everything very bad.
The most important , which is known to "burnt" administrators, 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 \\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 gives a fairly stable performance. So here's what you need to do right:
On the command line (or in policies, or whatever suits you) - do net use DriveLetter: \\server\share. Example: net use m:\\server\bases. I specifically emphasize NOT an IP address, namely name server. If the server is not visible by name, add it to dns on the server, or locally to the hosts file. But the appeal must be by name. Accordingly, on the way to the database, access this disk (see the picture).
And now I will show in numbers why such advice. Initial data: Intel X520-DA2, Intel 362, Intel 350, Realtek 8169 cards. 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 turned out to squeeze out only 7.2 Gbit, later I'll see why, the test server is not yet configured properly). The disks are different, but everywhere is an SSD (specially inserted a single disk for testing, nothing else is loaded) or a raid from an SSD. The speed of 100 Mbit was obtained by limiting the settings of the Intel 362 adapter. There was no difference 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 disabled (just for comparability of results, turbo boost adds a little less than 10% for good results, for bad results it may not affect at all). Versions 1C 8.2.19.86, 8.3.6.2076. I do not give all the numbers, but only the most interesting ones, so that there is something to compare with.
Win 2008 - Win 2008 calling by ip address |
Win 2008 - Win 2008 Address by name |
Win 2008 - Win 2008 Calling by ip address |
Win 2008 - Win 2008 Address by name |
Win 2008 - Win 7 Address by name |
Windows 2008 - Debian Address by name |
Win 2008 - Win 2008 Calling by ip address |
Win 2008 - Win 2008 Address by name |
|
11,20 | 26,18 | 15,20 | 43,86 | 40,65 | 37,04 | 16,23 | 44,64 | |
1С 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 to the file version only):
Over the network, you can get quite normal numbers for work if this network is normally configured and the path is correctly written in 1C. Even the first Core i3s may well give 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 for competent network setup. Basic settings - see Gilev, but keep in mind that everything can influence. I saw acceleration from the fact that they uninstalled (and not just turned 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 longs), from removing the second network card from the server . A lot of options, configure the network thoughtfully. There may well be a situation when platform 8.2 gives acceptable numbers, and 8.3 - two or even more times less. Try to play around 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) over the network is still easier to set up than 8.3.7.2008. From 8.3.7.2008 to achieve normal network operation (in comparable parrots) it turned out only a few times, I could not repeat it for a more general case. I didn’t understand much, but judging by the footcloths from Process Explorer, the recording does not go there the way it does in 8.3.6.
Despite the fact that when working on a 100Mbps network, its load schedule is small (we can say that the network is free), the speed of work is still much less than on 1 Gbps. The reason is network latency.
Ceteris paribus (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 there is money, it is better to keep Intel network cards everywhere, if there is no money, then put Intel only on the server (your KO). Yes, and there are many times more instructions for tuning intel network cards.
Default antivirus settings (for example, drweb 10 version) take away about 8-10% of parrots. If you configure it properly (allow the 1cv8 process to do everything, although it is not safe) - the speed is the same as without antivirus.
Do NOT read Linux gurus. A server with samba is great and free, but if you put Win XP or Win7 on the server (or even better - server OS), then in the file version 1c will work faster. Yes, both samba and the protocol stack and network settings and much more in debian / ubuntu are well tuned, but this is recommended for specialists. It makes no sense to install Linux with default settings and then say that it is slow.
It's a good idea to test disks connected via net use with fio . At least it will be clear whether these are problems with the 1C platform, or with the network / disk.
For a single-user variant, I can’t think of tests (or a situation) where the difference between 1Gb and 10 Gb would be visible. The only place where 10Gbps for the file version gave better results was connecting disks via iSCSI, but this is a topic for a separate article. Still, I think that 1 Gbit cards are enough for the file version.
Why, with a 100 Mbit network, 8.3 works noticeably faster than 8.2 - I don’t understand, but the fact took place. All other equipment, all other settings are exactly the same, just in one case 8.2 is tested, and in the other - 8.3.
Not tuned NFS win - win or win-lin gives 6 parrots, did not include it in the table. After tuning, I received 25, but it is unstable (the run-up in measurements is more than 2 units). So far I can not give recommendations on the use of windows and the NFS protocol.
After all the settings and checks, we run the test again from the client computer, rejoice at the improved result (if it worked out). If the result has improved, there are more than 30 parrots (and especially more than 40), there are less than 10 users working at the same time, and the working database still slows down - almost definitely a programmer's problem (or you have already reached the peak of the file version's capabilities).
terminal server. (the base lies on the server, clients are connected on a network, the RDP protocol). Step by step algorithm:
0. Add the Gilev 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 understood that there are no obvious weaknesses, such as lack of memory or huge amount unnecessary software).
2. Setting up network cards in the case of a terminal server has practically no effect on the operation of 1s. To provide "special" comfort, if your server gives out more than 50 parrots, you can play around with new versions of the RDP protocol, just for the comfort of users, faster response and scrolling.
3. When active work a large number of users (and here you can already try to connect 30 people to one base, if you try), it is very desirable 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 wrong. The test base is small, it fits 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 work of the Gilev test with different disk options. I put discs from what was at hand, just to show a tendency. The difference between 8.3.6.2076 and 8.3.7.2008 is small (in the Ramdisk Turbo boost version 8.3.6 gives 56.18 and 8.3.7.2008 gives 55.56, in other tests the difference is even smaller). Power consumption - maximum performance, turbo boost disabled (unless otherwise noted).
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 | |
1С 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 included cache of the RAID controller eliminates all the difference between the disks, the numbers are the same for both sat and sas. Testing with it for a small amount of data is useless and is not an indicator.
For the 8.2 platform, the performance difference 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 there is clearly visible "Active disk time (in%)" 80-95. Yes, if you enable the write cache of the disks themselves, the speed will increase to 35, if you enable the raid controller cache - up to 49 (regardless of which disks are being tested at the moment). But these are synthetic parrots of the cache, 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 enough for the file version to work. The recording resource is another matter, here you need to look in each specific case, it is clear that the Intel 3700 will have an order of magnitude higher, but the price is corresponding there. And yes, I understand that when testing an SSD drive, I also test in more cache this disk, real results will be less.
The most correct (from my point of view) solution would be to allocate 2 SSD disks to a mirror raid for the file base (or several file bases), and not put anything else there. Yes, with a mirror, SSDs wear out the same way, and this is a minus, but at least they are somehow insured against errors in the controller electronics.
The main advantages of SSD disks for the file version will appear when there are many databases, and each with several users. If there are 1-2 bases, and users in the region of 10, then SAS disks will be enough. (but in any case - look at the loading of 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 (your KO again).
Conclusions: if you run the Gilev test on the terminal server (from the same disk where the working databases are) and at those moments when the working database slows down, the Gilev test will show good result(above 30) - then the programmer is most likely to blame for the slow operation of the main working base.
If the Gilev test shows small numbers, and you have both a processor with a high frequency and fast disks, then here the administrator needs to take at least perfmon, and record all the results somewhere, and watch, observe, draw conclusions. There will be no definitive advice.
Client-server option.
Tests were carried out only on 8.2, tk. 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 | |
1С 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 you are interested in something else - write in the comments, I will try to do it.
SAS on storage is slower than local SSDs, even though storage has large cache sizes. SSDs and local and storage systems for the Gilev test work at comparable speeds. I don’t know any standard multi-threaded test (not only records, but all equipment) except for the load 1C from the MCC.
Changing the 1C server from 5520 to 5650 gave almost a doubling of performance. Yes, the server configurations do not match completely, but it shows a trend (nothing surprising).
Increasing the frequency on the SQL server, of course, gives an effect, but not the same as on the 1C server, MS SQL Server is perfectly able (if you ask it) to use multi-core and free memory.
Changing the network between 1C and SQL from 1 Gbps to 10 Gbps gives about 10% of parrots. Expected more.
Enabling Shared memory still gives the effect, although not 15%, as described. Make sure to do it, it's quick and easy. If someone gave a named instance to the SQL server during installation, 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, the following DBMS error will occur: Microsoft SQL Server Native Client 10.0: Shared Memory Provider: The shared memory library used to connect 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 users less than 100, the only point of splitting into two separate servers is a license for Win 2008 Std (and older versions), which only supports 32 GB of RAM. In all other cases, 1C and SQL should definitely be installed on the same 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 1C file version would be enough for you?)
How much worse a bunch of 1C and SQL works in a virtual machine is the topic of a separate article (hint - noticeably worse). Even in Hyper-V, things are not so clear...
Balanced performance mode is bad. The results are in good agreement with the file version.
Many sources say that the debug mode (ragent.exe -debug) gives a strong decrease in performance. Well, it lowers, yes, but I would not call 2-3% a significant effect.
How to speed up work in 1C: Accounting 8.3 (version 3.0) or disable scheduled and background tasks
2019-01-15T13:28:19+00:00Those of you who have already managed to switch to the new edition of 1C: Accounting 8.3 (version 3.0) have noticed that it has become slower than the deuce. Some strange slowdowns, endless background tasks several times a day, which no one asked her to perform without our knowledge.
Immediately after the transition, my accountants told me that the new edition of 1C: Accounting 3.0 frankly slows down in comparison with the previous ones! And it's impossible to work.
I started to figure it out and very soon found out that the main cause of freezes and subsequent user dissatisfaction are routine and background tasks, many of which are enabled by default, although for the vast majority of accountants they are not necessary.
Well, for example, why do we need to run the "Text Extraction" task a hundred times a day if we do not perform a full-text (accountants, don't be scared) search across all the objects in our database.
Or why constantly download exchange rates if we do not have currency transactions or we do them occasionally (and before that we ourselves can click the download rates button).
The same applies to the constant attempt by 1C to connect to the site and check and update the bank classifiers. What for? I myself will press the button to update the classifiers if I do not find the right bank by its BIC.
About how to do it on the points below.
1. Go to the "Administration" section and select the "Maintenance" item in the action panel ():
2. In the window that opens, find and select the "Regular and background tasks" item:
3. Open each job that has the On column. worth a jackdaw.
4. Uncheck "Enabled" and click the "Save and Close" button.
5. Do this with each of the included tasks and enjoy the new edition. In general, in my opinion, it is much better than the deuce.
At the same time, some of the ones you disabled routine tasks the platform will still turn it back on.
1C: Accounting is one of the most famous and most convenient programs accounting. Proof of this is its ubiquity in all areas of activity: trade, manufacturing, finance, etc.
Unfortunately, like everyone computer programs in 1C: Accounting there are also various failures and freezes. One of the most common problems is the slow operation of the system.
In order to understand the reasons for its occurrence and try to solve them, today's article was written.
Elimination of common causes of slow work 1C
1. The most common reason for the slow operation of the program is the long-term access to the 1C base file, which is possible due to errors on the hard drive or due to poor quality of the Internet connection, in the case of using cloud technologies. There may also be problems in the settings of the anti-virus system.
Solution: Perform a troubleshooting scan and defragment your hard drive. Test the speed of Internet access. For low rates (less than 1 Mb / s), contact the provider's TP service. Temporarily disable anti-virus protection and firewall in the anti-virus system.
2. Perhaps the slow operation of the program is due to the large size of the database file.
To solve this problem open 1C in the "Configurator" mode, select the "Administration" item in the system menu, then "Testing and correction". In the window, the “Compress information database tables” item must be selected, the “Testing and correction” item is active below. Click "Run" and wait for the process to finish.
3. Next possible reason- outdated software or an outdated version of the program itself.
Way out of this situation: update the operating system software or install the latest version of the 1C program at the moment. For the purpose of preventive actions, always upgrade to the latest version, which eliminates errors from earlier configurations.
to install latest version 1C system, you need to enter the program in the "Configuration" mode, then from the menu go to "Service" -> "Utilities" -> "Configuration Update", then select the default settings and click the "Update" button.