1c tester og fikser utilstrækkelig hukommelse. Hvad bestemmer størrelsen af ​​tilgængelig hukommelse

Det er umuligt at liste alle situationer, hvor fejlen 1C "Utilstrækkelig hukommelse" opstår (fig. 1). Lad os prøve at identificere de vigtigste:

  • Ved opdatering af konfigurationen;
  • Når du starter applikationen;
  • Når du genererer en rapport;
  • Ved udførelse af store beregninger (udførelse af dokumentet "Omkostningsberegning", "Afslutning af måneden" og så videre).

Årsagen er i alle tilfælde den samme – mangel på fysisk hukommelse på computeren. Men tilføjelse af yderligere RAM-sticks til enheden løser ikke altid problemet.

Hvad bestemmer størrelsen af ​​tilgængelig hukommelse

32-bit operativsystemer har en væsentlig egenskab: Uanset mængden af ​​RAM og størrelsen af ​​personsøgningsfilen, tildeler operativsystemet kun 4 GB til at køre en bestemt applikation.

I betragtning af, at halvdelen af ​​den virtuelle hukommelses adresseplads er allokeret til selve systemets behov, er der kun 2 GB tilbage til applikationen. Når programmet kører, skal den virtuelle hukommelses adresseplads reserveres i én sammenhængende blok. Når dette ikke er muligt, dukker et vindue op (fig. 1).

Sådan øges tilgængelig hukommelse

Uden at geninstallere operativsystemet er der to muligheder for at rette op på situationen:


Ved at bruge disse metoder kan du reducere den adresseplads, der er allokeret til operativsystemet, til 1 GB, hvilket øger hukommelsen til applikationen til 3 GB.

Opmærksomhed! Ved manuelt at allokere hukommelse kan du støde på problemer i driften af ​​din personlige computer, op til et fuldstændigt systemstop.

Fjernelse af linjen fra boot.ini-filen eller kørsel af kommandoen og udskiftning af parameter 2900 med 2000 returnerer systemet til dets oprindelige tilstand.

Det er vigtigt at forstå, at disse metoder kun er en midlertidig løsning på problemet; for permanent at eliminere det, skal du overføre databasen til en 64-bit platform.

Utilstrækkelig hukommelse ved generering af en rapport

Ikke særlig ofte, men denne fejl opstår, når der opstår rapporter. I dette tilfælde er behandlingen af ​​genereringen af ​​et regnearksdokument forsinket og slutter i sidste ende med et vindue, som i den første figur.

Før du går ind i operativsystemindstillingerne og ændrer RAM-allokeringsparametrene, er det i dette tilfælde bedre at prøve at ændre rapportindstillingerne. Skift dato, skift grupperinger, tilføj valg. I de fleste tilfælde hjælper dette.

Hvis fejlen ikke opstår i en standardrapport (såsom et kontokort eller en balance), og du har adgang til kildebehandlingskoden, skal du kontrollere, om der dannes midlertidige tabeller i forespørgslen. Optaget i RAM og eksisterende indtil slutningen af ​​anmodningen, kan de spise betydeligt ressourcerne på en svag computer.

For at undgå sådanne situationer anbefales det generelt at ødelægge midlertidige tabeller i en forespørgsel umiddelbart efter, at de ikke længere er nødvendige.

Hukommelseslækager på serveren

I nogle tilfælde modtager brugere en meddelelse vist i fig. 3

Ris. 3.

Jeg vil gerne tale separat om årsagerne til denne serveradfærd.

Generelt er udtrykket "hukommelseslækage" noget unøjagtigt; det er bedre at sige, at hukommelsen bliver lagret, lagdelt. Programmer, der starter processer, glemmer at afslutte dem rettidigt. Som et resultat akkumuleres de i RAM.

