itthon / A PC elsajátítása / Az 1s terminál kapcsolata kifogyott a virtuális memóriából. Kérdése van, vagy tanácsadó segítségére van szüksége?

Az 1s terminál kapcsolata kifogyott a virtuális memóriából. Kérdése van, vagy tanácsadó segítségére van szüksége?

Ez a hiba meglehetősen jellemző az 1C 8.3-ra, sok felhasználó találkozik vele.

Okoz

Valójában jó néhány oka lehet annak, hogy a „Nincs elég memória 1C” hibaüzenet megjelenhet. Gyakran adott hiba akkor fordul elő hibás frissítés konfiguráció 1C Enterprise. Ugyanolyan ritkán, egy nagy adatbázis betöltése vagy egy nagyon nagy fájl feldolgozása is hibát eredményez.

Mivel ezeknél a műveleteknél a hiba oka a címmemória hiánya, ezt nem lehet megoldani az 1C program telepítésére szolgáló berendezés frissítésével.

A lényeg, hogy az operációs rendszer szoftver korlátozott mennyiségű címmemória elérése, jellemzően 2 gigabájt harminckét bites operációs rendszerek és 4 gigabájt 64 bites operációs rendszerek esetén.

Kérdése van, tanácsadó segítségére van szüksége?

Hogyan lehet növelni a címmemória mennyiségét?

Nem nehéz bővíteni az 1C program számára elérhető címmemóriát. Ehhez meg kell hívnia a parancssort. Ezt többféleképpen is megtehetjük, ezek közül a legegyszerűbb, ha jobb gombbal kattintunk a Start menü ikonjára - "Parancssor"
A megjelenő ablakban írja be a következőket:

ahol a számérték a kívánt memóriamennyiség, és nyomja meg az "Enter" billentyűt. Ezt követően újra kell indítania a számítógépet. Ezután megpróbálhatja újra a sikertelen műveletet. Ha a hiba továbbra is fennáll, javasoljuk, hogy forduljon szakemberhez.
Programozóink szívesen adnak tanácsot és segítenek Önnek.

Lehetetlen felsorolni az összes olyan helyzetet, amikor a „Nincs elég memória” (1. ábra) 1C hibaüzenet. Próbáljuk meg azonosítani a főbbeket:

  • A konfiguráció frissítésekor;
  • Amikor az alkalmazás elindul;
  • Jelentés generálásakor;
  • Nagy számítások végrehajtásakor (a „Költségszámítás”, „Hónap zárása” és így tovább dokumentum feladása).

Az ok minden esetben ugyanaz - hiánya fizikai memória számítógép. Ugyanakkor további csíkok hozzáadása a készülékhez véletlen hozzáférésű memória nem mindig oldja meg a problémát.

Mi határozza meg a rendelkezésre álló memória mennyiségét

A 32 bites operációs rendszereknek van egy jelentős tulajdonsága: a RAM mennyiségétől és a lapozófájl méretétől függetlenül az operációs rendszer csak 4 GB-ot foglal le egy adott alkalmazás működéséhez.

Tekintettel arra, hogy a virtuális memória címterületének fele magának a rendszernek van lefoglalva, csak 2 GB marad az alkalmazás működéséhez. Amikor egy program fut, a virtuális memória címterét egy összefüggő blokkban kell lefoglalni. Ha ez nem lehetséges, felugrik egy ablak (1. ábra).

Hogyan lehet növelni a rendelkezésre álló memóriát

Újratelepítés nélkül operációs rendszer Két lehetőség van a helyzet javítására:


Ezekkel a módszerekkel csökkentheti az operációs rendszer számára lefoglalt címterületet 1 GB-ra, az alkalmazás memóriáját pedig 3 GB-ra növelheti.

Figyelem! A memória kézi lefoglalásával működési problémák léphetnek fel. személyi számítógép egészen a rendszer teljes leállításáig.

