Trūksta atminties nereikalingai informacijai.

Neįmanoma išvardyti visų situacijų, kai įvyksta 1C „Nepakanka atminties“ klaida (1 pav.). Pabandykime nustatyti pagrindinius:

  • Atnaujinant konfigūraciją;
  • Pradėjus taikyti programą;
  • Kuriant ataskaitą;
  • Atliekant didelius skaičiavimus (atliekant dokumentą „Išlaidų skaičiavimas“, „Mėnesio uždarymas“ ir pan.).

Priežastis visais atvejais ta pati – trūkumas Fizinė atmintis kompiuteris. Tuo pačiu metu pridedant prie įrenginio papildomų juostelių laisvosios kreipties atmintis, ne visada išsprendžia problemą.

Kas lemia laisvos atminties dydį

32 bitų operacinės sistemos turi vieną reikšmingą savybę: nepriklausomai nuo RAM kiekio ir ieškos failo dydžio, operacinė sistema skiria tik 4 GB konkrečios programos paleidimui.

Atsižvelgiant į tai, kad pusė adreso erdvės Virtuali atmintis yra skiriami pačios sistemos poreikiams, aplikacijai paliekant tik 2GB. Kai programa veikia, virtualios atminties adresų erdvė turi būti rezervuota viename gretimame bloke. Kai tai neįmanoma, iššoka langas (1 pav.).

Kaip padidinti turimą atmintį

Iš naujo neįdiegus operacinės sistemos, yra dvi galimybės ištaisyti situaciją:


Naudodami šiuos metodus galite sumažinti operacinei sistemai skirtą adresų erdvę iki 1 GB, padidindami programos atmintį iki 3 GB.

Dėmesio! Rankinis atminties paskirstymas gali sukelti veikimo problemų. Asmeninis kompiuteris kol sistema visiškai sustos.

Pašalinus eilutę iš failo boot.ini arba paleidus komandą ir pakeitus parametrą 2900 į 2000, sistema grąžina pradinė būsena.

Svarbu suprasti, kad šie metodai yra tik laikinas problemos sprendimas, norint visam laikui ją pašalinti, reikia perkelti duomenų bazę į 64 bitų platformą.

Nepakanka atminties generuojant ataskaitą

Nelabai dažnai, bet ši klaida įvyksta, kai atsiranda ataskaitos. Šiuo atveju kartos apdorojimas skaičiuoklės dokumentas užsitęsia ir galiausiai baigiasi langu, kaip pirmame paveikslėlyje.

Prieš pereinant prie operacinės sistemos nustatymų ir keičiant RAM paskirstymo parametrus, tokiu atveju geriau pabandyti pakeisti ataskaitos nustatymus. Pakeiskite datą, pakeiskite grupes, pridėkite pasirinkimą. Daugeliu atvejų tai padeda.

Jei klaida neįvyksta standartinėje ataskaitoje (pvz., sąskaitos kortelėje ar balanse) ir yra prieiga prie pirminis kodas apdorojimą, patikrinkite, ar užklausoje nėra suformuotos laikinos lentelės. Įrašyti į RAM ir egzistuojantys iki užklausos pabaigos, jie gali žymiai sunaudoti silpno kompiuterio išteklius.

Apskritai, norint išvengti tokių situacijų, labai rekomenduojama sunaikinti laikinas lenteles užklausoje iškart po to, kai jos nebereikalingos.

Atminties nutekėjimas serveryje

Kai kuriais atvejais vartotojai gauna pranešimą, parodytą 3 pav

Ryžiai. 3.

Norėčiau atskirai pakalbėti apie tokio serverio elgesio priežastis.

Apskritai frazė „atminties nutekėjimas“ yra šiek tiek netiksli, geriau sakyti, kad atmintis yra saugoma, sluoksniuota. Programos, kurios paleidžia procesus, pamiršta juos laiku nutraukti. Dėl to jie kaupiasi RAM.

Antroji priežastis – atminties suskaidymas. Jei serverio veikimo metu vyksta intensyvus operatyviosios atminties rezervavimas ir atleidimas, vienu metu gali susidaryti situacija, kai laisvos atminties pakanka, tačiau ištisinio pakankamo dydžio atminties adresų bloko užfiksuoti neįmanoma.

Antroji problema gali būti išspręsta naudojant sistemos komunalinės paslaugos.

Dėl to jie gali:

  1. Kyla problemų dėl ryšio, nutrūksta, sugenda programa; (4 pav.)

