Tidak ada memori dalam 1 detik apa yang harus dilakukan


Kesalahan "Memori Kehabisan" di 1C 8.3 dan 8.2 tidak jarang terjadi. Itu juga dapat ditemukan di konfigurator (misalnya, saat membandingkan konfigurasi), serta dalam mode 1C:Enterprise saat melakukan pemrosesan padat karya: misalnya, saat menulis file base64 yang besar.

Kesalahan ini dapat terjadi tidak hanya pada program 1C, tetapi juga pada program lain di sistem operasi Windows.

Soalnya di sistem operasi 32-bit, secara default ada 2 Gigabytes untuk berbagai program dan jumlah yang sama untuk sistem operasi. Di OS 64-bit, jumlah memori yang dialokasikan untuk aplikasi sudah 4 Gigabytes.

Mengikuti hal di atas, Anda perlu menambah ukuran memori alamat yang dialokasikan untuk aplikasi, yaitu program 1C. Hal ini dapat dilakukan dengan dua cara: beralih dari sistem 32-bit ke sistem 64-bit, atau menambah jumlah memori alamat yang dialokasikan pada awalnya.

Tentu saja, cara pertama lebih baik dan lebih disukai, tetapi jika saat ini, atau sama sekali, Anda tidak dapat menggunakannya, Anda dapat menggunakan cara kedua.
Mulai hari, buka baris perintah sistem operasi. Untuk melakukan ini, buka menu Start dan ketik “cmd” di bilah pencarian.

Pencarian program akan ditampilkan di depan Anda. Pilih yang bernama "cmd".

Anda juga dapat membuka baris perintah menggunakan kombinasi tombol pintas Windows + R.

Di jendela yang terbuka, ketik perintah berikut dan tekan “Enter”:

bcdedit /set peningkatan penggunava 3200

Dalam hal ini, Anda akan menambah jumlah memori alamat menjadi 3200 Megabyte.

Setelah Anda berhasil, sangat disarankan untuk mengembalikan jumlah alamat memori sebelumnya. Tindakan ini bersifat sementara, karena ketika mengalokasikan memori untuk aplikasi, sistem operasi memiliki lebih sedikit memori. Hal ini dapat membahayakan stabilitas Windows.

Untuk mengembalikan memori alamat ke nilai defaultnya, Anda dapat menggunakan perintah berikut, yang juga dimasukkan pada baris perintah:

bcdedit /deletevalue peningkatanuserva

Harap dicatat bahwa dengan kesalahan umum "Kehabisan Memori" di 1C, menghapus objek yang ditandai juga dapat membantu. Mungkin program telah mengumpulkan banyak data dan sulit bagi program untuk memproses data sebanyak itu. Jika metode ini tidak membantu, maka Anda harus meningkatkan bitness sistem operasi Windows.

Salah satu kesalahan paling umum yang muncul saat bekerja dengan 1C 8.3 adalah “Memori tidak cukup”. Pada kenyataannya, hal ini dapat terjadi setelah banyak peristiwa - memperbarui, memproses file besar, membuat laporan, memuat data, dan lain-lain. Artinya setiap administrator dan pengembang 1C harus memahami inti permasalahan dan mampu memperbaikinya. Menambah RAM atau hard drive PC Anda saja tidak akan menyelesaikan masalah ini.

Memecahkan masalah pada komputer klien

Alasan kesalahan ini tidak sepenuhnya terletak pada sistem 1C, karena Anda dapat melihat kesalahan serupa di aplikasi lain. Masalahnya adalah dalam sistem operasi keluarga Microsoft, secara default, sejumlah memori tertentu dialokasikan untuk setiap aplikasi. Untuk sistem 32-bit, nilai ini disetel ke 2 GB, untuk sistem 64-bit - 4 GB. Ketika perangkat lunak melebihi nilai ini, jendela kesalahan muncul di monitor.

Cara termudah untuk menghilangkan pesan tersebut adalah dengan menghapus objek yang ditandai untuk dihapus dalam konfigurasi. Hal ini jarang membantu, namun menghilangkan keragu-raguan yang tidak perlu. Selain itu, risiko tindakan ini minimal karena tidak memerlukan intervensi dalam pengaturan internal Windows. Jika penghapusan tidak membantu, maka Anda harus berjuang dengan metode lain.