Ha eltávolít egy sort a boot.ini fájlból, vagy futtatja a 2900-as paramétert 2000-re cserélt parancsot, a rendszer visszatér a kezdeti állapot.

Fontos megérteni, hogy ezek a módszerek csak ideiglenes megoldást jelentenek a problémára, végső kiküszöböléséhez az adatbázist át kell vinni egy 64 bites platformra.

Elfogyott a memória jelentés generálásakor

Nem túl gyakori, de ez a hiba jelentések előfordulásakor jelentkezik. Ebben az esetben a formázási feldolgozás végrehajtása táblázatos dokumentum megfeszíti, és a végén ablakkal végződik, mint az első ábrán.

Mielőtt belemenne az operációs rendszer beállításaiba és megváltoztatná a RAM-kiosztási paramétereket, ebben az esetben jobb, ha megpróbálja megváltoztatni a jelentés beállításait. Dátum módosítása, csoportosítás módosítása, kijelölés hozzáadása. A legtöbb esetben ez segít.

Ha a hiba nem szabványos jelentésben (például számlakártyán vagy mérlegben) fordul elő, és hozzáfér a feldolgozási forráskódhoz, ellenőrizze, hogy nem generálnak-e ideiglenes táblákat a lekérdezésben. A RAM-ba írva és a kérés végéig fennállva jelentősen felemésztik az erőforrásokat gyenge számítógép.

Általában az ilyen helyzetek elkerülése érdekében erősen ajánlott az ideiglenes táblák megsemmisítése a lekérdezésben, amint már nincs szükség rájuk.

Szerver memória szivárog

Egyes esetekben a felhasználók a 3. ábrán látható üzenetet kapnak

Rizs. 3.

A szerver ilyen viselkedésének okairól külön szeretnék beszélni.

Általánosságban elmondható, hogy a "memóriaszivárgás" kifejezés némileg pontatlan, jobb, ha azt mondjuk, hogy a memória tárolva, rétegesen történik. A folyamatokat elindító programok elfelejtik azokat időben leállítani. Ennek eredményeként felhalmozódnak a RAM-ban.

A második ok a memória töredezettsége. Ha a szerver működése során intenzív RAM lefoglalás és felszabadítás történik, akkor az egyik pillanatban előállhat olyan helyzet, amikor a szabad memória elegendő, de nem lehet megfelelő méretű memóriacímek folyamatos blokkját rögzíteni. .

A második probléma megoldható rendszer segédprogramjait.

Ennek eredményeként:

  1. Problémák vannak a kapcsolattal, megszakad, a program összeomlik; (4. ábra)

4. ábra

  1. Hibák és lefagyások jelennek meg az infobázis kirakásakor;
  2. Vannak ugrások az 1C folyamatok által elfoglalt memóriában.

Frissítési hibák

Ez a memória hiánya akkor fordul elő, amikor megpróbálja frissíteni a konfigurációt a legújabb kiadásra. Nagy számhoz köthető futó alkalmazások, és az adatbázis hibáival.

A probléma felmerülésekor az első lépés a frissített adatbázis elindítása konfigurátor módban és újrastrukturálása (Adminisztráció->Tesztelés és javítás menüpont), bár jobb, ha a hibák kijavításán és újraindításán teljes körű munkát végez. -indexelő táblázatok.

Hibák fordulnak elő. Megvizsgáljuk az egyiket, amely a „Nincs elég szabad memória az 1C:Enterprise szerveren” témának szentelve.

A „Nincs elég szabad memória az 1C:Enterprise szerveren” hiba elhárítása.

A munkafolyamatok memóriájának mennyisége az 1C ügynökkiszolgálón végzett munka során nem végtelen. A maximális terhelésnél a felhasználó egy üzenetet lát, amely örömet okoz az újdonságával - "Nincs elég szabad memória az 1C: Enterprise szerveren."


Először is az ilyen üzenetek okairól - miért nincs elég memória. Több is lehet belőlük:

Elégtelen vaserő