4 pav

  1. Iškraunant informacinę bazę atsiranda klaidų ir užšalimų;
  2. Atmintyje, kurią užima 1C procesai, yra šuolių.

Atnaujinimo klaidos

Ši mažos atminties parinktis atsiranda, kai bandote atnaujinti konfigūraciją į dabartinį leidimą. Jis gali būti susijęs su daugybe veikiančių programų arba su duomenų bazės klaidomis.

Pirmas veiksmas iškilus šiai problemai yra paleisti atnaujintą duomenų bazę konfigūratoriaus režimu ir atlikti jos pertvarkymą (meniu elementas Administravimas->Testavimas ir taisymas), nors geriau atlikti visą eilę klaidų taisymo ir lentelių indeksavimo darbų. .

Klaida „Trūksta atminties“ 1C 8.3 ir 8.2 versijose nėra tokia reta. Jį taip pat galima rasti konfigūravimo priemonėje (pavyzdžiui, lyginant konfigūracijas), taip pat 1C:Enterprise režimu, kai atliekamas daug darbo reikalaujantis apdorojimas: pavyzdžiui, rašant didelį base64 failą.

Ši klaida gali atsirasti ne tik 1C programoje, bet ir kitose „Windows“ operacinės sistemos programose.

Reikalas tas, kad 32 bitų operacinėse sistemose pagal nutylėjimą yra 2 gigabaitai įvairioms programoms ir tiek pat operacinės sistemos. 64 bitų OS programoms skiriamos atminties kiekis jau yra 4 gigabaitai.

Vadovaudamiesi tuo, kas išdėstyta pirmiau, turite padidinti programoms skirtos adresų atminties dydį, tai yra 1C programa. Tai galima padaryti dviem būdais: perjungti iš 32 bitų sistemos į 64 bitų arba padidinti iš pradžių skirtą adresų atminties kiekį.

Žinoma, pirmasis metodas yra geresnis ir pageidautinas, bet jei Šis momentas, arba visai negalite jo naudoti, tuomet galite naudoti antrąjį.
Pradžios diena, eikite į operacinės sistemos komandų eilutę. Norėdami tai padaryti, eikite į meniu Pradėti ir paieškos juostoje įveskite „cmd“.

Prieš jus bus rodoma programų paieška. Pasirinkite tą, kuris vadinamas „cmd“.

Taip pat galite atidaryti komandų eilutę naudodami karštųjų klavišų derinį „Windows“ klavišai+R.

Atsidariusiame lange įveskite šią komandą ir paspauskite „Enter“:

bcdedit /set expanduserva 3200

Tokiu atveju adresų atminties kiekį padidinsite iki 3200 megabaitų.

Kai pasiseks, primygtinai rekomenduojama atkurti ankstesnį adresų atminties kiekį. Ši priemonė yra laikina, nes paskirstant atmintį programoms operacinė sistema turi mažiau atminties. Tai gali pakenkti „Windows“ stabilumui.

Norėdami atkurti adreso atminties numatytąją reikšmę, galite naudoti šią komandą, kuri taip pat įvedama komandinėje eilutėje:

bcdedit /deletevalue padidintiuserva

Atkreipkite dėmesį, kad esant įprastai 1C klaidai „Baigėsi atminties“, pažymėtų objektų ištrynimas taip pat gali padėti. Galbūt programoje jų susikaupė daug ir programai sunku apdoroti tokius duomenų kiekius. Jei šis metodas nepadeda, turėtumėte padidinti „Windows“ operacinės sistemos bitumą.

Pažvelkime atidžiau į 1C 8.3 klaidos „Nepakanka atminties“ ištaisymo parinktis.

1 būdas: padidinkite adresų atminties dydį

Adreso atminties paskirstymas yra ribotas programinė įranga Operacinė sistema: 32 bitų sistemai - 2 GB; 64 bitų sistemai - 4 GB.

1 žingsnis

Norėdami padidinti adresų atminties dydį, turite atlikti šiuos veiksmus: paleiskite komandų eilutę administratoriaus teisėmis:

  • Pradėti – Vykdyti – komandų eilutėje įveskite CMD ir paspauskite Enter:

2 žingsnis

Tada atsiduriame dialogo komandų lange, kuriame turime įvesti komandą, kad padidintume adreso atmintį. Komandinėje eilutėje įveskite BCDEdit /set expanduserva xxxx, kur vietoj xxxx nurodome virtualios adreso erdvės dydį megabaitais. Pavyzdžiui, 32 bitų sistemose rekomenduojama 3072 MB:

3 veiksmas

