When updating the 1C 8.3 configuration, there is not enough memory. Insufficient iron power
This error is quite typical for 1C 8.3; many users encounter it.
Causes
In fact, there are quite a few reasons why the “1C out of memory” error may appear. Very often this error occurs when the 1C Enterprise configuration is updated incorrectly. No less rarely, loading a large database or attempting to process a very large file causes an error to occur.
Since the cause of the error during these actions lies in the lack of address memory, it will not be possible to solve it by upgrading the equipment on which the 1C program is installed.
The fact is that the operating system gives the software access to a limited amount of addressable memory, typically 2 gigabytes for thirty-two-bit operating systems and 4 gigabytes for sixty-four-bit operating systems.
Do you have a question or need help from a consultant?
How to increase the amount of address memory?
It is not difficult to expand the address memory available to the 1C program. To do this, you need to call the command line. This can be done in several ways, the simplest of which is to right-click on the “Start” menu icon - “Command Prompt”
In the window that appears, you must enter the following:
where the numerical value is the desired amount of memory and press the “Enter” key. After this, you will need to restart your computer. After this, you can try to repeat the operation that failed. If the error persists, we recommend contacting a specialist.
Our programmers will be happy to advise and help you.
Errors occur. We will look at one of them, dedicated to the topic “Insufficient free memory on the 1C:Enterprise server.”
Method for eliminating the error “There is not enough free memory on the 1C:Enterprise server.”
The memory capacity of work processes when working on the 1C agent server is not infinite. When it is at maximum load, the user sees a message that is pleasing with its novelty - “There is not enough free memory on the 1C:Enterprise server.”
First, let's talk about the reasons for this kind of messages - why there is not enough memory. There may be several of them:
Insufficient iron power
If up to five people work in the system, then one eight-gigabyte computer with two screws (on one - SERVER, on the second - SQL) and additionally installed chips will be enough. But it’s another matter - about thirty users, thousands of primary documents. Here, SQL needs to be moved to a separate server, and a terminal server alone cannot cope.
Lack of memory for unnecessary information
Typical configurations try to describe literally all the processes that a developer could imagine, trying to create a universal accounting tool called 1C:Enterprise. Therefore, a specific user receives additional baggage in the form of an abyss of metadata objects, additional SQL tables, and unused details. Constant registration and re-indexing of all this unnecessary stuff in the program registers takes a long time and a lot of space.
Coding errors
Server overload also occurs when programmers (sometimes) do not understand certain processes and they introduce their own “crutches” that increase the time required to complete assigned tasks (and the number of work processes too).
Program errors
Among other things, and this is often almost the main reason - the 1C program has an incredible number of internal errors. Some of them are fixed in subsequent releases. A large number of forums are dedicated to these errors, where admins, discussing the latest tricks, jokingly say that probably only Tajiks (Dzhamshut and Ravshan) work in the same social network.
So what to do with the 1C server?
Since the causes of a problem can be different, there are also different ways to solve the situation:
Restarting the server service
The fastest and easiest solution is to restart the server service. From the Microsoft Windows command line (cmd): to stop, run the command - net stop "1C:Enterprise 8.3 (or your version) Server Agent", and to start - net start "1C:Enterprise 8.3 (according to your version) Server Agent". This solution does not solve the problem completely - most often the mistake is repeated. The frequency of its repetitions depends on the number of clients and the number of work processes.
IMPORTANT. To be able to restart, you must have the appropriate rights.
Auto restart and cluster settings
Sometimes even one running workflow can take up almost all the RAM. This problem is solved by increasing their number in the cluster settings. They add approximately one process for every fifteen to thirty users.
Restart interval. Shortly before the previous one finishes, a new rphost.exe process starts. - Connections from the old one are transferred to it. Allowable memory size - if this value is exceeded, a second countdown timer will be started.
Interval for exceeding the limit volume - when the timer exceeds this value, a new process will be launched. And the connections from the old one will be connected to it. And the old one, in turn, is marked inactive. Off stop processes after - after the value of this parameter has passed after marking the workflow as inactive, it will be terminated by the operating system. If you specify this parameter equal to “0”, then all inactive processes will not be terminated automatically.
IMPORTANT. This setting is characterized by the fact that it disconnects from the database only the client that launched the incorrect report. And the rest will be smoothly moved to new connections (without interruption from their base).
Number of worker processes
If rphost.exe is overloaded with background jobs and new processes are not created, you need to check the settings:
Max. The memory size of worker processes is the total amount of memory for all processes together. Measured in bytes. If you set the wrong value (inadequate to normal operation), everyone will receive the error “There is not enough free memory on the 1c server.”
Safe memory consumption per call - controls memory consumption during a call by the server (in bytes). If a call uses more than the specified number, it will be completed within the cluster. It will not be restarted. And the loss of a session will not affect other clients.
The amount of memory for processes up to the value of which the server is considered productive by the system - when this value is reached, the cluster server stops accepting connections. Number of information bases per process - isolates information security by process. After isolating information bases (by entering the value “1”), problems are usually solved.
Number of connections per process - default value is “128”. If the current database has a very heavy load from background jobs, then you can reduce this number, for example, to “25”. With these settings, the cluster settings will change slightly:
Fault tolerance level - shows the number of servers that, if they fail, will not cause an emergency shutdown of clients. In this case, backup services will be automatically launched in the required quantity.
Load sharing mode - has two possible options. If you set “Priority on performance”, then the server memory will be consumed more to increase performance. When you select “Memory priority”, the 1C cluster will save memory.
Database tool
To operate with the database, you must use MS SQL DBMS.
Checking the configuration
Perhaps the cause of the error lies in incorrect information contained in the Configuration. To check it, you need to run the “Check configuration” command. (Not to be confused with testing!). Before execution, you need to check the setting of the checkbox (checkbox) - “logical integrity”. If any incorrectness is detected, this will be reflected in the message. And the errors will be removed.
We looked at the reasons for the lack of free memory on the 1C server and possible ways to eliminate this. One of the methods will certainly solve the problem.
Let's take a closer look at the options for fixing the “Not enough memory” error in 1C 8.3.
Method 1: Increase address memory size
There is a limitation in the allocation of address memory for software by the operating system: for a 32-bit system - 2 GB; for a 64-bit system - 4 GB.
Step 1
To increase the size of the address memory, you need to do the following: run the command line with Administrator rights:
- Start – Run – enter CMD in the command line and press Enter:
- Or right-click on the Start button and select Command Prompt (Administrator).
Step 2
Next, we find ourselves in a dialog command window, where we must type a command to increase the address memory. Enter BCDEdit /set increaseuserva xxxx on the command line, where instead of xxxx we indicate the amount of virtual address space in megabytes. For example, on 32-bit systems, 3072 MB is recommended:
Step 3
Reboot the computer. Let's perform actions in the 1C 8.3 program that were not possible before.
Step 4
After performing operations, it is better to return the address memory to its default value. To do this, enter BCDEdit /deletevalue increaseuserva on the command line:
Reboot the computer.
Method 2. Delete documents and directories marked for deletion
In the 1C 8.3 platform, it became possible to use a scheduled task.
Removing marked objects allows you to:
- Increase system performance;
- Reduce database size.
Step 1. Create a copy of the database
Open the item: section Administration – Program Settings – Support and Maintenance – Backup and Restore:
Set up a schedule for automatic database copying and click Finish:
For more details on how to make a backup copy of 1C 8.3, see our video tutorial:
Step 2. Delete marked objects
Open the item Automatically delete marked objects according to a schedule: section Administration – Program Settings – Support and Maintenance – Routine Operations:
We set up a schedule for automatically deleting marked objects in 1C 8.3 at a convenient time. For example, during a lunch break and click Finish:
As a result of these actions, the size of the database will decrease, system performance will improve, and the 1C “Insufficient memory” error should not occur.
Please rate this article:
It is impossible to list all the situations when the 1C “Insufficient memory” error occurs (Fig. 1). Let's try to identify the main ones:
- When updating the configuration;
- When starting the application;
- When generating a report;
- When performing large calculations (carrying out the document “Calculation of cost”, “Closing the month” and so on).
The reason in all cases is the same - lack of physical memory on the computer. However, adding additional RAM sticks to the device does not always solve the problem.
What determines the size of available memory
32-bit operating systems have one significant feature: regardless of the amount of RAM and the size of the paging file, the operating system allocates only 4 GB for running a specific application.
Considering that half of the virtual memory address space is allocated for the needs of the system itself, only 2GB remains for the application. When the program is running, the virtual memory address space must be reserved in one contiguous block. When this is not possible, a window pops up (Fig. 1).
How to increase available memory
Without reinstalling the operating system, there are two options to correct the situation:
![](https://i0.wp.com/blog.it-terminal.ru/wp-content/uploads/2017/07/Screenshot_2.png)
Using these methods, you can reduce the address space allocated for the operating system to 1GB, increasing the memory for the application to 3GB.
Attention! By manually allocating memory, you can encounter problems in the operation of your personal computer, up to a complete system stop.
Removing the line from the boot.ini file or running the command and replacing parameter 2900 with 2000 returns the system to its original state.
It is important to understand that these methods are only a temporary solution to the problem; to permanently eliminate it, you need to transfer the database to a 64-bit platform.
Insufficient memory when generating a report
Not very often, but this error occurs when reports occur. In this case, the processing of generating a spreadsheet document is delayed and, in the end, ends with a window, as in the first figure.
Before getting into the operating system settings and changing the RAM allocation parameters, in this case it is better to try changing the report settings. Change the date, change the groupings, add selection. In most cases this helps.
If the error does not occur in a standard report (such as an account card or balance sheet), and you have access to the source processing code, check whether temporary tables are being formed in the query. Recorded in RAM and existing until the end of the request, they can significantly eat up the resources of a weak computer.
In general, to avoid such situations, it is highly recommended to destroy temporary tables in a query immediately after they are no longer needed.
Memory leaks on the server
In some cases, users receive a message shown in Fig. 3
Rice. 3.
I would like to talk separately about the reasons for this server behavior.
In general, the phrase “memory leak” is somewhat inaccurate; it is better to say that memory is being stored, layered. Programs that launch processes forget to terminate them in a timely manner. As a result, they accumulate in RAM.
The second reason is memory fragmentation. If intensive reservation and release of RAM occurs during server operation, at one point a situation may arise when the amount of free memory is sufficient, but it is impossible to capture a continuous block of memory addresses of sufficient size.
You can solve the second problem using system utilities.
As a result of this they may:
- There are problems with the connection, it breaks, the program crashes; (Fig. 4)
Fig.4
- Errors and freezes appear when unloading the information base;
- There are jumps in the memory occupied by 1C processes.
Update errors
This low-memory option occurs when you try to update the configuration to the current release. It can be associated either with a large number of running applications or with errors in the database.
The first action when this problem occurs is to launch the updated database in configurator mode and carry out its restructuring (menu item Administration->Testing and Correction), although it is better to carry out a full range of work to correct errors and reindex tables.
One of the most common errors that arise when working with 1C 8.3 is “Not enough memory”. In reality, it can occur after many events - updating, processing large files, generating a report, loading data, and others. This means that any administrator and 1C developer must understand the essence of the problem and be able to fix it. Simply increasing your PC's RAM or hard drive will not solve this problem.
Solving the problem on the client computer
The reasons for this error do not lie entirely in the 1C system, since you can see a similar error in other applications. The problem is that in operating systems of the Microsoft family, by default, a certain amount of memory is allocated for each application. For 32-bit systems this value is set to 2 GB, for 64-bit systems - 4 GB. When the software exceeds this value, an error window appears on the monitor.
The easiest way to get rid of such messages is to delete objects marked for deletion in the configuration. This helps infrequently, but eliminates unnecessary hesitation. In addition, the risk of these actions is minimal, since it does not require intervention in the internal settings of Windows. If removal does not help, then you will have to fight with other methods.
Another solution for 32-bit systems is to switch to the 64-bit version or allocate more memory to applications. The first option is much more correct, but sometimes for various reasons it is impossible. Then there is only the option with the action algorithm shown below, but you should use it very carefully - there may be significant problems with the performance of the entire system.
This algorithm is quite simple:
- Open Windows Command Prompt. Use the Start menu or the Windows key combination +R and enter the command “cmd”;
- In the window that appears, type the command “bcdedit /set increaseuserva 3200” (for example, we will increase the limit to 3.2 GB). It is worth increasing the limit carefully and gradually;
- After confirming the successful completion of the operation in the Command Prompt window, restart your PC and try again the steps that led to the error. If the problem does not go away and 1C still crashes, you can increase the limit again;
- After successful completion of the operation without an error in 1C, restore the default Windows restrictions with the command “bcdedit /deletevalue increaseuserva”. This is a necessary step so that the OS does not compromise its performance for the sake of 1C and other applications.
This solution allows you to perform an operation that cannot be performed due to the 1C “Insufficient memory” error. It can only be used in emergency cases when the operation must be performed right away. In other circumstances, it is better to try to run 1C on a 64-bit platform and repeat the operation there.
You should take the message that there is not enough memory on the server during an update or large-scale operation much more seriously. The problem may be untimely completion of processes launched by various software, resulting in “layering” and accumulation of them in virtual memory. The second source of such an error is the intensive work of various programs with memory reservation and freeing. There are various software to solve these problems, but practice shows that it causes connection breaks and 1C crashes.
Errors like these make you wonder whether the 1C server is powerful enough. Increasing its capacity will benefit the company, but this error can be circumvented in other ways that do not require an injection of funds.
Of course, you shouldn’t use them all the time, but one day they can help you urgently perform resource-intensive work if necessary. Among the popular methods that can help solve the error of insufficient memory on the server are:
Another common 1C error occurs when there is not enough space on the hard drive on the server. Temporary tables take up a lot of space, and if there is not enough space, the administrator sees the error “There is not enough free memory to perform the operation.” In this case, it is difficult to give precise advice, since the design of the server or cluster may differ significantly in different versions. Among the standard solutions that help in such cases, you can find restarting the server, increasing free space, optimizing queries, and updating the version.
In companies with a large number of users, the error “Insufficient free memory on the 1C:Enterprise 8.3 server” occurs quite often. A big problem and a prerequisite for this is insufficient analysis of the required performance. Therefore, when implementing 1C, pay great attention to sufficient server power so that in the future you do not have to adjust performance at the expense of stability.