Solusi lain untuk sistem 32-bit adalah beralih ke versi 64-bit atau mengalokasikan lebih banyak memori untuk aplikasi. Opsi pertama jauh lebih tepat, tetapi terkadang karena berbagai alasan hal ini tidak mungkin. Maka hanya ada opsi dengan algoritme tindakan yang ditunjukkan di bawah ini, tetapi Anda harus menggunakannya dengan sangat hati-hati - mungkin ada masalah signifikan dengan kinerja seluruh sistem.

Algoritma ini cukup sederhana:

  1. Buka Prompt Perintah Windows. Gunakan menu Start atau kombinasi tombol Windows +R dan masukkan perintah “cmd”;
  2. Pada jendela yang muncul, ketikkan perintah “bcdedit /set raiseuserva 3200” (misalnya kami akan menambah batas menjadi 3,2 GB). Sebaiknya tingkatkan batas secara hati-hati dan bertahap;
  3. Setelah mengonfirmasi keberhasilan penyelesaian operasi di jendela Command Prompt, restart PC Anda dan coba lagi langkah-langkah yang menyebabkan kesalahan. Jika masalah tidak kunjung hilang dan 1C masih crash, Anda dapat menambah batasnya lagi;
  4. Setelah berhasil menyelesaikan operasi tanpa kesalahan di 1C, pulihkan batasan default Windows dengan perintah "bcdedit /deletevalue enhancementuserva". Ini adalah langkah penting agar OS tidak mengurangi kinerjanya demi 1C dan aplikasi lainnya.

Solusi ini memungkinkan Anda melakukan operasi yang tidak dapat dilakukan karena kesalahan 1C "Memori tidak mencukupi". Ini hanya dapat digunakan dalam kasus darurat ketika operasi harus segera dilakukan. Dalam keadaan lain, lebih baik mencoba menjalankan 1C pada platform 64-bit dan ulangi operasi di sana.

Anda harus menanggapi pesan bahwa tidak ada cukup memori di server selama pembaruan atau operasi skala besar dengan lebih serius. Masalahnya mungkin penyelesaian proses yang diluncurkan oleh berbagai perangkat lunak sebelum waktunya, yang mengakibatkan “pelapisan” dan akumulasi proses tersebut dalam memori virtual. Sumber kedua dari kesalahan ini adalah kerja intensif berbagai program dengan reservasi dan pembebasan memori. Ada berbagai perangkat lunak untuk mengatasi masalah ini, tetapi praktik menunjukkan bahwa hal itu menyebabkan koneksi terputus dan 1C crash.


Kesalahan seperti ini membuat Anda bertanya-tanya apakah server 1C cukup kuat. Peningkatan kapasitas memang akan menguntungkan perusahaan, namun kesalahan ini bisa disiasati dengan cara lain yang tidak memerlukan suntikan dana.