Perkraukite kompiuterį. Atlikime 1C 8.3 programoje veiksmus, kurių anksčiau nebuvo galima.

4 veiksmas

Atlikus operacijas, geriau grąžinti adreso atmintį į numatytąją reikšmę. Norėdami tai padaryti, komandų eilutėje įveskite BCDEdit /deletevalue growthuserva:

Perkraukite kompiuterį.

2 būdas. Ištrinkite dokumentus ir katalogus, pažymėtus ištrinti

1C 8.3 platformoje tapo įmanoma naudoti reguliavimo užduotis.

Pašalinus pažymėtus objektus, galite:

  1. Padidinti sistemos našumą;
  2. Sumažinkite duomenų bazės dydį.

1 veiksmas. Sukurkite duomenų bazės kopiją

Atidarykite elementą: skyrių Administravimas – Programos nustatymai – Palaikymas ir priežiūra – Atsarginė kopija ir atkūrimas:

Nustatykite automatinio duomenų bazės kopijavimo tvarkaraštį ir spustelėkite Baigti:

Daugiau informacijos, kaip tai padaryti atsarginė kopijaŽiūrėkite 1C 8.3 mūsų vaizdo pamokoje:

2 veiksmas. Ištrinkite pažymėtus objektus

Atidaryti elementą Automatiškai ištrinti pažymėtus objektus pagal grafiką: skyrius Administravimas – Programos nustatymai – Palaikymas ir priežiūra – Įprastos operacijos:

Tvarkaraščio sudarymas automatinis pašalinimas pažymėtus objektus 1C 8.3 patogiu laiku. Pavyzdžiui, per pietų pertrauką spustelėkite Baigti:

Dėl šių veiksmų duomenų bazės dydis sumažės, sistemos našumas pagerės, o 1C „Nepakankama atminties“ klaida neturėtų atsirasti.


Įvertinkite šį straipsnį:

Klaida „Jūsų kompiuteryje nepakanka atminties“ atsiranda dėl RAM ir virtualios atminties trūkumo. Šiuo atžvilgiu labiausiai tikėtinos priežastys, galinčios sukelti šią situaciją, yra šios:

  • Tikrai trūksta fizinės RAM;
  • Šiuo metu kompiuteryje veikia daug procesų (tai gali būti ir programos, ir seansai veikiančių programų viduje, pavyzdžiui, naršyklės skirtukai);
  • Kietasis diskas beveik visiškai užimtas – tokiu atveju ieškos failas neveiks tinkamai;
  • Taip pat yra programų, kurios gali sukelti vadinamąjį „atminties nutekėjimą“ – situaciją, kai programa užima visą laisvą vietą savo užduotims atlikti.

Dėl šių priežasčių operacinė sistema rodo klaidą „Kompiuteryje nepakanka atminties, uždarykite programas, kad atlaisvintumėte atminties“.

Tiesą sakant, šios problemos sprendimas priklauso nuo pagrindinės priežasties.

Esant fiziniam RAM stygiui, žinoma, teks padidinti jos apimtį perkant RAM atmintines parduotuvėje. Dabar dauguma kompiuterių naudoja 8 GB, tačiau viskas priklauso nuo užduočių, kurioms kompiuteris buvo pirktas. Taip pat verta atkreipti dėmesį į daugelio juostelių atramą pagrindinė plokštė. Taip pat, jei kompiuteris nėra naujas ir neplanuojama jo atnaujinti, tuomet, deja, teks taikstytis su šia sistemos veikla.

Jei priežastis ta HDD yra visiškai užimtas ir kompiuteryje nėra pakankamai atminties, jums reikės disko valymo priemonės, kad ją atlaisvintumėte. Jo grožis yra tas, kad jis neleis ištrinti sistemos naudojamų failų ir sukelti jos neveikimą. Kitaip tariant, disko valymas „Windows“ programa padės saugiai ištrinti laikinus ir daugybę kitų, dažniausiai nenaudingų, failų. Galite jį paleisti dešiniuoju pelės mygtuku spustelėdami diską C: ir pasirinkę „Ypatybės“, tada „Disko valymas“.

Priemonė atliks pirminę analizę ir parodys, kuriuos failus galima ištrinti. Paprastai šiuo atveju tai nebus labai didelis tūris. Spustelėjus „Išvalyti sistemos failai» pereis dar vieną analizės etapą ir atsilaisvinančios vietos kiekis tikrai padidės.

Taip pat turėtumėte patikrinti, ar puslapio failas įjungtas. Jis naudojamas, jei nepakanka atminties programoms paleisti ir reikia daugiau nei šiuo metu yra fiziškai – tokiu atveju trūkumas bus kompensuojamas laisva vieta kietajame diske. Turite atidaryti „Valdymo skydas“, tada „Sistema“.

