Za 1 sekundu nie je žiadna pamäť, čo robiť


Chyba „Nedostatok pamäte“ v 1C 8.3 a 8.2 nie je taká zriedkavá. Nájdete ho aj v konfigurátore (napríklad pri porovnávaní konfigurácií), ako aj v režime 1C:Enterprise pri vykonávaní prácne náročného spracovania: napríklad pri písaní veľkého súboru base64.

Táto chyba sa môže vyskytnúť nielen v programe 1C, ale aj v iných programoch operačného systému Windows.

Ide o to, že v 32-bitových operačných systémoch sú štandardne 2 gigabajty pre rôzne programy a rovnaké množstvo pre operačný systém. V 64-bitovom OS je množstvo pamäte pridelenej pre aplikácie už 4 gigabajty.

Na základe vyššie uvedeného musíte zväčšiť veľkosť pridelenej pamäte adries pre aplikácie, čo je program 1C. Dá sa to urobiť dvoma spôsobmi: prechodom z 32-bitového systému na 64-bitový alebo zvýšením pôvodne prideleného množstva pamäte adries.

Samozrejme, prvá metóda je lepšia a vhodnejšia, ale ak ju momentálne alebo vôbec nemôžete použiť, môžete použiť druhú.
Začiatok dňa prejdite na príkazový riadok operačného systému. Ak to chcete urobiť, prejdite do ponuky Štart a do vyhľadávacieho panela zadajte „cmd“.

Pred vami sa zobrazí vyhľadávanie programov. Vyberte ten s názvom „cmd“.

Príkazový riadok môžete otvoriť aj pomocou kombinácie klávesových skratiek Windows + R.

V okne, ktoré sa otvorí, zadajte nasledujúci príkaz a stlačte „Enter“:

bcdedit /set zvysuserva 3200

V tomto prípade zvýšite množstvo pamäte adries na 3200 megabajtov.

Keď sa vám to podarí, dôrazne sa odporúča obnoviť predchádzajúce množstvo pamäte adries. Toto opatrenie je dočasné, keďže pri prideľovaní pamäte pre aplikácie jej má operačný systém menej. To môže ohroziť stabilitu systému Windows.

Ak chcete obnoviť pamäť adries na predvolenú hodnotu, môžete použiť nasledujúci príkaz, ktorý sa tiež zadáva do príkazového riadka:

bcdedit /deletevalue zvýšenieuserva

Upozorňujeme, že pri bežnej chybe „Nedostatok pamäte“ v 1C môže pomôcť aj odstránenie označených objektov. Možno ich program nahromadil veľa a pre program je ťažké spracovať také objemy údajov. Ak táto metóda nepomôže, mali by ste zvýšiť bitovú rýchlosť operačného systému Windows.

Jednou z najbežnejších chýb, ktoré vznikajú pri práci s 1C 8.3, je „Nedostatok pamäte“. V skutočnosti k nemu môže dôjsť po mnohých udalostiach – aktualizácia, spracovanie veľkých súborov, vygenerovanie reportu, načítanie dát a iné. To znamená, že každý správca a vývojár 1C musí pochopiť podstatu problému a byť schopný ho opraviť. Jednoduché zvýšenie pamäte RAM alebo pevného disku počítača tento problém nevyrieši.

Riešenie problému na klientskom počítači

Dôvody tejto chyby nespočívajú úplne v systéme 1C, pretože podobnú chybu môžete vidieť v iných aplikáciách. Problém je v tom, že v operačných systémoch rodiny Microsoft je štandardne pre každú aplikáciu pridelené určité množstvo pamäte. Pre 32-bitové systémy je táto hodnota nastavená na 2 GB, pre 64-bitové systémy - 4 GB. Keď softvér prekročí túto hodnotu, na monitore sa zobrazí chybové okno.