Ha legfeljebb öt ember dolgozik a rendszerben, akkor elegendő egy nyolc gigabájtos számítógép két csavarral (az egyiken - SZERVER, a másodikon - SQL) és a kiegészítőleg telepített chipekkel. De egy másik dolog - körülbelül harminc felhasználó, több ezer elsődleges dokumentum. Itt az SQL-t is át kell helyezni egy külön szerverre, és egy terminálkiszolgáló már nem tud megbirkózni.

Memória hiánya az extra információkhoz

A tipikus konfigurációk megpróbálják szó szerint leírni mindazokat a folyamatokat, amelyeket a fejlesztő el tud képzelni az 1C:Enterprise nevű univerzális könyvelési eszköz létrehozása során. Ezért egy adott felhasználó további poggyászt kap metaadat-objektumok, további SQL-táblák, fel nem használt részletek formájában. Mindezek felesleges regisztrálása és újraindexelése a program regisztereiben hosszú időt és sok helyet igényel.

Kódolási hibák

A szerver túlterhelés akkor is előfordul, ha a programozók (néha) nem értenek bizonyos folyamatokat, és bevezetik saját „mankóikat”, amelyek megnövelik a feladatok elvégzésének idejét (és a munkafolyamatok számát is).

Programhibák

Többek között, és gyakran ez a fő ok - az 1C programban hihetetlenül sok belső hiba található. Néhányukat a következő kiadásokban javítják. Számos fórum van szentelve ezeknek a hibáknak, ahol az adminok a következő trükkökről beszélgetve viccesen azt mondják, hogy valószínűleg csak tadzsik (Dzhamshut és Ravshan) dolgoznak egy es-ben.

Tehát mi a teendő az 1C szerverrel

Mivel a probléma okai eltérőek lehetnek, különböző módokon is ki lehet lépni a helyzetből:

A szerverszolgáltatás újraindítása

A leggyorsabb és egyszerű módon A megoldás a szerverszolgáltatás újraindítása. Parancssorból Microsoft Windows(cmd): a leállításhoz a parancs végrehajtásra kerül - net stop "1C:Enterprise 8.3 (vagy az Ön verziója) Server Agent", az indításhoz pedig - net start "1C:Enterprise 8.3 (verziójának megfelelően) Server Agent". Egy ilyen megoldás nem szünteti meg teljesen a problémát - leggyakrabban a hiba megismétlődik. Az ismétlődések gyakorisága az ügyfelek számától és a dolgozói folyamatok számától függ.

FONTOS. Az újraindításhoz rendelkeznie kell a megfelelő jogosultságokkal.

Automatikus újraindítás és a fürt beállításai

Néha még egy futó munkafolyamat is elfoglalhatja szinte a teljes RAM-ot. Ezt a problémát úgy oldja meg, hogy növeli a számukat a fürt beállításaiban. Minden tizenöt-harminc felhasználóhoz hozzávetőleg egy folyamat kerül hozzáadásra.

Újraindítási időköz. Röviddel az előző befejezése előtt elindul egy új folyamat, az rphost.exe. - A régi kapcsolatai átkerülnek rá. Megengedett memóriaméret - ha ezt az értéket túllépjük, egy második visszaszámláló indul el.

Intervallum a hangerőkorlát túllépéséhez – ha az időzítő túllépi ezt az értéket, új folyamat indul el. És a régi kapcsolatai kötődnek hozzá. A régi pedig inaktívnak van jelölve. Ki folyamatok leállítása után - miután a paraméter értéke elhaladt a munkafolyamat inaktívként való megjelölése után, az operációs rendszer leállítja azt. Ha ez a paraméter "0"-ra van állítva, akkor az összes inaktív folyamat nem fejeződik be automatikusan.

FONTOS. Ez a beállítás jellemző, hogy csak azt az ügyfelet szakítja meg az adatbázissal, amelyik a hibás jelentést indította el. A többit pedig simán áthelyezik új kapcsolatokra (alapjuk megszakítása nélkül).

