• Při aktualizaci konfigurace 1s 8.3 není dostatek paměti. Nedostatečný výkon železa

    Tato chyba je pro 1C 8.3 zcela typická, setkává se s ní mnoho uživatelů.

    Příčiny

    Ve skutečnosti existuje několik důvodů, proč se může objevit chyba „Nedostatek paměti 1C“. Velmi často k této chybě dochází, když je konfigurace 1C Enterprise nesprávně aktualizována. Stejně jako zřídka dojde při načítání velké databáze nebo při pokusu o zpracování velmi velkého souboru k chybě.

    Protože příčina chyby během těchto akcí spočívá v nedostatku paměti adres, nebude možné ji vyřešit upgradem zařízení, na kterém je program 1C nainstalován.

    Faktem je, že operační systém poskytuje softwaru přístup k omezenému množství adresové paměti, zpravidla je toto množství 2 gigabajty pro 32bitové operační systémy a 4 gigabajty pro 64bitové operační systémy.

    Máte dotaz, potřebujete pomoc poradce?

    Jak zvýšit velikost paměti adres?

    Rozšíření adresové paměti dostupné pro program 1C není obtížné. Chcete-li to provést, musíte zavolat příkazový řádek. To lze provést několika způsoby, z nichž nejjednodušší je kliknout pravým tlačítkem myši na ikonu nabídky Start - "Příkazový řádek"
    V okně, které se zobrazí, zadejte následující:

    kde číselná hodnota je požadovaná velikost paměti a stiskněte klávesu "Enter". Poté budete muset restartovat počítač. Poté se můžete pokusit opakovat operaci, která selhala. Pokud chyba přetrvává, doporučujeme kontaktovat odborníka.
    Naši programátoři vám rádi poradí a pomohou.

    Dochází k chybám. Zvážíme jeden z nich, věnovaný tématu „Nedostatek volné paměti na serveru 1C:Enterprise“.

    Jak opravit chybu „Nedostatek volné paměti na serveru 1C:Enterprise“.

    Množství paměti pracovních procesů při práci na serveru agenta 1C není nekonečné. Při maximálním zatížení se uživateli zobrazí zpráva, která potěší jeho novinkou - "Na serveru 1C: Enterprise není dostatek volné paměti."


    Nejprve o příčinách takových zpráv - proč není dostatek paměti. Může jich být několik:

    Nedostatečný výkon železa

    Pokud v systému pracuje až pět lidí, bude stačit jeden osmigigabajtový počítač se dvěma šrouby (na jednom - SERVER, na druhém - SQL) a dodatečně nainstalovanými čipy. Ale další věc – asi třicet uživatelů, tisíce primárních dokumentů. Zde je také potřeba SQL přesunout na samostatný server a jeden terminálový server si již neporadí.

    Nedostatek paměti pro další informace

    Typické konfigurace se snaží popsat doslova všechny procesy, které si vývojář dokáže představit, když se snaží vytvořit univerzální účetní nástroj s názvem 1C:Enterprise. Konkrétní uživatel tak dostává další zavazadla v podobě propasti metadatových objektů, dalších SQL tabulek, nevyužitých detailů. Trvalá registrace a přeindexování toho všeho zbytečného v registrech programu zabere dlouhou dobu a spoustu místa.

    Chyby kódování

    K přetížení serveru dochází také tehdy, když programátoři (někdy) nerozumí některým procesům a zavádějí vlastní „berličky“, které prodlužují dobu potřebnou k dokončení úkolů (a také počet pracovních procesů).

    Chyby programu

    Mimo jiné, a to je často skoro ten hlavní důvod – program 1C má neskutečné množství vnitřních chyb. Některé z nich jsou opraveny v následujících vydáních. Těmto chybám je věnováno velké množství fór, kde admini, diskutující o dalších tricích, vtipně říkají, že pravděpodobně pouze Tádžikové (Dzhamshut a Ravshan) fungují v jednom es.

    Co tedy dělat se serverem 1C

    Protože příčiny problému mohou být různé, existují také různé způsoby, jak se ze situace dostat:

    Restartování služby serveru

    Nejrychlejším a nejjednodušším řešením je restartování služby serveru. Z příkazového řádku Microsoft Windows (cmd): pro zastavení se provede příkaz - net stop "1C: Enterprise 8.3 (nebo vaše verze) Server Agent" a pro spuštění - net start "1C: Enterprise 8.3 (podle vaší verze ) Serverový agent“. Takové řešení problém zcela neodstraní – nejčastěji se chyba opakuje. Četnost jeho opakování závisí na počtu klientů a počtu pracovních procesů.

    DŮLEŽITÉ. Abyste mohli restartovat, musíte mít příslušná práva.

    Auto restart a nastavení clusteru

    Někdy může i jeden běžící workflow zabrat téměř celou RAM. Tento problém je vyřešen zvýšením jejich počtu v nastavení clusteru. Na každých patnáct až třicet uživatelů se přidá přibližně jeden proces.

    Interval restartu. Krátce před dokončením předchozího se spustí nový proces rphost.exe. - Do ní se převádějí spoje ze starého. Přípustná velikost paměti - při překročení této hodnoty se spustí druhý odpočítávací časovač.

    Interval pro překročení limitu hlasitosti - když časovač překročí tuto hodnotu, spustí se nový proces. A na něj budou navázány spoje ze starého. A ten starý je zase označen jako neaktivní. Vypnuto zastavit procesy po - po uplynutí hodnoty tohoto parametru po označení workflow jako neaktivní bude ukončen operačním systémem. Pokud je tento parametr nastaven na "0" - pak všechny neaktivní procesy nebudou automaticky ukončeny.

    DŮLEŽITÉ. Toto nastavení je typické tím, že odpojí od databáze pouze klienta, který spustil nesprávnou sestavu. A zbytek - bude plynule přesunut na nová spojení (bez přerušení ze své základny).

    Počet pracovních procesů

    Pokud je rphost.exe přetížen úlohami na pozadí a nevytvářejí se žádné nové procesy, zkontrolujte nastavení:

    Max. paměť pracovního procesu je celková paměť pro všechny procesy dohromady. Měřeno v bajtech. Pokud nastavíte špatnou hodnotu (neodpovídající normálnímu provozu), všichni obdrží chybu „Nedostatek volné paměti na serveru 1s“.

    Bezpečná spotřeba paměti na 1 hovor - řídí spotřebu paměti během hovoru serverem (v bajtech). Pokud volání používá více, než je uvedeno, bude v rámci clusteru ukončeno. Nerestartuje se. A ztráta relace neovlivní ostatní klienty.

    Množství paměti pro procesy, do kterého je server systémem považován za produktivní - při dosažení této hodnoty přestane cluster server přijímat připojení. Počet infobází na proces - izoluje informační báze podle procesů. Po izolaci infobází (při zadání hodnoty - "1") jsou problémy obvykle vyřešeny.

    Počet připojení na proces – výchozí hodnota je „128“. Pokud má aktuální databáze velmi vysoké zatížení z úloh na pozadí, můžete toto číslo snížit například na „25“. S těmito nastaveními se také trochu změní nastavení clusteru:

    Úroveň odolnosti proti chybám - zobrazuje počet serverů, při jejichž poruše nedojde k pádu klientů. Zároveň budou automaticky spuštěny zálohovací služby v požadovaném počtu.

    Režim sdílení zátěže – má dvě možné možnosti. Pokud nastavíte "Priorita výkonu" - pak bude paměť serveru spotřebována více, aby se zvýšil výkon. Při výběru "Priorita podle paměti" - cluster 1C ušetří paměť.

    Základní nástroj

    Pro práci s databází je nutné použít nástroje MS SQL DBMS.

    Kontrola konfigurace

    Možná příčina chyby spočívá v nesprávných informacích obsažených v konfiguraci. Chcete-li to zkontrolovat, musíte provést příkaz "Zkontrolovat konfiguraci". (Neplést s testováním!). Před spuštěním je třeba zkontrolovat nastavení zaškrtávacího políčka (příznaku) - "logická integrita". Pokud je nalezena chyba, projeví se ve zprávě. A chyby budou odstraněny.

    Zkoumali jsme důvody nedostatku volné paměti na serveru 1C a možná řešení. Jedna z metod jistě problém vyřeší.

    Podívejme se podrobněji na možnosti opravy chyby „Nedostatek paměti“ v 1C 8.3.

    Metoda 1. Zvětšete velikost paměti adres

    Existuje omezení v přidělování adresové paměti pro software operačním systémem: pro 32bitový systém - 2 GB; pro 64bitový systém - 4 GB.

    Krok 1

    Chcete-li zvětšit velikost paměti adres, musíte provést následující: spusťte příkazový řádek s právy správce:

    • Start - Spustit - na příkazovém řádku zadejte CMD a stiskněte Enter:
    • Nebo klikněte pravým tlačítkem na tlačítko Start a vyberte Příkazový řádek (Admin).

    Krok 2

    Dále se dostaneme do příkazového dialogového okna, kde musíme zadat příkaz pro zvětšení paměti adresy. Do příkazového řádku zadejte BCDEdit /set raiseuserva xxxx, kde místo xxxx zadáme velikost virtuálního adresního prostoru v megabajtech. Například na 32bitových systémech se doporučuje 3072 MB:

    Krok 3

    Restartujeme počítač. Proveďme akce v programu 1C 8.3, které nebyly získány dříve.

    Krok 4

    Po provedení operací je lepší vrátit paměť adres na výchozí hodnotu. Chcete-li to provést, zadejte na příkazovém řádku BCDEdit /deletevalue raiseuserva:

    Restartujeme počítač.

    Metoda 2. Odstraňte dokumenty a adresáře označené k odstranění

    Na platformě 1C 8.3 to bylo možné pomocí naplánované úlohy.

    Smazání označených objektů vám umožní:

    1. Zvyšte výkon systému;
    2. Zmenšete velikost databáze.

    Krok 1. Vytvořte kopii databáze

    Otevřete položku: sekce Administrace - Nastavení programu - Podpora a údržba - Zálohování a obnova:

    Nastavte plán automatického kopírování databáze a klikněte na Dokončit:

    Další informace o tom, jak vytvořit záložní kopii 1C 8.3, najdete v našem výukovém videu:

    Krok 2. Odstraňte označené předměty

    Otevřete položku Automaticky mazat označené objekty podle plánu: sekce Administrace - Nastavení aplikace - Podpora a údržba - Plánované operace:

    Nastavili jsme plán automatického mazání označených objektů v 1C 8.3 ve vhodnou dobu. Například v době polední přestávky a klikněte na Hotovo:

    V důsledku provedených akcí se velikost databáze sníží, výkon systému se zlepší a chyba 1C „Nedostatek paměti“ by se neměla objevit.


    Ohodnoťte tento článek:

    Není možné vyjmenovat všechny situace, kdy dojde k chybě 1C „Nedostatek paměti“ (obr. 1). Zkusme identifikovat ty hlavní:

    • Při aktualizaci konfigurace;
    • Když se aplikace spustí;
    • Při generování zprávy;
    • Při provádění velkých kalkulací (zaúčtování dokladu "Kalkulace nákladů", "Uzávěrka měsíce" a podobně).

    Důvod je ve všech případech stejný - nedostatek fyzické paměti počítače. Zároveň přidání dalších proužků RAM do zařízení problém vždy nevyřeší.

    Co určuje množství dostupné paměti

    32bitové operační systémy mají jednu významnou vlastnost: bez ohledu na velikost paměti RAM a velikost stránkovacího souboru operační systém alokuje pro provoz konkrétní aplikace pouze 4 GB.

    Vzhledem k tomu, že polovina adresního prostoru virtuální paměti je alokována pro potřeby samotného systému, zbývají pro fungování aplikace pouze 2 GB. Když je program spuštěn, musí být adresní prostor virtuální paměti vyhrazen v jednom souvislém bloku. Když to není možné, objeví se okno (obr. 1).

    Jak zvětšit dostupnou paměť

    Bez přeinstalace operačního systému existují dvě možnosti nápravy situace:


    Pomocí těchto metod můžete zmenšit adresní prostor přidělený operačnímu systému na 1 GB a zvýšit paměť pro aplikaci na 3 GB.

    Pozornost! Ručním přidělováním paměti se můžete setkat s problémy při provozu osobního počítače až po úplné vypnutí systému.

    Odstraněním řádku ze souboru boot.ini nebo spuštěním příkazu s parametrem 2900 nahrazeným 2000 se systém vrátí do původního stavu.

    Je důležité pochopit, že tyto metody jsou pouze dočasným řešením problému, pro jeho definitivní odstranění je nutné převést databázi na 64bitovou platformu.

    Nedostatek paměti při generování zprávy

    Není to příliš časté, ale k této chybě dochází, když se objeví hlášení. V tomto případě je provedení zpracování generování tabulky zpožděno a nakonec skončí oknem jako na prvním obrázku.

    Než přejdete do nastavení operačního systému a změníte parametry alokace RAM, v tomto případě je lepší zkusit změnit nastavení sestavy. Změňte datum, změňte seskupení, přidejte výběr. Ve většině případů to pomáhá.

    Pokud se chyba nevyskytuje ve standardní sestavě (například na kartě účtu nebo rozvaze) a máte přístup ke zdrojovému kódu zpracování, zkontrolujte, zda se v dotazu negenerují dočasné tabulky. Zapsané v RAM a existující až do konce požadavku mohou výrazně sníst zdroje slabého počítače.

    Obecně platí, že aby se předešlo takovým situacím, důrazně se doporučuje zničit dočasné tabulky v dotazu, jakmile již nejsou potřeba.

    Únik paměti serveru

    V některých případech uživatelé obdrží zprávu zobrazenou na obr. 3

    Rýže. 3.

    O důvodech tohoto chování serveru bych chtěl mluvit samostatně.

    Obecně je sousloví „únik paměti“ poněkud nepřesné, lépe řečeno se paměť ukládá, vrství. Programy, které spouštějí procesy, je zapomínají včas ukončit. V důsledku toho se hromadí v paměti RAM.

    Druhým důvodem je fragmentace paměti. Pokud během provozu serveru dochází k intenzivní rezervaci a uvolňování paměti RAM, může v jednom z okamžiků nastat situace, kdy je množství volné paměti dostatečné, ale není možné zachytit souvislý blok adres paměti dostatečné velikosti.

    Druhý problém můžete vyřešit pomocí systémových utilit.

    V důsledku toho mohou:

    1. Vyskytují se problémy s připojením, jeho přerušení, padání programu (obr. 4)

    Obr.4

    1. Při vykládání infobáze se objevují chyby a zamrzání;
    2. V paměti obsazené procesy 1C dochází ke skokům.

    Chyby aktualizace

    K tomuto scénáři nedostatku paměti dochází při pokusu o aktualizaci konfigurace na nejnovější verzi. Může být spojeno jak s velkým množstvím spuštěných aplikací, tak s chybami v databázi.

    První kroky, které je třeba podniknout, když se vyskytne tento problém, je spustit aktualizovanou databázi v režimu konfigurátoru a restrukturalizovat ji (položka nabídky Administrace->Testování a opravy), i když je lepší provést celou řadu prací na opravách chyb a restrukturalizaci. -indexování tabulek.

    Jednou z nejčastějších chyb, které se vyskytují při práci s 1C 8.3, je „Nedostatek paměti“. Reálně k němu může dojít po spoustě událostí – aktualizace, zpracování velkých souborů, generování reportu, načítání dat a další. To znamená, že každý správce a vývojář 1C musí pochopit podstatu problému a být schopen jej opravit. Pouhé zvýšení paměti PC nebo pevného disku tento problém nevyřeší.

    Řešení problému na klientském počítači

    Důvody této chyby nejsou zcela v systému 1C, protože podobnou chybu můžete vidět v jiných aplikacích. Problém je v tom, že operační systémy rodiny Microsoft standardně přidělují určité množství paměti na aplikaci. Pro 32bitové systémy je tato hodnota nastavena na 2 GB, pro 64bitové systémy - 4 GB. Když software překročí tuto hodnotu, zobrazí se na monitoru chybové okno.

    Nejjednodušší způsob, jak se takových zpráv zbavit, je smazat objekty označené ke smazání v konfiguraci. To pomáhá zřídka, ale odstraňuje zbytečné váhání. Kromě toho je riziko těchto akcí minimální, protože nevyžaduje zásah do vnitřního nastavení systému Windows. Pokud odstranění nepomohlo, budete muset bojovat jinými metodami.

    Dalším řešením pro 32bitové systémy je přejít na 64bitové nebo alokovat více paměti aplikacím. První možnost je mnohem správnější, ale někdy to z různých důvodů není možné. Pak zbývá pouze možnost s níže uvedeným algoritmem akcí, ale měla by být používána velmi opatrně - mohou nastat značné problémy s výkonem celého systému.

    Tento algoritmus je poměrně jednoduchý:

    1. Otevřete příkazový řádek systému Windows. Použijte nabídku "Start" nebo kombinaci kláves Windows + R a zadejte příkaz "cmd";
    2. V zobrazeném okně zadejte příkaz „bcdedit / set raiseuserva 3200“ (například zvyšte limit na 3,2 GB). Limit se vyplatí zvyšovat opatrně a postupně;
    3. Po potvrzení úspěšného dokončení operace v okně příkazového řádku restartujte počítač a zkuste znovu provést kroky, které vedly k chybě. Pokud problém přetrvává a 1C stále havaruje, můžete limit znovu zvýšit;
    4. Po úspěšném dokončení operace bez chyby v 1C obnovte výchozí omezení systému Windows pomocí příkazu "bcdedit / deletevalue raiseuserva". Toto je nezbytný krok, aby OS nenarušoval jeho výkon kvůli 1C a dalším aplikacím.

    Toto řešení umožňuje provést operaci, kterou nelze provést kvůli chybě 1C „Nedostatek paměti“. Můžete jej použít pouze v naléhavých případech, kdy je třeba operaci provést právě teď. Za jiných okolností je lepší zkusit spustit 1C na 64bitové platformě a operaci zopakovat tam.

    Mnohem závažnější je zpráva, že během upgradu nebo rozsáhlé práce na serveru není dostatek paměti. Problém může být v předčasném ukončování procesů spouštěných různým softwarem, v důsledku čehož dochází k jejich „vrstvení“ a hromadění ve virtuální paměti. Druhým zdrojem takové chyby je intenzivní práce různých programů s rezervací a uvolněním paměti. K řešení těchto problémů existuje celá řada softwaru, ale praxe ukazuje, že způsobuje odpojení a pády 1C.


    Takové chyby vás nutí přemýšlet, zda je server 1C dostatečně výkonný. Navýšení její kapacity firmě prospěje, ale takovou chybu lze obejít jinými způsoby, které nevyžadují injekci finančních prostředků.

    Samozřejmě byste je neměli používat neustále, ale jednoho dne mohou v případě potřeby pomoci naléhavě provést práci náročnou na zdroje. Mezi oblíbené metody, které mohou pomoci vyřešit nedostatek paměti na serveru, patří:

  • Restartování pracovních postupů 1C, které sníží použitou paměť. Tato možnost je vhodná pouze pro zkušené administrátory, kteří rozumí konzole pro správu serveru 1C;
  • Pomocí protokolu technologie vyhledejte tabulku, která se načítá s chybou „nedostatek paměti“ během aktualizace nebo jiné operace. Pokud při práci s tabulkou "config" došlo k chybě, zkontrolujte konfiguraci s příznakem "Kontrola logické integrity konfigurace". Tuto funkci najdete v konfigurátoru v menu "Konfigurace".
  • K další běžné chybě 1C dochází, když na pevném disku serveru není dostatek místa. Dočasné tabulky zabírají hodně místa, a pokud není dostatek místa, zobrazí se správci chyba "Není dostatek volné paměti k dokončení operace." V tomto případě je obtížné poskytnout přesnou radu, protože server nebo clusterové zařízení se může v různých možnostech výrazně lišit. Mezi standardní řešení, která v takových případech pomáhají, patří restart serveru, zvětšení volného místa, optimalizace dotazů, upgrade verze.


    Ve společnostech s velkým počtem uživatelů se chyba „Nedostatek volné paměti na serveru 1C:Enterprise 8.3“ vyskytuje poměrně často. Velkým problémem a předpokladem toho je nedostatečná analýza požadovaného výkonu. Při implementaci 1C proto věnujte velkou pozornost dostatečnému výkonu serverů, abyste v budoucnu nemuseli upravovat výkon na úkor stability.