Najjednoduchší spôsob, ako sa takýchto správ zbaviť, je vymazať objekty označené na vymazanie v konfigurácii. To pomáha zriedka, ale odstraňuje zbytočné váhanie. Okrem toho je riziko týchto akcií minimálne, pretože si nevyžaduje zásah do vnútorných nastavení systému Windows. Ak odstránenie nepomôže, budete musieť bojovať inými metódami.

Ďalším riešením pre 32-bitové systémy je prechod na 64-bitovú verziu alebo pridelenie väčšej pamäte aplikáciám. Prvá možnosť je oveľa správnejšia, ale niekedy je to z rôznych dôvodov nemožné. Potom je tu iba možnosť s akčným algoritmom zobrazeným nižšie, ale mali by ste ju používať veľmi opatrne - môžu nastať značné problémy s výkonom celého systému.

Tento algoritmus je celkom jednoduchý:

  1. Otvorte príkazový riadok systému Windows. Použite ponuku Štart alebo kombináciu klávesov Windows + R a zadajte príkaz „cmd“;
  2. V zobrazenom okne zadajte príkaz „bcdedit /set raiseuserva 3200“ (napríklad zvýšime limit na 3,2 GB). Opatrne a postupne sa oplatí zvyšovať limit;
  3. Po potvrdení úspešného dokončenia operácie v okne príkazového riadka reštartujte počítač a zopakujte kroky, ktoré viedli k chybe. Ak problém nezmizne a 1C stále havaruje, môžete limit znova zvýšiť;
  4. Po úspešnom dokončení operácie bez chyby v 1C obnovte predvolené obmedzenia systému Windows pomocou príkazu „bcdedit /deletevalue raiseuserva“. Toto je nevyhnutný krok, aby OS neohrozil svoj výkon v záujme 1C a iných aplikácií.

Toto riešenie vám umožňuje vykonať operáciu, ktorú nemožno vykonať z dôvodu chyby 1C „Nedostatok pamäte“. Môže sa použiť iba v núdzových prípadoch, keď je potrebné okamžite vykonať operáciu. Za iných okolností je lepšie skúsiť spustiť 1C na 64-bitovej platforme a tam operáciu zopakovať.

Oveľa vážnejšie by ste mali brať správu, že na serveri nie je dostatok pamäte počas aktualizácie alebo rozsiahlej operácie. Problémom môže byť predčasné ukončenie procesov spúšťaných rôznymi softvérmi, čo vedie k ich „vrstveniu“ a ich hromadeniu vo virtuálnej pamäti. Druhým zdrojom takejto chyby je intenzívna práca rôznych programov s rezerváciou a uvoľnením pamäte. Na vyriešenie týchto problémov existuje rôzny softvér, ale prax ukazuje, že spôsobuje prerušenia pripojenia a zlyhania 1C.


Pri chybách, ako sú tieto, sa pýtate, či je server 1C dostatočne výkonný. Zvýšenie jeho kapacity bude prospešné pre spoločnosť, ale táto chyba sa dá obísť inými spôsobmi, ktoré si nevyžadujú injekciu hotovosti.