Tada atidarykite skyrių „Išplėstiniai sistemos nustatymai“.

Perjunkite į skirtuką „Išplėstinė“.

Spustelėkite „Keisti“.

Šiame lange galite valdyti puslapių failo dydį. Jo dydį rekomenduojama nustatyti automatiškai.

Tuo atveju, jei dėl kitos programos ar daugelio procesų nepakanka atminties, būtų logiška suprasti, kurie iš jų yra. Tokiu atveju galite naudoti užduočių tvarkytuvę rūšiuodami procesus pagal stulpelį Atmintis skirtuke Išsami informacija.

Analizuodami sąraše esančius procesus, galite nuspręsti, ką su jais daryti. Tai gali būti įprastas veikimas (pavyzdžiui, atnaujinant), arba nenormalus (vidinis programos gedimas) arba netgi kenkėjiška programa. Bet kokiu atveju, patikrinti, ar nėra kenkėjiškų objektų, nepakenks. Kad ir kaip būtų, jei klaidą, kad nepakanka atminties, sukėlė tam tikra programa, rekomenduojama susisiekti su šios programinės įrangos palaikymo komanda, kad pašalintumėte neigiamus padarinius.

Geros dienos!

Atsiranda klaidų. Pažiūrėsime į vieną iš jų, skirtą temai „Nepakankama laisvos atminties 1C:Enterprise serveryje“.

Klaidos „1C:Enterprise serveryje nėra pakankamai laisvos atminties“ pašalinimo būdas.

Darbo procesų atminties talpa dirbant 1C agento serveryje nėra begalinė. Kai jis yra maksimalios apkrovos, vartotojas mato pranešimą, kuris džiugina savo naujumu - „1C:Enterprise serveryje nėra pakankamai laisvos atminties“.


Pirmiausia pakalbėkime apie tokio pobūdžio pranešimų priežastis – kodėl neužtenka atminties. Jų gali būti keletas:

Nepakankama geležies galia

Jei sistemoje dirba iki penkių žmonių, tai užteks vieno aštuonių gigabaitų kompiuterio su dviem varžtais (ant vieno - SERVER, antrame - SQL) ir papildomai įdiegtų lustų. Bet tai kitas dalykas - apie trisdešimt vartotojų, tūkstančiai pirminių dokumentų. Čia SQL reikia perkelti į atskirą serverį, o vienas terminalo serveris negali susidoroti.

Trūksta atminties nereikalingai informacijai

Įprastos konfigūracijos bando apibūdinti pažodžiui visus procesus, kuriuos kūrėjas gali įsivaizduoti, bandydamas sukurti universalų apskaitos įrankį, pavadintą 1C: Enterprise. Todėl konkretus vartotojas gauna papildomą bagažą metaduomenų objektų bedugnės pavidalu, SQL lentelės, nenaudojamos detalės. Nuolat registruoti ir iš naujo indeksuoti visus šiuos nereikalingus dalykus programos registruose ilgas laikas ir daug vietos.

Kodavimo klaidos

Serverio perkrova taip pat atsiranda tada, kai programuotojai (kartais) nesupranta tam tikrų procesų ir įveda savo „ramentus“, kurie padidina paskirtų užduočių atlikimo laiką (ir darbo procesų skaičių).

Programos klaidos

Be kita ko, ir tai dažnai yra beveik pagrindinė priežastis - 1C programoje yra neįtikėtinai daug vidinių klaidų. Kai kurie iš jų pataisomi vėlesniuose leidimuose. Šioms klaidoms skirta daugybė forumų, kuriuose adminai, aptarinėdami naujausias gudrybes, juokaudami sako, kad tame pačiame socialiniame tinkle dirba turbūt tik tadžikai (Dzhamshut ir Ravshan).

Taigi, ką daryti su 1C serveriu?

Kadangi problemos priežastys gali būti skirtingos, taip pat yra įvairių būdų, kaip išspręsti situaciją:

Iš naujo paleidžiama serverio paslauga

Greičiausias ir paprastu būdu Sprendimas yra iš naujo paleisti serverio paslaugą. Iš komandinė eilutė Microsoft Windows(cmd): norėdami sustabdyti, vykdykite komandą - net stop "1C:Enterprise 8.3 (arba jūsų versija) Server Agent", o pradėti - net start "1C:Enterprise 8.3 (pagal jūsų versiją) Server Agent". Toks sprendimas problemos iki galo neišsprendžia – dažniausiai klaida kartojasi. Jo pasikartojimų dažnis priklauso nuo klientų skaičiaus ir darbo procesų skaičiaus.