Tentu saja, Anda tidak boleh menggunakannya terus-menerus, tetapi suatu hari nanti mereka dapat membantu Anda segera melakukan pekerjaan yang membutuhkan banyak sumber daya jika diperlukan. Di antara metode populer yang dapat membantu mengatasi kesalahan memori tidak mencukupi di server adalah:

  • Memulai ulang proses kerja 1C, yang akan menyebabkan penurunan memori yang digunakan. Opsi ini hanya cocok untuk administrator berpengalaman yang memahami konsol administrasi server 1C;
  • Dengan menggunakan log teknologi, temukan tabel yang, ketika dimuat, menerima kesalahan "Memori tidak mencukupi" selama pembaruan atau operasi lainnya. Jika kesalahan muncul saat bekerja dengan tabel "config", periksa konfigurasi dengan tanda "Periksa integritas logis konfigurasi". Anda dapat menemukan fungsi ini di konfigurator di menu “Konfigurasi”.
  • Kesalahan 1C umum lainnya terjadi ketika tidak ada cukup ruang pada hard drive di server. Tabel sementara memakan banyak ruang, dan jika tidak ada cukup ruang, administrator akan melihat kesalahan “Memori kosong tidak cukup untuk melakukan operasi.” Dalam hal ini, sulit untuk memberikan saran yang tepat, karena desain server atau cluster mungkin berbeda secara signifikan dalam versi yang berbeda. Di antara solusi standar yang membantu dalam kasus seperti itu, Anda dapat menemukan memulai ulang server, menambah ruang kosong, mengoptimalkan kueri, dan memperbarui versi.


    Di perusahaan dengan jumlah pengguna yang besar, error “Memori kosong tidak mencukupi di server 1C:Enterprise 8.3” cukup sering terjadi. Masalah besar dan prasyarat untuk ini adalah kurangnya analisis terhadap kinerja yang dibutuhkan. Oleh karena itu, saat mengimplementasikan 1C, berikan perhatian besar pada kecukupan daya server agar di kemudian hari Anda tidak perlu menyesuaikan kinerja dengan mengorbankan stabilitas.

    Situasi yang sama dapat terjadi selama pembuatan laporan besar, eksekusi, eksekusi, pemuatan basis informasi besar, dll. Perhatikan bahwa ini terjadi ketika melakukan beberapa operasi skala besar yang memerlukan sejumlah sumber daya komputer. Apalagi dalam mode normal, program 1C bekerja relatif normal.

    Tipsnya seperti membersihkan disk tempat program diinstal, menjalankannya di program, menggunakannya dengan memilih Mengompresi tabel infobase , kemungkinan besar tidak akan memberikan hasil yang diinginkan, meskipun patut untuk dicoba.

    Agar program 1C berfungsi, persyaratan tertentu dikenakan pada parameter komputer, dan jika karakteristiknya tidak sesuai dengan program yang diinstal, maka masalah mungkin timbul dalam bentuk perlambatan dan munculnya kesalahan jenis ini.

    Setelah menambahkan lebih banyak RAM ke komputer kita, kesalahan muncul lagi. Dalam hal ini, alasannya terletak pada terbatasnya alokasi memori alamat oleh sistem operasi untuk perangkat lunak:

    • dalam sistem operasi 32-bit, secara default 2 GB dialokasikan untuk berbagai program dan jumlah yang sama untuk sistem operasi,
    • di sistem operasi 64-bit - kapasitas memori sudah 4 GB.

    Saat bekerja dengan 1C dan melakukan operasi, Anda dapat menggunakannya Pengelola tugas memantau proses memuat prosesor dan jumlah memori bebas. Dalam kasus kami, selama pembaruan, angka ini mendekati nol dan pada saat itu terjadi kesalahan "Memori tidak mencukupi". Meluncurkan Pengelola tugas mungkin dengan menekan tombol Ctrl+Alt+Del dan membuka tab Pertunjukan, pantau indikator-indikator ini.

    Oleh karena itu, kita perlu meningkatkan ukuran memori alamat yang dialokasikan untuk aplikasi (termasuk 1C). Hal ini dapat dilakukan dengan dua cara: beralih dari sistem 32-bit ke sistem 64-bit atau meningkatkan jumlah default alokasi memori alamat. Opsi pertama lebih tepat, tetapi karena alasan tertentu hal ini mungkin tidak dapat dilakukan, jadi mari pertimbangkan opsi kedua untuk menyelesaikan masalah.

    Terjadi kesalahan. Kami akan melihat salah satunya, yang didedikasikan untuk topik “Memori kosong tidak mencukupi di server 1C:Enterprise.”

    Metode untuk menghilangkan kesalahan “Memori kosong tidak cukup di server 1C:Enterprise.”

    Kapasitas memori proses kerja saat bekerja di server agen 1C tidak terbatas. Saat beban maksimumnya, pengguna melihat pesan yang menyenangkan dengan kebaruannya - “Memori kosong di server 1C:Enterprise tidak cukup.”


    Pertama, mari kita bicara tentang alasan pesan semacam ini - mengapa memori tidak cukup. Mungkin ada beberapa di antaranya:

    Tenaga besi tidak mencukupi

    Jika hingga lima orang bekerja dalam sistem, maka satu komputer delapan gigabyte dengan dua sekrup (yang satu - SERVER, yang kedua - SQL) dan chip tambahan yang terpasang sudah cukup. Tapi masalahnya lain - sekitar tiga puluh pengguna, ribuan dokumen utama. Di sini, SQL perlu dipindahkan ke server terpisah, dan server terminal saja tidak dapat mengatasinya.

    Kurangnya memori untuk informasi yang tidak perlu

    Konfigurasi tipikal mencoba menggambarkan secara harfiah semua proses yang dapat dibayangkan oleh pengembang, mencoba membuat alat akuntansi universal yang disebut 1C:Enterprise. Oleh karena itu, pengguna tertentu menerima bagasi tambahan dalam bentuk kumpulan objek metadata, tabel SQL tambahan, dan detail yang tidak digunakan. Registrasi terus-menerus dan pengindeksan ulang semua hal yang tidak diperlukan dalam register program membutuhkan waktu lama dan banyak ruang.

    Kesalahan pengkodean

    Kelebihan beban server juga terjadi ketika pemrogram (terkadang) tidak memahami proses tertentu dan mereka memperkenalkan “penopang” mereka sendiri yang menambah waktu yang dibutuhkan untuk menyelesaikan tugas yang diberikan (dan juga jumlah proses kerja).

    Kesalahan program

    Antara lain, dan ini sering kali menjadi alasan utama - program 1C memiliki banyak sekali kesalahan internal. Beberapa di antaranya telah diperbaiki pada rilis berikutnya. Sejumlah besar forum didedikasikan untuk kesalahan ini, di mana admin, mendiskusikan trik terbaru, dengan bercanda mengatakan bahwa mungkin hanya orang Tajik (Dzhamshut dan Ravshan) yang bekerja di jejaring sosial yang sama.

    Jadi apa yang harus dilakukan dengan server 1C?

    Karena penyebab suatu masalah bisa berbeda, ada juga cara berbeda untuk menyelesaikan situasi tersebut:

    Memulai ulang layanan server

    Solusi tercepat dan termudah adalah dengan me-restart layanan server. Dari baris perintah Microsoft Windows (cmd): untuk berhenti, jalankan perintah - net stop "1C:Enterprise 8.3 (atau versi Anda) Server Agent", dan untuk memulai - net start "1C:Enterprise 8.3 (sesuai versi Anda) Agen Server". Solusi ini tidak menyelesaikan masalah sepenuhnya - paling sering kesalahan terulang. Frekuensi pengulangannya tergantung pada jumlah klien dan jumlah proses kerja.

    PENTING. Untuk dapat memulai kembali, Anda harus memiliki hak yang sesuai.

    Mulai ulang otomatis dan pengaturan cluster

    Terkadang bahkan satu alur kerja yang sedang berjalan dapat menghabiskan hampir seluruh RAM. Masalah ini diselesaikan dengan meningkatkan jumlah mereka dalam pengaturan cluster. Mereka menambahkan sekitar satu proses untuk setiap lima belas hingga tiga puluh pengguna.

    Interval mulai ulang. Sesaat sebelum proses sebelumnya selesai, proses rphost.exe baru dimulai. - Koneksi dari yang lama ditransfer ke sana. Ukuran memori yang diperbolehkan - jika nilai ini terlampaui, penghitung waktu mundur kedua akan dimulai.

    Interval melebihi batas volume - ketika pengatur waktu melebihi nilai ini, proses baru akan diluncurkan. Dan koneksi dari yang lama akan terhubung dengannya. Dan yang lama, pada gilirannya, ditandai tidak aktif. Mati hentikan proses setelahnya - setelah nilai parameter ini terlewati setelah menandai alur kerja sebagai tidak aktif, itu akan dihentikan oleh sistem operasi. Jika Anda menentukan parameter ini sama dengan “0”, maka semua proses yang tidak aktif tidak akan dihentikan secara otomatis.

    PENTING. Pengaturan ini ditandai dengan fakta bahwa hanya klien yang meluncurkan laporan yang salah yang terputus dari database. Dan sisanya akan dengan lancar dipindahkan ke koneksi baru (tanpa gangguan dari basisnya).

    Jumlah proses pekerja

    Jika rphost.exe kelebihan beban dengan pekerjaan latar belakang dan proses baru tidak dibuat, Anda perlu memeriksa pengaturannya:

    Maks. Ukuran memori proses pekerja adalah jumlah total memori untuk semua proses secara bersamaan. Diukur dalam byte. Jika Anda menetapkan nilai yang salah (tidak memadai untuk operasi normal), semua orang akan menerima kesalahan “Memori kosong tidak cukup di server 1c.”

    Konsumsi memori aman per panggilan - mengontrol konsumsi memori selama panggilan oleh server (dalam byte). Jika panggilan menggunakan lebih dari nomor yang ditentukan, panggilan tersebut akan diselesaikan dalam cluster. Ini tidak akan dimulai ulang. Dan hilangnya satu sesi tidak akan mempengaruhi klien lainnya.

    Jumlah memori untuk proses hingga nilai yang dianggap produktif oleh sistem oleh server - ketika nilai ini tercapai, server cluster berhenti menerima koneksi. Jumlah basis informasi per proses - mengisolasi keamanan informasi berdasarkan proses. Setelah mengisolasi basis informasi (dengan memasukkan nilai “1”), masalah biasanya terpecahkan.

    Jumlah koneksi per proses - nilai defaultnya adalah “128”. Jika database saat ini memiliki beban yang sangat berat dari pekerjaan latar belakang, Anda dapat mengurangi jumlah ini, misalnya, menjadi “25”. Dengan pengaturan ini, pengaturan cluster akan sedikit berubah:

    Tingkat toleransi kesalahan - menunjukkan jumlah server yang, jika gagal, tidak akan menyebabkan penghentian darurat klien. Dalam hal ini, layanan pencadangan akan diluncurkan secara otomatis dalam jumlah yang diperlukan.

    Mode berbagi beban - memiliki dua opsi yang memungkinkan. Jika Anda menyetel “Prioritas pada kinerja”, maka memori server akan dikonsumsi lebih banyak untuk meningkatkan kinerja. Ketika Anda memilih "Prioritas memori", cluster 1C akan menghemat memori.

    Alat basis data

    Untuk beroperasi dengan database, Anda harus menggunakan MS SQL DBMS.

    Memeriksa konfigurasi

    Mungkin penyebab errornya terletak pada informasi yang salah yang terdapat pada Konfigurasi. Untuk memeriksanya, Anda perlu menjalankan perintah “Periksa konfigurasi”. (Jangan bingung dengan pengujian!). Sebelum mengeksekusi, Anda perlu memeriksa pengaturan kotak centang (kotak centang) - "integritas logis". Jika ada kesalahan yang terdeteksi, hal ini akan tercermin dalam pesan. Dan kesalahan-kesalahan tersebut akan dihilangkan.

    Kami melihat alasan kurangnya memori bebas di server 1C dan kemungkinan cara untuk menghilangkannya. Salah satu cara pasti akan menyelesaikan masalah.

    Tidak mungkin untuk membuat daftar semua situasi ketika kesalahan 1C "Memori tidak mencukupi" terjadi (Gbr. 1). Mari kita coba mengidentifikasi yang utama:

    • Saat memperbarui konfigurasi;
    • Saat memulai aplikasi;
    • Saat membuat laporan;
    • Saat melakukan perhitungan besar (melaksanakan dokumen “Perhitungan biaya”, “Penutupan bulan” dan seterusnya).

    Alasannya sama dalam semua kasus - kurangnya memori fisik di komputer. Namun, menambahkan stik RAM tambahan ke perangkat tidak selalu menyelesaikan masalah.

    Yang menentukan ukuran memori yang tersedia

    Sistem operasi 32-bit memiliki satu fitur penting: berapa pun jumlah RAM dan ukuran file paging, sistem operasi hanya mengalokasikan 4 GB untuk menjalankan aplikasi tertentu.

    Mengingat setengah dari ruang alamat memori virtual dialokasikan untuk kebutuhan sistem itu sendiri, hanya tersisa 2GB untuk aplikasi. Saat program sedang berjalan, ruang alamat memori virtual harus dicadangkan dalam satu blok yang berdekatan. Jika hal ini tidak memungkinkan, sebuah jendela akan muncul (Gbr. 1).

    Cara menambah memori yang tersedia

    Tanpa menginstal ulang sistem operasi, ada dua opsi untuk memperbaiki situasi:


    Dengan menggunakan metode ini, Anda dapat mengurangi ruang alamat yang dialokasikan untuk sistem operasi menjadi 1 GB, meningkatkan memori untuk aplikasi hingga 3 GB.

    Perhatian! Dengan mengalokasikan memori secara manual, Anda dapat mengalami masalah dalam pengoperasian komputer pribadi Anda, hingga sistem berhenti total.

    Menghapus baris dari file boot.ini atau menjalankan perintah dan mengganti parameter 2900 dengan 2000 akan mengembalikan sistem ke keadaan semula.

    Penting untuk dipahami bahwa metode ini hanyalah solusi sementara untuk masalah ini; untuk menghilangkannya secara permanen, Anda perlu mentransfer database ke platform 64-bit.

    Memori tidak mencukupi saat membuat laporan

    Tidak terlalu sering, namun kesalahan ini terjadi saat laporan terjadi. Dalam hal ini, proses pembuatan dokumen spreadsheet tertunda dan, pada akhirnya, diakhiri dengan sebuah jendela, seperti pada gambar pertama.

    Sebelum masuk ke pengaturan sistem operasi dan mengubah parameter alokasi RAM, dalam hal ini lebih baik mencoba mengubah pengaturan laporan. Ubah tanggal, ubah pengelompokan, tambahkan pilihan. Dalam kebanyakan kasus, hal ini membantu.

    Jika kesalahan tidak terjadi dalam laporan standar (seperti kartu akun atau neraca), dan Anda memiliki akses ke kode pemrosesan sumber, periksa apakah tabel sementara dibuat dalam kueri. Direkam dalam RAM dan ada hingga akhir permintaan, mereka dapat menghabiskan sumber daya komputer yang lemah secara signifikan.

    Secara umum, untuk menghindari situasi seperti itu, sangat disarankan untuk menghancurkan tabel sementara dalam kueri segera setelah tabel tersebut tidak diperlukan lagi.

    Kebocoran memori di server

    Dalam beberapa kasus, pengguna menerima pesan yang ditunjukkan pada Gambar 3

    Beras. 3.

    Saya ingin berbicara secara terpisah tentang alasan perilaku server ini.

    Secara umum, frasa “kebocoran memori” agak tidak akurat; lebih baik dikatakan bahwa memori disimpan, berlapis-lapis. Program yang memulai proses lupa menghentikannya tepat waktu. Akibatnya, mereka menumpuk di RAM.

    Alasan kedua adalah fragmentasi memori. Jika pencadangan dan pelepasan RAM secara intensif terjadi selama pengoperasian server, pada satu titik situasi mungkin muncul ketika jumlah memori bebas mencukupi, namun tidak mungkin untuk menangkap blok alamat memori yang berkesinambungan dengan ukuran yang cukup.

    Anda dapat mengatasi masalah kedua menggunakan utilitas sistem.

    Sebagai akibatnya, mereka mungkin:

    1. Ada masalah dengan koneksi, terputus, program macet (Gbr. 4)

    Gambar.4

    1. Kesalahan dan pembekuan muncul saat membongkar basis informasi;
    2. Ada lompatan dalam memori yang ditempati oleh proses 1C.

    Perbarui kesalahan

    Opsi memori rendah ini terjadi ketika Anda mencoba memperbarui konfigurasi ke rilis saat ini. Ini dapat dikaitkan dengan sejumlah besar aplikasi yang berjalan atau kesalahan dalam database.

    Tindakan pertama ketika masalah ini terjadi adalah meluncurkan database yang diperbarui dalam mode konfigurator dan melakukan restrukturisasi (item menu Administrasi->Pengujian dan Koreksi), meskipun lebih baik melakukan berbagai pekerjaan untuk memperbaiki kesalahan dan mengindeks ulang tabel .