Samozrejme, nemali by ste ich používať stále, ale jedného dňa vám môžu v prípade potreby pomôcť urgentne vykonávať prácu náročnú na zdroje. Medzi populárne metódy, ktoré môžu pomôcť vyriešiť chybu nedostatku pamäte na serveri, patria:

  • Reštartovanie pracovných procesov 1C, čo povedie k zníženiu použitej pamäte. Táto možnosť je vhodná len pre skúsených správcov, ktorí rozumejú konzole správy servera 1C;
  • Pomocou protokolu technológie nájdite tabuľku, v ktorej sa po načítaní počas aktualizácie alebo inej operácie zobrazí chyba „Nedostatok pamäte“. Ak sa pri práci s tabuľkou „config“ objaví chyba, skontrolujte konfiguráciu pomocou príznaku „Skontrolujte logickú integritu konfigurácie“. Túto funkciu nájdete v konfigurátore v menu „Konfigurácia“.
  • Ďalšia bežná chyba 1C sa vyskytuje, keď na pevnom disku na serveri nie je dostatok miesta. Dočasné tabuľky zaberajú veľa miesta a ak nie je dostatok miesta, administrátorovi sa zobrazí chyba „Nie je dostatok voľnej pamäte na vykonanie operácie“. V tomto prípade je ťažké poskytnúť presnú radu, pretože dizajn servera alebo klastra sa môže v rôznych verziách výrazne líšiť. Medzi štandardné riešenia, ktoré v takýchto prípadoch pomáhajú, patrí reštartovanie servera, zvýšenie voľného miesta, optimalizácia dopytov a aktualizácia verzie.


    V spoločnostiach s veľkým počtom používateľov sa chyba „Nedostatok voľnej pamäte na serveri 1C:Enterprise 8.3“ vyskytuje pomerne často. Veľkým problémom a predpokladom toho je nedostatočná analýza požadovaného výkonu. Preto pri implementácii 1C venujte veľkú pozornosť dostatočnému výkonu servera, aby ste v budúcnosti nemuseli prispôsobovať výkon na úkor stability.

    Rovnaká situácia môže nastať pri generovaní veľkého reportu, vykonávaní, pri spúšťaní, načítavaní rozsiahlej informačnej bázy atď. Upozorňujeme, že k tomu dochádza pri vykonávaní niektorých rozsiahlych operácií, ktoré si vyžadujú určité množstvo počítačových zdrojov. Okrem toho v normálnom režime program 1C funguje relatívne normálne.

    Tipy ako vyčistiť disk, na ktorom je program nainštalovaný, spustiť ho v programe, použiť ho výberom Komprimovanie tabuliek informačnej databázy , s najväčšou pravdepodobnosťou neprinesú požadovaný výsledok, aj keď sa tiež oplatí vyskúšať.

    Aby program 1C fungoval, sú na parametre počítača kladené určité požiadavky a ak ich vlastnosti nezodpovedajú nainštalovanému programu, môžu nastať problémy vo forme spomalenia a výskytu tohto typu chyby.

    Po pridaní ďalšej pamäte RAM do nášho počítača sa chyba znova zobrazí. V tomto prípade dôvod spočíva v obmedzenom prideľovaní pamäte adries operačným systémom pre softvér:

    • v 32-bitových operačných systémoch sú štandardne vyčlenené 2 GB pre rôzne programy a rovnaké množstvo pre operačný systém,
    • v 64-bitových operačných systémoch - kapacita pamäte je už 4 GB.

    Pri práci s 1C a vykonávaní operácie môžete použiť Správca úloh monitorovať proces zaťaženia procesora a voľné množstvo pamäte. V našom prípade sa počas aktualizácie toto číslo priblížilo k nule a v tom momente nastala chyba „Nedostatok pamäte“. Spustiť Správca úloh možné stlačením klávesov Ctrl+Alt+Del a otvorením karty Výkon sledujte tieto ukazovatele.

    Preto musíme zväčšiť veľkosť pridelenej pamäte adries pre aplikácie (vrátane 1C). Dá sa to urobiť dvoma spôsobmi: prechodom z 32-bitového systému na 64-bitový systém alebo zvýšením predvoleného množstva pridelenej pamäte adries. Prvá možnosť je správnejšia, ale z niektorých dôvodov to nemusí byť možné, takže zvážme druhú možnosť riešenia problému.

    Vyskytujú sa chyby. Pozrieme sa na jeden z nich, venovaný téme „Nedostatok voľnej pamäte na serveri 1C:Enterprise“.

    Metóda na odstránenie chyby „Na serveri 1C:Enterprise nie je dostatok voľnej pamäte“.

    Kapacita pamäte pracovných procesov pri práci na serveri agenta 1C nie je nekonečná. Keď je pri maximálnom zaťažení, používateľovi sa zobrazí správa, ktorá je potešujúca svojou novinkou - „Na serveri 1C:Enterprise nie je dostatok voľnej pamäte.“


    Najprv si povedzme o dôvodoch tohto druhu správ – prečo nie je dostatok pamäte. Môže ich byť niekoľko:

    Nedostatočná sila železa

    Ak v systéme pracuje až päť ľudí, potom bude stačiť jeden osemgigabajtový počítač s dvoma skrutkami (na jednej - SERVER, na druhej - SQL) a dodatočne nainštalovanými čipmi. Ale je to iná vec - asi tridsať používateľov, tisíce primárnych dokumentov. Tu je potrebné SQL presunúť na samostatný server a samotný terminálový server to nedokáže.

    Nedostatok pamäte pre nepotrebné informácie

    Typické konfigurácie sa snažia opísať doslova všetky procesy, ktoré si vývojár dokáže predstaviť, snažiac sa vytvoriť univerzálny účtovný nástroj s názvom 1C:Enterprise. Konkrétny používateľ teda dostane ďalšiu batožinu v podobe priepasti metadátových objektov, ďalších SQL tabuliek a nevyužitých detailov. Neustála registrácia a preindexovanie všetkých týchto nepotrebných vecí v registroch programu trvá dlho a veľa miesta.

    Chyby v kódovaní

    K preťaženiu servera dochádza aj vtedy, keď programátori (niekedy) nerozumejú niektorým procesom a zavádzajú si vlastné „barličky“, ktoré zvyšujú čas potrebný na dokončenie zadaných úloh (a tiež počet pracovných procesov).

    Chyby programu

    Okrem iného, ​​a to je často takmer hlavný dôvod - program 1C má neskutočné množstvo vnútorných chýb. Niektoré z nich sú opravené v nasledujúcich vydaniach. Týmto chybám sa venuje veľké množstvo fór, kde správcovia diskutujúci o najnovších trikoch vtipne hovoria, že na tej istej sociálnej sieti pracujú pravdepodobne iba Tadžici (Dzhamshut a Ravshan).

    Čo teda robiť so serverom 1C?

    Keďže príčiny problému môžu byť rôzne, existujú aj rôzne spôsoby riešenia situácie:

    Reštartovanie služby servera

    Najrýchlejším a najjednoduchším riešením je reštartovať službu servera. Z príkazového riadku systému Microsoft Windows (cmd): na zastavenie spustite príkaz - net stop "1C:Enterprise 8.3 (alebo vaša verzia) Server Agent" a na spustenie - net start "1C:Enterprise 8.3 (podľa vašej verzie) Serverový agent". Toto riešenie problém úplne nevyrieši – najčastejšie sa chyba opakuje. Frekvencia jej opakovaní závisí od počtu klientov a počtu pracovných procesov.

    DÔLEŽITÉ. Aby ste sa mohli reštartovať, musíte mať príslušné práva.

    Automatické reštartovanie a nastavenia klastra

    Niekedy dokonca jeden spustený pracovný postup môže zabrať takmer celú pamäť RAM. Tento problém je vyriešený zvýšením ich počtu v nastaveniach klastra. Na každých pätnásť až tridsať používateľov pridávajú približne jeden proces.

    Interval reštartu. Krátko pred dokončením predchádzajúceho sa spustí nový proces rphost.exe. - Prenášajú sa naň spoje zo starého. Povolená veľkosť pamäte – ak je táto hodnota prekročená, spustí sa druhý odpočítavací časovač.

    Interval prekročenia limitnej hlasitosti - keď časovač prekročí túto hodnotu, spustí sa nový proces. A napoja sa naň prípojky zo starého. A ten starý je zasa označený ako neaktívny. Vypnuté zastaviť procesy po - po prejdení hodnoty tohto parametra po označení workflow za neaktívny bude operačným systémom ukončený. Ak zadáte tento parameter rovný „0“, všetky neaktívne procesy nebudú automaticky ukončené.

    DÔLEŽITÉ. Toto nastavenie je charakteristické tým, že odpojí od databázy iba klienta, ktorý spustil nesprávny report. A zvyšok sa plynule presunie do nových spojov (bez prerušenia z ich základne).

    Počet pracovných procesov

    Ak je rphost.exe preťažený úlohami na pozadí a nevytvoria sa nové procesy, musíte skontrolovať nastavenia:

    Max. Veľkosť pamäte pracovných procesov je celkové množstvo pamäte pre všetky procesy spolu. Merané v bajtoch. Ak nastavíte nesprávnu hodnotu (nezodpovedajúcu normálnej prevádzke), každému sa zobrazí chyba „Na serveri 1c nie je dostatok voľnej pamäte“.

    Bezpečná spotreba pamäte na hovor – riadi spotrebu pamäte počas hovoru serverom (v bajtoch). Ak hovor používa viac ako zadané číslo, dokončí sa v rámci klastra. Nereštartuje sa. A strata relácie neovplyvní ostatných klientov.

    Množstvo pamäte pre procesy, do ktorého systém považuje server za produktívny – po dosiahnutí tejto hodnoty klastrový server prestane prijímať pripojenia. Počet informačných báz na proces – izoluje informačnú bezpečnosť podľa procesu. Po izolácii informačných báz (zadaním hodnoty „1“) sa problémy zvyčajne vyriešia.

    Počet pripojení na proces – predvolená hodnota je „128“. Ak je aktuálna databáza veľmi zaťažená úlohami na pozadí, môžete toto číslo znížiť napríklad na „25“. S týmito nastaveniami sa nastavenia klastra mierne zmenia:

    Úroveň tolerancie chýb – zobrazuje počet serverov, ktoré v prípade zlyhania nespôsobia núdzové vypnutie klientov. V tomto prípade sa zálohovacie služby automaticky spustia v požadovanom množstve.

    Režim zdieľania záťaže – má dve možné možnosti. Ak nastavíte „Priorita výkonu“, pamäť servera sa bude spotrebovať viac, aby sa zvýšil výkon. Keď vyberiete „Priorita pamäte“, klaster 1C bude šetriť pamäť.

    Databázový nástroj

    Pre prácu s databázou musíte použiť MS SQL DBMS.

    Kontrola konfigurácie

    Príčina chyby možno spočíva v nesprávnych informáciách obsiahnutých v konfigurácii. Ak to chcete skontrolovať, musíte spustiť príkaz „Skontrolovať konfiguráciu“. (Nezamieňať s testovaním!). Pred vykonaním musíte skontrolovať nastavenie začiarkavacieho políčka (zaškrtávacie políčko) - „logická integrita“. Ak sa zistí akákoľvek nesprávnosť, prejaví sa to v správe. A chyby budú odstránené.

    Pozreli sme sa na dôvody nedostatku voľnej pamäte na serveri 1C a možné spôsoby, ako to odstrániť. Jedna z metód určite problém vyrieši.

    Nie je možné vymenovať všetky situácie, kedy sa vyskytne chyba 1C „Nedostatok pamäte“ (obr. 1). Pokúsme sa identifikovať tie hlavné:

    • Pri aktualizácii konfigurácie;
    • Pri spustení aplikácie;
    • Pri generovaní správy;
    • Pri vykonávaní veľkých výpočtov (vykonávanie dokumentu „Výpočet nákladov“, „Uzávierka mesiaca“ atď.).

    Dôvod je vo všetkých prípadoch rovnaký - nedostatok fyzickej pamäte v počítači. Pridanie ďalších pamätí RAM do zariadenia však nie vždy problém vyrieši.

    Čo určuje veľkosť dostupnej pamäte

    32-bitové operačné systémy majú jednu významnú vlastnosť: bez ohľadu na množstvo pamäte RAM a veľkosť stránkovacieho súboru operačný systém vyčlení iba 4 GB na spustenie konkrétnej aplikácie.

    Vzhľadom na to, že polovica adresného priestoru virtuálnej pamäte je alokovaná pre potreby samotného systému, pre aplikáciu zostávajú len 2 GB. Keď je program spustený, adresný priestor virtuálnej pamäte musí byť rezervovaný v jednom súvislom bloku. Keď to nie je možné, zobrazí sa okno (obr. 1).

    Ako zvýšiť dostupnú pamäť

    Bez preinštalovania operačného systému existujú dve možnosti na nápravu situácie:


    Pomocou týchto metód môžete zmenšiť adresný priestor pridelený pre operačný systém na 1 GB, čím zväčšíte pamäť pre aplikáciu na 3 GB.

    Pozor! Pri ručnom prideľovaní pamäte sa môžete stretnúť s problémami pri prevádzke vášho osobného počítača až po úplné zastavenie systému.

    Odstránením riadku zo súboru boot.ini alebo spustením príkazu a nahradením parametra 2900 hodnotou 2000 sa systém vráti do pôvodného stavu.

    Je dôležité pochopiť, že tieto metódy sú len dočasným riešením problému, aby ste ho natrvalo odstránili, musíte preniesť databázu na 64-bitovú platformu.

    Nedostatok pamäte pri generovaní správy

    Nie príliš často, ale táto chyba sa vyskytuje pri výskyte hlásení. V tomto prípade je spracovanie generovania tabuľkového dokumentu oneskorené a nakoniec končí oknom, ako na prvom obrázku.

    Pred vstupom do nastavení operačného systému a zmenou parametrov prideľovania pamäte RAM je v tomto prípade lepšie skúsiť zmeniť nastavenia správy. Zmeňte dátum, zmeňte zoskupenia, pridajte výber. Vo väčšine prípadov to pomáha.

    Ak sa chyba nevyskytuje v štandardnej zostave (napríklad na karte účtu alebo súvahe) a máte prístup k zdrojovému kódu spracovania, skontrolujte, či sa v dotaze netvoria dočasné tabuľky. Zaznamenané v RAM a existujúce až do konca požiadavky môžu výrazne spotrebovať zdroje slabého počítača.

    Vo všeobecnosti, aby ste sa vyhli takýmto situáciám, dôrazne sa odporúča zničiť dočasné tabuľky v dotaze ihneď po tom, čo už nie sú potrebné.

    Úniky pamäte na serveri

    V niektorých prípadoch používatelia dostanú správu znázornenú na obr

    Ryža. 3.

    Chcel by som hovoriť samostatne o dôvodoch tohto správania servera.

    Vo všeobecnosti je fráza „únik pamäte“ trochu nepresná, je lepšie povedať, že pamäť sa ukladá, vrství. Programy, ktoré spúšťajú procesy, ich zabúdajú včas ukončiť. V dôsledku toho sa hromadia v pamäti RAM.

    Druhým dôvodom je fragmentácia pamäte. Ak počas prevádzky servera dôjde k intenzívnej rezervácii a uvoľneniu pamäte RAM, v jednom momente môže nastať situácia, keď je množstvo voľnej pamäte dostatočné, ale nie je možné zachytiť súvislý blok adries pamäte dostatočnej veľkosti.

    Druhý problém môžete vyriešiť pomocou systémových nástrojov.

    V dôsledku toho môžu:

    1. Vyskytli sa problémy s pripojením, preruší sa, program spadne (obr. 4);

    Obr.4

    1. Pri vykladaní informačnej základne sa objavujú chyby a zamrznutia;
    2. V pamäti obsadenej procesmi 1C sú skoky.

    Chyby aktualizácie

    Táto voľba nedostatku pamäte sa objaví, keď sa pokúsite aktualizovať konfiguráciu na aktuálne vydanie. Môže súvisieť buď s veľkým počtom spustených aplikácií alebo s chybami v databáze.

    Prvým krokom pri výskyte tohto problému je spustenie aktualizovanej databázy v režime konfigurátora a vykonanie jej reštrukturalizácie (položka ponuky Správa->Testovanie a oprava), aj keď je lepšie vykonať celý rad prác na opravu chýb a preindexovanie tabuliek .