Munkavállalói folyamatok száma

Ha az rphost.exe túl van terhelve háttérfeladatokkal, és nem jön létre új folyamat, ellenőrizze a beállításokat:

Max. A munkafolyamat-memória az összes folyamat összesített memóriája. Bájtban mérve. Ha rossz értéket állít be (nem megfelelő a normál működéshez), akkor mindenki a „Nincs elég szabad memória az 1s szerveren” hibaüzenetet kapja.

Biztonságos memóriafelhasználás 1 hívásonként – szabályozza a memóriafelhasználást a szerver hívása során (byte-ban). Ha egy hívás a megadottnál többet használ, akkor a fürtön belül megszakad. Nem indul újra. A munkamenet elvesztése pedig nem lesz hatással a többi ügyfélre.

A folyamatok számára rendelkezésre álló memória mennyisége, ameddig a szervert a rendszer produktívnak tekinti – ennek az értéknek az elérésekor a fürtszerver leállítja a kapcsolatok fogadását. Mennyiség információs bázisok folyamatonként – folyamatok szerint izolálja az IS-t. Az infobázisok elkülönítése után (az érték megadásakor - "1") a problémák általában megoldódnak.

A kapcsolatok száma folyamatonként – az alapértelmezett érték "128". Ha az aktuális bázisnak nagyon nagy terhelése van háttérmunkák, akkor csökkentheti ezt a számot például „25”-re. Ezekkel a beállításokkal a fürt beállítása is módosul egy kicsit:

Hibatűrés szintje - a szerverek számát mutatja, amelyek meghibásodása esetén nem fog összeomlani a kliens. Ezzel egyidejűleg a biztonsági mentési szolgáltatások is automatikusan elindulnak a kívánt számban.

Terhelésmegosztás mód - kettő van lehetséges opciók. Ha beállítja a "Teljesítmény prioritást" - akkor a szerver memóriája többet fog igénybe venni a teljesítmény növelése érdekében. A "Memória szerinti prioritás" kiválasztásakor az 1C fürt memóriát takarít meg.

Alap eszköz

Az adatbázis kezeléséhez MS SQL DBMS eszközök használata szükséges.

Konfiguráció ellenőrzése

Valószínűleg a hiba oka a konfigurációban található hibás információkban rejlik. Az ellenőrzéshez végre kell hajtani a "Konfiguráció ellenőrzése" parancsot. (Nem tévesztendő össze a teszteléssel!). A végrehajtás előtt ellenőriznie kell a jelölőnégyzet (jelző) beállítását - "logikai integritás". Ha hibát talál, az megjelenik az üzenetben. És a hibák el lesznek távolítva.

Megvizsgáltuk a szabad memória hiányának okait az 1C szerveren és ennek lehetséges megoldásait. Az egyik módszer biztosan megoldja a problémát.

Az 1C 8.3-mal végzett munka során előforduló egyik leggyakoribb hiba a „Nincs elég memória”. Valójában ez sok esemény után fordulhat elő - frissítés, nagy fájlok feldolgozása, jelentéskészítés, adatok betöltése és egyebek. Ez azt jelenti, hogy minden 1C rendszergazdának és fejlesztőnek meg kell értenie a probléma lényegét, és meg kell tudnia oldani. Egyszerű nagyítással PC RAM ill merevlemez ezt a problémát nem lehet megoldani.

Probléma megoldása ügyfélszámítógépen

Ennek a hibának az okai nem teljesen az 1C rendszerben vannak, mivel hasonló hibát láthat más alkalmazásokban. A probléma az, hogy a Microsoft család operációs rendszerei alapértelmezés szerint alkalmazásonként bizonyos mennyiségű memóriát foglalnak le. 32 bites rendszerek esetén ez az érték 2 GB, 64 bites rendszerek esetén 4 GB. Ha a szoftver túllépi ezt az értéket, hibaablak jelenik meg a monitoron.