SVARBU. Kad galėtumėte paleisti iš naujo, turite turėti atitinkamas teises.

Automatinis paleidimas iš naujo ir klasterio nustatymai

Kartais net viena veikianti darbo eiga gali užimti beveik visą RAM. Ši problema išspręsta padidinus jų skaičių klasterio nustatymuose. Jie prideda maždaug po vieną procesą kas penkiolika–trisdešimt vartotojų.

Iš naujo paleisties intervalas. Netrukus prieš pasibaigiant ankstesniajam, pradedamas naujas rphost.exe procesas. - Į jį perkeliami ryšiai iš senojo. Leidžiamas tūris atmintis – jei ši vertė viršijama, bus paleistas antras atgalinės atskaitos laikmatis.

Ribinio tūrio viršijimo intervalas – kai laikmatis viršija šią reikšmę, bus paleistas naujas procesas. Ir jungtys iš senosios bus prijungtos prie jo. O senasis, savo ruožtu, pažymėtas neaktyvus. Išjungta sustabdyti procesus po – praėjus šio parametro reikšmei pažymėjus darbo eigą kaip neaktyvią, operacinė sistema ją nutrauks. Jei nustatysite šį parametrą į „0“, visi neaktyvūs procesai nebus automatiškai nutraukti.

SVARBU. Šis nustatymas pasižymi tuo, kad jis atjungia nuo duomenų bazės tik tą klientą, kuris paleido neteisingą ataskaitą. O likusi dalis bus sklandžiai perkelta į naujus ryšius (be pertraukų iš jų bazės).

Darbuotojų procesų skaičius

Jei rphost.exe yra perkrauta foninėmis užduotimis ir nauji procesai nesukuriami, turite patikrinti nustatymus:

Maks. Darbuotojų procesų atminties dydis yra bendras visų procesų atminties kiekis. Matuojama baitais. Jei nustatysite neteisingą reikšmę (nepakankama normaliam veikimui), visi gaus klaidą „1c serveryje nepakanka laisvos atminties“.

Saugus atminties suvartojimas skambučiui – valdo atminties suvartojimą serverio skambučio metu (baitais). Kai naudojamas skambinant daugiau nei nurodyta – jis bus baigtas klasteryje. Jis nebus paleistas iš naujo. O seanso praradimas neturės įtakos kitiems klientams.

Atminties kiekis procesams, kurių vertės serveris yra laikomas produktyviu sistemos – pasiekus šią reikšmę, klasterio serveris nustoja priimti ryšius. Kiekis informacinės bazės per procesą – išskiria informacijos saugumą pagal procesą. Išskyrus informacines bazes (įvedus reikšmę „1“), dažniausiai problemos išsprendžiamos.

Ryšių skaičius per procesą – numatytoji reikšmė yra „128“. Jei dabartinė duomenų bazė turi labai didelę apkrovą iš foniniai darbai, tada galite sumažinti šį skaičių, pavyzdžiui, iki „25“. Naudojant šiuos nustatymus, klasterio nustatymai šiek tiek pasikeis:

Gedimų tolerancijos lygis – parodo serverių, kuriems sugedus, avarinis klientų išjungimas nebus. Tai bus automatiškai paleista tinkama suma atsarginės kopijos paslaugos.

Krovinio dalijimosi režimas – turi du galimi variantai. Jei nustatysite „Prioritetas našumui“, serverio atmintis bus naudojama daugiau, kad padidėtų našumas. Kai pasirenkate „Atminties prioritetas“, 1C klasteris taupys atmintį.

Duomenų bazės įrankis

Norėdami dirbti su duomenų baze, turite naudoti MS SQL DBVS.

Konfigūracijos tikrinimas

Galbūt klaidos priežastis slypi neteisingoje konfigūracijos informacijoje. Norėdami tai patikrinti, turite paleisti komandą „Tikrinti konfigūraciją“. (Nepainioti su bandymais!). Prieš vykdydami, turite patikrinti žymės langelio (žymės langelio) nustatymą - „loginis vientisumas“. Jei aptinkamas koks nors netikslumas, tai atsispindės pranešime. Ir klaidos bus pašalintos.

Išnagrinėjome laisvos atminties trūkumo 1C serveryje priežastis ir galimi būdai pašalindamas tai. Vienas iš būdų tikrai išspręs problemą.

Dalintis