1s oznacza błąd braku pamięci. Rozwiązywanie problemu na komputerze klienckim
Rozważmy bardziej szczegółowo opcje naprawy błędu „Za mało pamięci” w 1C 8.3.
Metoda 1. Zwiększ rozmiar pamięci adresowej
Istnieje ograniczenie w przydzielaniu pamięci adresowej dla oprogramowanie system operacyjny: dla systemu 32-bitowego - 2 GB; dla systemu 64-bitowego - 4 GB.
Krok 1
Aby zwiększyć rozmiar pamięci adresowej, musisz wykonać następujące czynności: run wiersz poleceń z uprawnieniami Administratora:
- Start - Uruchom - w wierszu polecenia wpisz CMD i naciśnij Enter:
- Lub kliknij kliknij prawym przyciskiem myszy Kliknij przycisk Start i wybierz Wiersz polecenia (administrator).
Krok 2
Następnie przechodzimy do okna dialogowego poleceń, w którym musimy wpisać polecenie, aby zwiększyć pamięć adresową. W wierszu poleceń wpisujemy BCDEdit /set Increaseuserva xxxx, gdzie zamiast xxxx podajemy ilość wirtualnej przestrzeni adresowej w megabajtach. Na przykład w systemach 32-bitowych zalecane jest 3072 MB:
Krok 3
Ponownie uruchamiamy komputer. Wykonajmy czynności w programie 1C 8.3, których nie uzyskano wcześniej.
Krok 4
Po wykonaniu operacji lepiej przywrócić pamięć adresową do wartości domyślnej. Aby to zrobić, wpisz BCDEdit /deletevalue Increaseuserva w wierszu poleceń:
Ponownie uruchamiamy komputer.
Metoda 2. Usuń dokumenty i katalogi oznaczone do usunięcia
Na platformie 1C 8.3 stało się to możliwe dzięki zaplanowanemu zadaniu.
Usunięcie zaznaczonych obiektów umożliwia:
- Zwiększ wydajność systemu;
- Zmniejsz rozmiar bazy danych.
Krok 1. Utwórz kopię bazy danych
Otwórz element: sekcja Administracja - Ustawienia programu - Wsparcie i konserwacja - Utworzyć kopię zapasową i odzyskiwanie:
Ustaw harmonogram automatycznego kopiowania bazy danych i kliknij Zakończ:
Dowiedz się więcej, jak to zrobić utworzyć kopię zapasową 1С 8.3 zobacz w naszym samouczku wideo:
Krok 2. Usuń zaznaczone obiekty
Otwórz element Automatycznie usuń zaznaczone obiekty z harmonogramu: sekcja Administracja - Ustawienia aplikacji - Wsparcie i konserwacja - Zaplanowane operacje:
Ustalamy harmonogram automatycznego usuwania zaznaczonych obiektów w 1C 8.3 w dogodnym czasie. Na przykład w czasie przerwy obiadowej i kliknij Gotowe:
W wyniku podjętych działań rozmiar bazy danych zmniejszy się, wydajność systemu poprawi się, a błąd 1C „Za mało pamięci” nie powinien wystąpić.
Oceń ten artykuł:
Występują błędy. Rozważymy jeden z nich, poświęcony tematowi „Za mało wolnej pamięci na serwerze 1C:Enterprise”.
Jak naprawić błąd „Za mało wolnej pamięci na serwerze 1C:Enterprise”.
Ilość pamięci procesów roboczych podczas pracy na serwerze agenta 1C nie jest nieskończona. Przy maksymalnym obciążeniu użytkownik widzi komunikat zadowalający swoją nowością - „Na serwerze 1C: Enterprise nie ma wystarczającej ilości wolnej pamięci”.
Najpierw o przyczynach takich wiadomości - dlaczego nie ma wystarczającej ilości pamięci. Może być ich kilka:
Niewystarczająca moc żelaza
Jeśli w systemie pracuje do pięciu osób, to wystarczy jeden ośmiogigabajtowy komputer z dwoma śrubami (na jednej – SERWER, na drugiej – SQL) i dodatkowo zainstalowanymi chipami. Ale co innego - około trzydziestu użytkowników, tysiące podstawowych dokumentów. Tutaj również trzeba przenieść SQL na osobny serwer, a jeden serwer terminali już sobie nie radzi.
Brak pamięci na dodatkowe informacje
Typowe konfiguracje próbują opisać dosłownie wszystkie procesy, które programista może sobie wyobrazić, próbując stworzyć uniwersalne narzędzie księgowe o nazwie 1C:Enterprise. Dzięki temu dany użytkownik otrzymuje dodatkowy bagaż w postaci przepaści obiektów metadanych, dodatkowych tabel SQL, niewykorzystanych szczegółów. Stała rejestracja i ponowne indeksowanie tego wszystkiego niepotrzebnego w rejestrach programu zajmuje dużo czasu i dużo miejsca.
Błędy kodowania
Przeciążenie serwera występuje również wtedy, gdy programiści (czasami) nie rozumieją niektórych procesów i wprowadzają własne „kule”, które wydłużają czas wykonywania zadań (a także liczbę procesów roboczych).
Błędy programu
Między innymi i często jest to prawie główny powód - program 1C ma niesamowitą liczbę błędów wewnętrznych. Niektóre z nich zostały naprawione w kolejnych wydaniach. Tym błędom poświęcona jest duża liczba forów, na których admini dyskutując kolejne sztuczki żartobliwie twierdzą, że w jednym es pracują chyba tylko Tadżykowie (Dzhamshut i Ravshan).
Więc co zrobić z serwerem 1C
Ponieważ przyczyny problemu mogą być różne, istnieją również różne sposoby wyjścia z sytuacji:
Ponowne uruchamianie usługi serwera
Najszybszy i w prosty sposób Rozwiązaniem jest ponowne uruchomienie usługi serwera. Z wiersza poleceń Microsoft Windows(cmd): aby zatrzymać, wykonywane jest polecenie - net stop "1C:Enterprise 8.3 (lub twoja wersja) Server Agent", a aby rozpocząć - net start "1C:Enterprise 8.3 (zgodnie z twoją wersją) Server Agent". Takie rozwiązanie nie usuwa całkowicie problemu - najczęściej błąd się powtarza. Częstotliwość jego powtórzeń zależy od liczby klientów i liczby procesów roboczych.
WAŻNY. Aby móc uruchomić się ponownie, musisz mieć odpowiednie uprawnienia.
Automatyczne ponowne uruchamianie i ustawienia klastra
Czasami nawet jeden uruchomiony przepływ pracy może zająć prawie całą pamięć RAM. Ten problem rozwiązuje zwiększenie ich liczby w ustawieniach klastra. Na każdych piętnastu do trzydziestu użytkowników dodawany jest około jeden proces.
Interwał restartu. Tuż przed rozpoczęciem realizacji poprzedniego nowy proces rphost.exe. - Przenoszone są do niego połączenia ze starego. Dopuszczalna wielkość pamięci - po przekroczeniu tej wartości zostanie uruchomiony drugi timer odliczający.
Interwał przekroczenia limitu głośności - gdy timer przekroczy tę wartość, zostanie uruchomiony nowy proces. A połączenia ze starego będą z nim powiązane. A stary z kolei jest oznaczony jako nieaktywny. Wyłączony zatrzymaj procesy po - po przekroczeniu wartości tego parametru po oznaczeniu przepływu pracy jako nieaktywnego, zostanie on przerwany przez system operacyjny. Jeśli ten parametr jest ustawiony na „0” - wtedy wszystkie nieaktywne procesy nie zostaną automatycznie zakończone.
WAŻNY. To ustawienie jest typowe, ponieważ odłącza od bazy danych tylko klienta, który uruchomił niepoprawny raport. A reszta - zostanie płynnie przeniesiona na nowe połączenia (bez przerywania ich bazy).
Liczba procesów pracowniczych
Jeśli rphost.exe jest przeciążony zadaniami w tle i nie są tworzone żadne nowe procesy, sprawdź ustawienia:
Maks. Pamięć procesu roboczego to całkowita pamięć dla wszystkich procesów łącznie. Mierzone w bajtach. Jeśli ustawisz niewłaściwą wartość (nieodpowiednią do normalnego działania), wszyscy otrzymają błąd „Za mało wolnej pamięci na serwerze 1s”.
Bezpieczne zużycie pamięci na 1 połączenie - kontroluje zużycie pamięci podczas połączenia przez serwer (w bajtach). Jeśli połączenie wykorzystuje więcej niż określono, zostanie zakończone w klastrze. Nie uruchomi się ponownie. A utrata sesji nie wpłynie na innych klientów.
Ilość pamięci dla procesów, do której serwer jest uznawany za produktywny przez system - po osiągnięciu tej wartości serwer klastra przestaje akceptować połączenia. Liczba baz informacji na proces - izoluje bazy informacji według procesów. Po wyizolowaniu infobaz (przy wpisaniu wartości - "1") problemy są zazwyczaj rozwiązywane.
Liczba połączeń na proces - domyślna wartość to "128". Jeśli aktualna baza ma bardzo duże obciążenie od praca w tle, możesz zmniejszyć tę liczbę, na przykład do „25”. Dzięki tym ustawieniom konfiguracja klastra również trochę się zmieni:
Poziom odporności na awarie - pokazuje liczbę serwerów, w przypadku awarii których nie nastąpi awaria klientów. Jednocześnie usługi backupu zostaną automatycznie uruchomione w wymaganej liczbie.
Tryb współdzielenia obciążenia - ma dwa możliwe opcje. Jeśli ustawisz "Priorytet wydajności" - wtedy pamięć serwera będzie zużywana więcej, aby zwiększyć wydajność. Wybierając „Priorytet według pamięci” - klaster 1C oszczędza pamięć.
Narzędzie podstawowe
Do pracy z bazą danych niezbędne jest wykorzystanie narzędzi MS SQL DBMS.
Kontrola konfiguracji
Być może przyczyną błędu są błędne informacje zawarte w Konfiguracji. Aby to sprawdzić, musisz wykonać polecenie „Sprawdź konfigurację”. (Nie mylić z testowaniem!). Przed wykonaniem należy sprawdzić ustawienie pola wyboru (flagi) - „integralność logiczna”. Jeśli zostanie znaleziony błąd, zostanie on odzwierciedlony w komunikacie. A błędy zostaną usunięte.
Zbadaliśmy przyczyny braku wolnej pamięci na serwerze 1C i możliwe sposoby eliminując to. Jedna z metod na pewno rozwiąże problem.
Nie można wymienić wszystkich sytuacji, w których występuje błąd 1C „Za mało pamięci” (ryc. 1). Spróbujmy zidentyfikować główne:
- Podczas aktualizacji konfiguracji;
- Po uruchomieniu aplikacji;
- Podczas generowania raportu;
- Podczas wykonywania dużych obliczeń (publikowanie dokumentu „Obliczanie kosztów”, „Zamknięcie miesiąca” itd.).
We wszystkich przypadkach powód jest ten sam – brak Pamięć fizyczna komputer. W tym samym czasie dodając dodatkowe paski do urządzenia pamięć o dostępie swobodnym nie zawsze rozwiązuje problem.
Od czego zależy ilość dostępnej pamięci
32-bitowe systemy operacyjne mają jedną istotną cechę: niezależnie od ilości pamięci RAM i rozmiaru pliku stronicowania, w trakcie pracy konkretna aplikacja System operacyjny przydziela tylko 4 GB.
Biorąc pod uwagę, że połowa przestrzeni adresowej pamięć wirtualna są przeznaczone na potrzeby samego systemu, do działania aplikacji pozostaje tylko 2GB. Gdy program jest uruchomiony, przestrzeń adresowa pamięci wirtualnej musi być zarezerwowana w jednym ciągłym bloku. Gdy nie jest to możliwe, pojawia się okno (rys. 1).
Jak zwiększyć dostępną pamięć
Bez ponownej instalacji system operacyjny Istnieją dwie możliwości naprawienia sytuacji:
Korzystając z tych metod, można zmniejszyć przestrzeń adresową przydzieloną dla systemu operacyjnego do 1 GB, zwiększając pamięć aplikacji do 3 GB.
Uwaga! Ręczne przydzielanie pamięci może powodować problemy w działaniu. komputer osobisty aż do całkowitego wyłączenia systemu.
Usunięcie wiersza z pliku boot.ini lub uruchomienie polecenia z parametrem 2900 zastąpionym wartością 2000 przywraca system do stanu pierwotnego.
Ważne jest, aby to zrozumieć te sposoby- tylko tymczasowe rozwiązanie problemu, do jego ostatecznej eliminacji konieczne jest przeniesienie bazy danych na platformę 64-bitową.
Brak pamięci podczas generowania raportu
Niezbyt często, ale ten błąd występuje, gdy pojawiają się raporty. W tym przypadku wykonanie obróbki formującej dokument w arkuszu kalkulacyjnym zaciska się i na końcu kończy się oknem, jak na pierwszej figurze.
Przed przejściem do ustawień systemu operacyjnego i zmianą parametrów alokacji pamięci RAM, w takim przypadku lepiej spróbować zmienić ustawienia raportu. Zmień datę, zmień grupowanie, dodaj wybór. W większości przypadków to pomaga.
Jeśli błąd nie występuje w standardowym raporcie (takim jak karta konta lub bilans), a jest dostęp do: kod źródłowy przetwarzania, sprawdź, czy w zapytaniu utworzono tabele tymczasowe. Zapisane w pamięci RAM i istniejące do końca żądania mogą znacznie pochłonąć zasoby słaby komputer.
Ogólnie rzecz biorąc, aby uniknąć takich sytuacji, zdecydowanie zaleca się niszczenie tabel tymczasowych w zapytaniu, gdy tylko nie są już potrzebne.
Wycieki pamięci serwera
W niektórych przypadkach użytkownicy otrzymują wiadomość pokazaną na ryc. 3
Ryż. 3.
Chciałbym osobno omówić przyczyny takiego zachowania serwera.
Ogólnie rzecz biorąc, wyrażenie „wyciek pamięci” jest nieco nieprecyzyjne, lepiej powiedzieć, że pamięć jest przechowywana warstwowo. Programy, które uruchamiają procesy, zapominają o ich terminowym zakończeniu. W rezultacie gromadzą się w pamięci RAM.
Drugim powodem jest fragmentacja pamięci. Jeśli podczas pracy serwera następuje intensywna rezerwacja i zwolnienie pamięci RAM, w jednym z momentów może dojść do sytuacji, gdy ilość wolnej pamięci jest wystarczająca, ale nie da się przechwycić ciągłego bloku adresów pamięci o wystarczającej wielkości .
Drugi problem możesz rozwiązać za pomocą narzędzi systemowych.
W rezultacie mogą:
- Występują problemy z połączeniem, jego przerwy, awaria programu (rys. 4)
Rys.4
- Podczas rozładunku pojawiają się błędy i zawiesza się baza informacji;
- W pamięci zajmowanej przez procesy 1C występują skoki.
Błędy aktualizacji
Ten scenariusz braku pamięci występuje podczas próby aktualizacji konfiguracji do najnowszej wersji. Może to być związane z duża ilość uruchomione aplikacje oraz z błędami w bazie danych.
Pierwszymi krokami, które należy wykonać w przypadku wystąpienia tego problemu, jest uruchomienie zaktualizowanej bazy danych w trybie konfiguratora i jej przebudowa (pozycja menu Administracja->Testowanie i naprawa), chociaż lepiej jest przeprowadzić pełen zakres prac nad naprawą błędów i ponownym -indeksowanie tabel.
Jednym z najczęstszych błędów występujących podczas pracy z 1C 8.3 jest „Za mało pamięci”. W rzeczywistości może to nastąpić po wielu zdarzeniach – aktualizacji, przetwarzaniu dużych plików, generowaniu raportu, ładowaniu danych i innych. Oznacza to, że każdy administrator i programista 1C musi zrozumieć istotę problemu i być w stanie go naprawić. Poprzez proste powiększenie PC RAM lub twardy dysk tego problemu nie da się rozwiązać.
Rozwiązywanie problemu na komputerze klienckim
Przyczyny tego błędu nie są całkowicie w systemie 1C, ponieważ podobny błąd można zobaczyć w innych aplikacjach. Problem polega na tym, że systemy operacyjne z rodziny Microsoft domyślnie przydzielają określoną ilość pamięci na aplikację. W systemach 32-bitowych ta wartość jest ustawiona na 2 GB, w systemach 64-bitowych — 4 GB. Gdy oprogramowanie przekroczy tę wartość, na monitorze pojawi się okno błędu.
Najprostszym sposobem na pozbycie się takich wiadomości jest usunięcie obiektów oznaczonych do usunięcia w konfiguracji. Pomaga to rzadko, ale eliminuje niepotrzebne wahanie. Ponadto ryzyko tych działań jest minimalne, ponieważ nie wymaga interwencji wewnętrznej ustawienia systemu Windows. Jeśli usunięcie nie pomogło, będziesz musiał walczyć innymi metodami.
Innym rozwiązaniem dla systemów 32-bitowych jest przejście na 64-bitowe lub przydzielenie większej ilości pamięci aplikacjom. Pierwsza opcja jest o wiele bardziej poprawna, ale czasami z różnych powodów nie jest to możliwe. Pozostaje wtedy tylko opcja z algorytmem działań, pokazana poniżej, ale należy z niej korzystać bardzo ostrożnie - mogą wystąpić spore problemy z wydajnością całego systemu.
Ten algorytm jest dość prosty:
- Otwórz polecenie Linia okien. Użyj menu „Start” lub kombinacji klawiszy Windows + R i wprowadź polecenie „cmd”;
- W wyświetlonym oknie wpisz polecenie „bcdedit / set Increaseuserva 3200” (na przykład zwiększ limit do 3,2 GB). Warto ostrożnie i stopniowo zwiększać limit;
- Po potwierdzeniu pomyślnego zakończenia operacji w oknie wiersza poleceń uruchom ponownie komputer i spróbuj ponownie wykonać kroki, które doprowadziły do błędu. Jeśli problem będzie się powtarzał, a 1C nadal się zawiesza, możesz ponownie zwiększyć limit;
- Po pomyślnym zakończeniu operacji bez błędu w 1C przywróć domyślne ograniczenia systemu Windows za pomocą polecenia „bcdedit / deletevalue Increaseuserva”. Jest to niezbędny krok, aby system operacyjny nie naruszał jego wydajności ze względu na 1C i inne aplikacje.
To rozwiązanie pozwala wykonać operację, której nie można wykonać z powodu błędu 1C „Za mało pamięci”. Możesz go używać tylko w nagłych przypadkach, gdy operacja musi zostać wykonana właśnie teraz. W innych okolicznościach lepiej spróbować uruchomić 1C na platformie 64-bitowej i tam powtórzyć operację.
Znacznie poważniejszy jest komunikat, że na serwerze podczas aktualizacji lub prac na dużą skalę nie ma wystarczającej ilości pamięci. Problemem może być przedwczesne kończenie procesów uruchamianych przez różne oprogramowanie, w wyniku czego dochodzi do ich „uwarstwienia” i akumulacji w pamięci wirtualnej. Drugim źródłem takiego błędu jest intensywna praca różnych programów z rezerwacją i zwolnieniem pamięci. Istnieje wiele programów do rozwiązywania tych problemów, ale praktyka pokazuje, że powoduje to rozłączenia i awarie 1C.
Takie błędy sprawiają, że zastanawiasz się, czy serwer 1C jest wystarczająco wydajny. Zwiększenie jej mocy przyniesie korzyści firmie, ale taki błąd można obejść w inny sposób, który nie wymaga zastrzyku środków.
Oczywiście nie powinieneś ich używać przez cały czas, ale pewnego dnia mogą pomóc, jeśli to konieczne, w pilnym wykonaniu pracochłonnych prac. Wśród popularnych metod, które mogą pomóc w rozwiązaniu problemu braku pamięci na serwerze są:
Inny powszechny błąd 1C występuje, gdy na dysku twardym serwera nie ma wystarczającej ilości miejsca. Tabele tymczasowe zajmują dużo miejsca, a jeśli nie ma wystarczającej ilości miejsca, administrator widzi błąd „Nie ma wystarczającej ilości wolnej pamięci do ukończenia operacji”. W takim przypadku trudno jest udzielić dokładnych porad, ponieważ serwer lub urządzenie klastra mogą się znacznie różnić w różnych opcjach. Wśród standardowych rozwiązań, które pomagają w takich przypadkach, można znaleźć restart serwera, wzrost wolna przestrzeń, optymalizacja zapytań, aktualizacja wersji.
W firmach z dużą liczbą użytkowników często pojawia się błąd „Za mało wolnej pamięci na serwerze 1C:Enterprise 8.3”. Dużym problemem i warunkiem do tego jest niewystarczająca analiza wymaganej wydajności. Dlatego przy wdrażaniu 1C zwracaj dużą uwagę na wystarczającą moc serwerów, aby w przyszłości nie trzeba było dostosowywać wydajności kosztem stabilności.
Błąd „Za mało pamięci” w 1C 8.3 i 8.2 nie jest tak rzadki. Można go również znaleźć w konfiguratorze (na przykład podczas porównywania konfiguracji), a także w trybie 1C:Enterprise podczas wykonywania czasochłonnego przetwarzania: na przykład podczas pisania dużego pliku base64.
Ten błąd może wystąpić nie tylko w programie 1C, ale także w innych programach systemu operacyjnego Windows.
Chodzi o to, że w 32-bitowych systemach operacyjnych domyślnie 2 gigabajty na różne programy i to samo dla systemu operacyjnego. W 64-bitowych systemach operacyjnych ilość pamięci przydzielonej dla aplikacji wynosi już 4 gigabajty.
W związku z powyższym musisz zwiększyć rozmiar przydzielonej pamięci adresowej dla aplikacji, czyli programu 1C. Można to zrobić na dwa sposoby: dokonać przejścia z systemu 32-bitowego na system 64-bitowy lub zwiększyć początkowo przydzieloną ilość pamięci adresowej.
Oczywiście pierwsza metoda jest lepsza i lepsza, ale jeśli nie ten moment, lub nie możesz go w ogóle użyć, możesz użyć drugiego.
Dzień rozpoczęcia, przejdź do wiersza poleceń systemu operacyjnego. Aby to zrobić, przejdź do menu Start i wpisz „cmd” w pasku wyszukiwania.
Przed tobą pojawi się wyszukiwanie programów. Wybierz ten o nazwie „cmd”.
Możesz także otworzyć wiersz polecenia za pomocą kombinacji klawiszy skrótu Windows + R.
W oknie, które się otworzy, wpisz następujące polecenie, a także naciśnij „Enter”:
bcdedit /set Increaseuserva 3200
W takim przypadku zwiększysz ilość pamięci adresowej do 3200 megabajtów.
Po pomyślnym rozwiązaniu zaleca się przywrócenie poprzedniej ilości pamięci adresowej. Ten środek jest tymczasowy, ponieważ gdy pamięć jest przydzielana dla aplikacji, system operacyjny ma jej mniej. Z tego powodu stabilność systemu Windows może być zagrożona.
Aby przywrócić pamięć adresową do wartości domyślnej, możesz użyć następującego polecenia, które jest również wprowadzane w wierszu poleceń:
bcdedit /deletevalue Increaseuserva
Należy pamiętać, że w przypadku często napotykanego błędu „Brak pamięci” w 1C może również pomóc usunięcie zaznaczonych obiektów. Być może program zgromadził ich bardzo dużo i programowi trudno jest przetworzyć takie ilości danych. Jeśli ta metoda nie pomogła, powinieneś zwiększyć głębię bitową systemu operacyjnego Windows.