Den anden grund er hukommelsesfragmentering. Hvis der sker intensiv reservation og frigivelse af RAM under serverdrift, kan der på et tidspunkt opstå en situation, hvor mængden af ​​ledig hukommelse er tilstrækkelig, men det er umuligt at fange en kontinuerlig blok af hukommelsesadresser af tilstrækkelig størrelse.

Du kan løse det andet problem ved hjælp af systemværktøjer.

Som et resultat af dette kan de:

  1. Der er problemer med forbindelsen, den går i stykker, programmet går ned (fig. 4)

Fig.4

  1. Der opstår fejl og fryser ved aflæsning af informationsbasen;
  2. Der er spring i hukommelsen optaget af 1C-processer.

Opdateringsfejl

Denne indstilling med lav hukommelse opstår, når du forsøger at opdatere konfigurationen til den aktuelle udgivelse. Det kan enten være forbundet med et stort antal kørende applikationer eller med fejl i databasen.

Den første handling, når dette problem opstår, er at starte den opdaterede database i konfiguratortilstand og udføre dens omstrukturering (menupunkt Administration->Test og rettelse), selvom det er bedre at udføre en hel række af arbejde for at rette fejl og genindeksere tabeller .

Fejlen "Mødt af hukommelse" i 1C 8.3 og 8.2 er ikke så sjælden. Det kan også findes i konfiguratoren (for eksempel ved sammenligning af konfigurationer), såvel som i 1C:Enterprise-tilstanden, når du udfører arbejdskrævende behandling: for eksempel når du skriver en stor base64-fil.

Denne fejl kan forekomme ikke kun i 1C-programmet, men også i andre programmer i Windows-operativsystemet.

Sagen er, at i 32-bit operativsystemer er der som standard 2 Gigabyte til forskellige programmer og det samme beløb til operativsystemet. I 64-bit OS er mængden af ​​hukommelse, der er allokeret til applikationer, allerede 4 Gigabyte.

Som følge af ovenstående skal du øge størrelsen af ​​den tildelte adressehukommelse til applikationer, som er 1C-programmet. Dette kan gøres på to måder: Skift fra et 32-bit system til et 64-bit system, eller øg den oprindeligt tildelte mængde adressehukommelse.

Selvfølgelig er den første metode bedre og at foretrække, men hvis du i øjeblikket eller overhovedet ikke kan bruge den, kan du bruge den anden.
Start dag, gå til operativsystemets kommandolinje. For at gøre dette skal du gå til Start-menuen og skrive "cmd" i søgefeltet.

En søgning efter programmer vil blive vist foran dig. Vælg den, der hedder "cmd".

Du kan også åbne kommandolinjen ved hjælp af Windows + R-genvejstastekombinationen.

Skriv følgende kommando i vinduet, der åbnes, og tryk også på "Enter":

bcdedit /set øg brugerserver 3200

I dette tilfælde vil du øge mængden af ​​adressehukommelse til 3200 megabyte.

Når det er lykkedes, anbefales det kraftigt at gendanne den tidligere mængde adressehukommelse. Denne foranstaltning er midlertidig, da operativsystemet har mindre hukommelse ved tildeling af hukommelse til applikationer. Dette kan kompromittere stabiliteten af ​​Windows.

For at gendanne adressehukommelsen til standardværdien kan du bruge følgende kommando, som også indtastes på kommandolinjen:

bcdedit /deletevalue øg brugerserver

Bemærk venligst, at med den almindelige "Men hukommelse"-fejl i 1C, kan sletning af markerede objekter også hjælpe. Måske har programmet akkumuleret mange af dem, og det er svært for programmet at behandle sådanne mængder af data. Hvis denne metode ikke hjælper, skal du øge bitheden af ​​Windows-operativsystemet.

Der opstår fejl. Vi vil se på en af ​​dem, dedikeret til emnet "Utilstrækkelig ledig hukommelse på 1C:Enterprise-serveren."

Metode til at fjerne fejlen "Der er ikke nok ledig hukommelse på 1C:Enterprise-serveren."