Az ilyen üzenetek legegyszerűbb módja a törlésre kijelölt objektumok törlése a konfigurációban. Ez ritkán segít, de kiküszöböli a felesleges tétovázást. Ezen túlmenően ezen intézkedések kockázata minimális, mivel nem igényel belső beavatkozást Windows beállítások. Ha az eltávolítás nem segített, akkor más módszerekkel kell küzdenie.

A 32 bites rendszerek másik megoldása a 64 bitesre váltás, vagy több memória lefoglalása az alkalmazások számára. Az első lehetőség sokkal helyesebb, de néha különböző okok miatt nem lehetséges. Ezután csak a műveletek algoritmusával rendelkező lehetőség marad, amelyet alább mutatunk be, de nagyon óvatosan kell használni - jelentős problémák léphetnek fel a teljes rendszer teljesítményével.

Ez az algoritmus nagyon egyszerű:

  1. Nyissa meg a parancsot Windows vonal. Használja a start menüt vagy kombinációját Windows billentyűk+ R és írja be a "cmd" parancsot;
  2. A megjelenő ablakban írja be a "bcdedit / set growthuserva 3200" parancsot (például növelje a korlátot 3,2 GB-ra). Érdemes óvatosan és fokozatosan növelni a limitet;
  3. Miután a parancssori ablakban megerősítette a művelet sikeres befejezését, indítsa újra a számítógépet, és próbálja meg újra végrehajtani a hibához vezető lépéseket. Ha a probléma továbbra is fennáll, és az 1C továbbra is összeomlik, ismét növelheti a korlátot;
  4. Miután a művelet sikeresen befejeződött, hiba nélkül az 1C-ben, állítsa vissza az alapértelmezett Windows-korlátozásokat a "bcdedit / deletevalue growthuserva" paranccsal. Ez egy szükséges lépés, hogy az operációs rendszer ne sértse a teljesítményét az 1C és más alkalmazások érdekében.

Ez a megoldás lehetővé teszi olyan művelet végrehajtását, amelyet a „Nincs elég memória” 1C hiba miatt nem lehet végrehajtani. Csak sürgősségi esetekben használhatja, amikor a műveletet éppen most kell elvégezni. Más körülmények között jobb, ha megpróbálja futtatni az 1C-t 64 bites platformon, és ott megismételni a műveletet.

Sokkal komolyabb az az üzenet, hogy frissítés vagy nagyszabású munka során nincs elég memória a szerveren. A probléma a különböző szoftverek által elindított folyamatok idő előtti leállásában lehet, aminek következtében „rétegződés” és felhalmozódás történik a virtuális memóriában. Az ilyen hiba második forrása a különböző programok intenzív munkája a memória lefoglalásával és felszabadításával. Számos szoftver létezik ezeknek a problémáknak a megoldására, de a gyakorlat azt mutatja, hogy megszakadásokat és az 1C összeomlását okozza.


Az ilyen hibák arra késztetik a kérdést, hogy az 1C szerver elég erős-e. A kapacitás növelése a vállalat számára előnyös, de egy ilyen hiba más módon is megkerülhető, amely nem igényel forrásinjekciót.