Hukommelseskapaciteten for arbejdsprocesser, når der arbejdes på 1C-agentserveren, er ikke uendelig. Når den er ved maksimal belastning, ser brugeren en meddelelse, der glæder sig over dens nyhed - "Der er ikke nok ledig hukommelse på 1C:Enterprise-serveren."


Lad os først tale om årsagerne til denne slags beskeder - hvorfor der ikke er nok hukommelse. Der kan være flere af dem:

Utilstrækkelig jernkraft

Hvis op til fem personer arbejder i systemet, vil en otte-gigabyte computer med to skruer (på den ene - SERVER, på den anden - SQL) og yderligere installerede chips være nok. Men det er en anden sag - omkring tredive brugere, tusindvis af primære dokumenter. Her skal SQL flyttes til en separat server, og det kan en terminalserver ikke alene klare.

Mangel på hukommelse til unødvendig information

Typiske konfigurationer forsøger at beskrive bogstaveligt talt alle de processer, som en udvikler kunne forestille sig, og forsøger at skabe et universelt regnskabsværktøj kaldet 1C:Enterprise. Derfor modtager en specifik bruger yderligere bagage i form af en afgrund af metadataobjekter, yderligere SQL-tabeller og ubrugte detaljer. Konstant registrering og genindeksering af alle disse unødvendige ting i programregistrene tager lang tid og meget plads.

Kodningsfejl

Serveroverbelastning opstår også, når programmører (nogle gange) ikke forstår visse processer, og de introducerer deres egne "krykker", der øger den tid, der kræves for at udføre tildelte opgaver (og også antallet af arbejdsprocesser).

Program fejl

Blandt andet, og det er ofte nærmest hovedårsagen – 1C programmet har utrolig mange interne fejl. Nogle af dem er rettet i efterfølgende udgivelser. Et stort antal fora er dedikeret til disse fejl, hvor administratorer, der diskuterer de nyeste tricks, spøgende siger, at det sandsynligvis kun er tadsjikere (Dzhamshut og Ravshan), der arbejder i det samme sociale netværk.

Så hvad skal man gøre med 1C-serveren?

Da årsagerne til et problem kan være forskellige, er der også forskellige måder at løse situationen på:

Genstarter servertjenesten

Den hurtigste og nemmeste løsning er at genstarte servertjenesten. Fra Microsoft Windows kommandolinje (cmd): for at stoppe, kør kommandoen - net stop "1C:Enterprise 8.3 (eller din version) Server Agent", og for at starte - netstart "1C:Enterprise 8.3 (ifølge din version) Serveragent". Denne løsning løser ikke problemet fuldstændigt – oftest gentages fejlen. Hyppigheden af ​​dens gentagelser afhænger af antallet af klienter og antallet af arbejdsprocesser.

VIGTIG. For at kunne genstarte skal du have de relevante rettigheder.

Automatisk genstart og klyngeindstillinger

Nogle gange kan selv en kørende arbejdsgang optage næsten al RAM. Dette problem løses ved at øge deres antal i klyngeindstillingerne. De tilføjer cirka én proces for hver femten til tredive brugere.

Genstartsinterval. Kort før den forrige afsluttes, starter en ny rphost.exe-proces. - Forbindelser fra den gamle overføres til den. Tilladt hukommelsesstørrelse - hvis denne værdi overskrides, vil en anden nedtællingstimer blive startet.

Interval for overskridelse af grænsevolumen - når timeren overskrider denne værdi, startes en ny proces. Og forbindelserne fra den gamle vil blive forbundet til den. Og den gamle er til gengæld markeret som inaktiv. Af stop processer efter - efter at værdien af ​​denne parameter er passeret efter markering af arbejdsgangen som inaktiv, vil den blive afsluttet af operativsystemet. Hvis du indstiller denne parameter til "0", vil alle inaktive processer ikke blive afsluttet automatisk.