Természetesen nem szabad állandóan használni őket, de egy napon segíthetnek, ha kell, sürgősen erőforrásigényes munkákat végezni. A népszerű módszerek, amelyek segíthetnek megoldani a szerver memóriahiányát, a következők:

  • Az 1C munkafolyamatok újraindítása, ami csökkenti a felhasznált memóriát. Ez az opció csak tapasztalt rendszergazdák számára alkalmas, akik ismerik az 1C szerver adminisztrációs konzolját;
  • A technológiai napló segítségével keressen meg egy táblát, amely frissítés vagy egyéb művelet során „elfogy a memória” hibával töltődik be. Ha hiba történt a "config" táblával végzett munka során, akkor ellenőrizze a konfigurációt a "Konfiguráció logikai integritásának ellenőrzése" jelzővel. Ezt a funkciót a konfigurátorban a "Konfiguráció" menüben találja meg.
  • Egy másik gyakori 1C hiba akkor fordul elő, ha nincs elég hely a szerver merevlemezén. Az ideiglenes táblák sok helyet foglalnak el, és ha nincs elég hely, a rendszergazda a "Nincs elég szabad memória a művelet befejezéséhez" hibát látja. Ebben az esetben nehéz pontos tanácsot adni, mivel a szerver vagy a fürt eszköze jelentősen eltérhet egymástól különböző lehetőségeket. Az ilyen esetekben segítő standard megoldások között megtalálható a szerver újraindítása, növelése szabad hely, lekérdezés optimalizálás, verziófrissítés.


    A nagy számú felhasználóval rendelkező vállalatoknál a "Nincs elég szabad memória az 1C:Enterprise 8.3 szerveren" hiba gyakran előfordul. Nagy probléma és ennek előfeltétele a szükséges teljesítmény elégtelen elemzése. Ezért az 1C megvalósítása során fordítson nagy figyelmet a szerverek elegendő teljesítményére, hogy a jövőben ne kelljen a teljesítményt a stabilitás rovására módosítania.

    A „Nincs elég memória” hiba az 1C 8.3 és 8.2 verziókban nem olyan ritka. Megtalálható a konfigurátorban is (például a konfigurációk összehasonlításakor), valamint az 1C:Enterprise módban, amikor időigényes feldolgozást végez: például egy nagy base64 fájl írásakor.

    Ez a hiba nem csak az 1C programban, hanem a Windows operációs rendszer más programjaiban is előfordulhat.

    A helyzet az, hogy a 32 bites operációs rendszerekben alapértelmezés szerint 2 Gigabyte a különböző programoknak és ugyanennyi az operációs rendszernek. A 64 bites operációs rendszerekben az alkalmazások számára lefoglalt memória mennyisége már 4 Gigabyte.

    A fentiekből következően növelnie kell az alkalmazások számára lefoglalt címmemória méretét, amely az 1C program. Ennek két módja van: áttérni 32-ről bit rendszer 64 bitesre, vagy növelje az eredetileg lefoglalt címmemória mennyiségét.

    Természetesen az első módszer jobb és előnyösebb, de ha be Ebben a pillanatban, vagy egyáltalán nem tudod használni, akkor használhatod a másodikat.
    kezdőnap menj ide parancs sor operációs rendszer. Ehhez lépjen a Start menübe, és írja be a "cmd" kifejezést a keresősávba.

    Egy programkereső jelenik meg előtted. Válassza ki a "cmd" nevűt.

    A parancssort a Windows + R gyorsbillentyűk kombinációjával is megnyithatja.

    A megnyíló ablakban írja be a következő parancsot, majd nyomja meg az "Enter" billentyűt:

    bcdedit /set growthuserva 3200

    Ebben az esetben a címmemória mennyiségét 3200 megabájtra növeli.

    Miután sikerült, erősen ajánlott a korábbi mennyiségű címmemória visszaállítása. Ez az intézkedés ideiglenes, mivel amikor a memóriát lefoglalják az alkalmazások számára, az operációs rendszernek kevesebb van belőle. Emiatt a Windows stabilitása veszélybe kerülhet.

    A címmemória alapértelmezett értékre való visszaállításához használhatja a következő parancsot, amelyet szintén a parancssorban kell megadni:

    bcdedit /deletevalue growthuserva

    Felhívjuk figyelmét, hogy az 1C-ben gyakran előforduló „Memória megtelt” hibája esetén a megjelölt objektumok törlése is segíthet. Lehet, hogy a program rengeteget halmozott fel belőlük, és nehéz a programnak ilyen mennyiségű adatot feldolgozni. Ha ez a módszer nem segített, akkor növelnie kell a Windows operációs rendszer bitmélységét.