VIGTIG. Denne indstilling er kendetegnet ved, at den kun afbryder forbindelsen fra databasen til den klient, der lancerede den forkerte rapport. Og resten flyttes glat til nye forbindelser (uden afbrydelse fra deres base).

Antal arbejdsprocesser

Hvis rphost.exe er overbelastet med baggrundsjob, og der ikke oprettes nye processer, skal du kontrollere indstillingerne:

Maks. Hukommelsesstørrelsen for arbejdsprocesser er den samlede mængde hukommelse for alle processer tilsammen. Målt i bytes. Hvis du indstiller den forkerte værdi (utilstrækkelig til normal drift), vil alle modtage fejlen "Der er ikke nok ledig hukommelse på 1c-serveren."

Sikkert hukommelsesforbrug pr. opkald - styrer hukommelsesforbruget under et opkald fra serveren (i bytes). Hvis et opkald bruger mere end det angivne antal, vil det blive afsluttet i klyngen. Det vil ikke blive genstartet. Og tabet af en session vil ikke påvirke andre klienter.

Mængden af ​​hukommelse for processer op til den værdi, som serveren anses for produktiv af systemet - når denne værdi er nået, holder klyngeserveren op med at acceptere forbindelser. Antal informationsbaser pr. proces - isolerer informationssikkerhed for proces. Efter at have isoleret informationsbaser (ved at indtaste værdien "1"), løses problemer normalt.

Antal forbindelser pr. proces - standardværdien er "128". Hvis den aktuelle database har en meget stor belastning fra baggrundsjob, kan du reducere dette tal, for eksempel til "25". Med disse indstillinger vil klyngeindstillingerne ændre sig lidt:

Fejltoleranceniveau - viser antallet af servere, der, hvis de fejler, ikke vil forårsage en nødlukning af klienter. I dette tilfælde vil backup-tjenester automatisk blive lanceret i den nødvendige mængde.

Belastningsdelingstilstand - har to mulige muligheder. Hvis du indstiller "Prioritet på ydeevne", så vil serverhukommelsen blive brugt mere for at øge ydeevnen. Når du vælger "Hukommelsesprioritet", sparer 1C-klyngen hukommelse.

Database værktøj

For at arbejde med databasen skal du bruge MS SQL DBMS.

Kontrol af konfigurationen

Måske ligger årsagen til fejlen i forkerte oplysninger i konfigurationen. For at kontrollere det skal du køre kommandoen "Kontroller konfiguration". (Ikke at forveksle med test!). Før udførelse skal du kontrollere indstillingen af ​​afkrydsningsfeltet (afkrydsningsfeltet) - "logisk integritet". Hvis der opdages en ukorrekthed, vil dette blive afspejlet i meddelelsen. Og fejlene vil blive fjernet.

Vi så på årsagerne til manglen på ledig hukommelse på 1C-serveren og mulige måder at eliminere dette på. En af metoderne vil helt sikkert løse problemet.

Lad os se nærmere på mulighederne for at rette fejlen "Ikke nok hukommelse" i 1C 8.3.

Metode 1: Forøg adressehukommelsesstørrelsen

Der er en begrænsning i tildelingen af ​​adressehukommelse til software af operativsystemet: for et 32-bit system - 2 GB; for et 64-bit system - 4 GB.

Trin 1

For at øge størrelsen på adressehukommelsen skal du gøre følgende: Kør kommandolinjen med administratorrettigheder:

  • Start – Kør – indtast CMD på kommandolinjen og tryk på Enter:
  • Eller højreklik på Start-knappen og vælg Kommandoprompt (Administrator).

Trin 2

Dernæst befinder vi os i et dialogvindue, hvor vi skal skrive en kommando for at øge adressehukommelsen. Indtast BCDEdit /set increaseuserva xxxx på kommandolinjen, hvor vi i stedet for xxxx angiver mængden af ​​virtuel adresseplads i megabyte. For eksempel, på 32-bit systemer anbefales 3072 MB:

Trin 3

Genstart computeren. Lad os udføre handlinger i 1C 8.3-programmet, som ikke var mulige før.

Trin 4

Efter at have udført handlinger, er det bedre at returnere adressehukommelsen til standardværdien. For at gøre dette skal du indtaste BCDEdit /deletevalue increaseuserva på kommandolinjen:

Genstart computeren.

Metode 2. Slet dokumenter og mapper, der er markeret til sletning

I 1C 8.3 platformen blev det muligt at bruge en planlagt opgave.

Fjernelse af markerede objekter giver dig mulighed for at:

  1. Forøg systemets ydeevne;
  2. Reducer databasestørrelsen.

Trin 1. Opret en kopi af databasen

Åbn emnet: sektion Administration – Programindstillinger – Support og vedligeholdelse – Sikkerhedskopiering og gendannelse:

Opsæt en tidsplan for automatisk databasekopiering, og klik på Udfør:

For flere detaljer om, hvordan du laver en sikkerhedskopi af 1C 8.3, se vores videovejledning:

Trin 2. Slet markerede objekter

Åbn elementet Slet automatisk markerede objekter i henhold til en tidsplan: sektion Administration – Programindstillinger – Support og vedligeholdelse – Rutinedrift:

Vi opsætter en tidsplan for automatisk sletning af markerede objekter i 1C 8.3 på et passende tidspunkt. For eksempel i en frokostpause og klik på Udfør:

Som et resultat af disse handlinger vil størrelsen af ​​databasen falde, systemets ydeevne forbedres, og fejlen 1C "Utilstrækkelig hukommelse" bør ikke forekomme.


Bedøm venligst denne artikel:

Den samme situation kan opstå under generering af en stor rapport, eksekvering, ved eksekvering, indlæsning af en stor informationsbase osv. Bemærk, at dette sker, når du udfører nogle store operationer, der kræver en vis mængde computerressourcer. Desuden fungerer 1C-programmet relativt normalt i normal tilstand.

Tips såsom at rense disken, hvorpå programmet er installeret, køre det i programmet, bruge det ved at vælge Komprimering af infobasetabeller , vil højst sandsynligt ikke give det ønskede resultat, selvom de også er værd at prøve.

For at 1C-programmet skal fungere, stilles der visse krav til computerparametrene, og hvis deres egenskaber ikke svarer til det installerede program, kan der opstå problemer i form af opbremsninger og udseendet af denne type fejl.

Efter at have tilføjet mere RAM til vores computer, vises fejlen igen. I dette tilfælde ligger årsagen i den begrænsede tildeling af adressehukommelse af operativsystemet til software:

  • i 32-bit operativsystemer er der som standard allokeret 2 GB til forskellige programmer og det samme beløb til operativsystemet,
  • i 64-bit operativsystemer - hukommelseskapaciteten er allerede 4 GB.

Når du arbejder med 1C og udfører en operation, kan du bruge Jobliste overvåge processorbelastningsprocessen og den ledige mængde hukommelse. I vores tilfælde nærmede dette tal sig under opdateringen nul, og i det øjeblik opstod fejlen "Utilstrækkelig hukommelse". Lancering Jobliste muligt ved at trykke på tasterne Ctrl+Alt+Del og åbne fanen Ydeevne, overvåg disse indikatorer.

Derfor er vi nødt til at øge størrelsen af ​​den allokerede adressehukommelse til applikationer (inklusive 1C). Dette kan gøres på to måder: Skift fra et 32-bit system til et 64-bit system eller øg standardmængden af ​​tildelt adressehukommelse. Den første mulighed er mere korrekt, men af ​​nogle grunde er det muligvis ikke muligt, så lad os overveje den anden mulighed for at løse problemet.