При досягненні граничної величини робочих процесів на сервері 1С виникають помилки. Ми розглянемо одну з них, присвячену темі "Недостатньо вільної пам'яті на сервері 1С: Підприємства".
Методика усунення помилки "Недостатньо вільної пам'яті на сервері 1С: Підприємства".
зміст
- 1 Причини заповнення пам'яті
- 1.1 Недостатня потужність заліза
- 1.2 Брак пам'яті для зайвої інформації
- 1.3 помилки кодування
- 1.4 помилки програми
- 2 Так що ж робити з сервером 1С
- 2.1 Перезапуск служби сервера
- 2.2 Автоперезапуск і налаштування кластера
- 2.3 Кількість робочих процесів
- 2.4 Інструмент для роботи з базою
- 2.5 Перевірка конфігурації
Причини заповнення пам'яті
Об'єм пам'яті робочих процесів при роботі на агент-сервері 1С не є нескінченним. При його максимальному завантаженні користувач бачить перед собою радує своєю новизною повідомлення - "Недостатньо вільної пам'яті на сервері 1С: Підприємства".
Спочатку про причини виникнення подібного роду повідомлень - чому пам'яті не вистачає. Їх може бути кілька:
Недостатня потужність заліза
Якщо в системі працює до п'яти осіб - тоді буде достатньо одного восьмигігабайтним компа з двома гвинтами (на одному - SERVER,на другому - SQL) і додатково встановлених фішок. Але інша справа - чоловік тридцять користувачів, тисячі документів первинки. Тут і SQL потрібно виносити в окремий сервер, і одним сервером терміналів вже не впоратися.
Брак пам'яті для зайвої інформації
Типові конфігурації намагаються описувати буквально всі процеси, які тільки міг собі уявити розробник, намагаючись створити універсальне бухгалтерське засіб під назвою 1С: Підприємство. Тому конкретний користувач отримує додатковий багаж у вигляді безодні об'єктів метаданих, додаткових таблиць SQL, невикористовуваних реквізитів. Постійна прописка і переіндексація всього цього непотрібного в регістрах програми займає тривалий час і багато місця.
помилки кодування
Перевантаження сервера виникає і при нерозумінні (іноді) програмістами деяких процесів і впровадження ними своїх "милиць", що збільшують термін виконання поставлених завдань (і кількість робочих процесів теж).
помилки програми
Крім усього іншого, і це є часто чи не основною причиною - програма 1С має неймовірну кількість внутрішніх помилок. Деякі з них виправляються в наступних релізах.Цим помилок присвячена велика кількість форумів, на яких адміни, обговорюючи чергові каверзи, жартома кажуть, що в один ес працюють, напевно, одні таджики (Джамшут і Равшан).
Так що ж робити з сервером 1С
Оскільки причини виникнення проблеми можуть бути різними, то і способи виходу з ситуації теж є різні:
Перезапуск служби сервера
Найшвидшим і простим способом вирішення є перезапуск служби сервера. З командного рядка Microsoft Windows (cmd): для зупинки виконується команда - net stop "1C: Enterprise 8.3 (або ваша версія) Server Agent", а для запуску - net start "1C: Enterprise 8.3 (відповідно вашої версії) Server Agent". Таке рішення не знімає питання повністю - найчастіше помилка повторюється. Частота її повторів залежить від кількості клієнтів і кількості робочих процесів.
ВАЖЛИВО. Для можливості перезапуску потрібно володіти відповідними правами.Автоперезапуск і налаштування кластера
Іноді навіть один виконуваний робочий процес може зайняти мало не всю оперативку. Таке завдання вирішують шляхом збільшення їх кількості в налаштуваннях кластера. Додають приблизно по одному процесу для кожних п'ятнадцяти-тридцяти користувачів.
Інтервал перезапуску. Незадовго до завершення попереднього запускається новий процес rphost.exe.- На нього переходять з'єднання від старого. Допустимий обсяг пам'яті - при перевищенні цієї величини буде запущений секундний таймер відліку.
Інтервал по перевищенню граничного обсягу - при перевищенні таймером відліку цього значення буде запущений новий процес. І на нього подвяжутся з'єднання від старого. А старий, в свою чергу, позначається неактивним. Викл. процеси зупиняти через - по закінченні значення цього параметра після позначки робочого процесу неактивним, відбудеться його завершення операційною системою. Якщо такий параметр вказати рівним "0" - тоді все неактивні процеси не будуть автоматично завершуватися.
ВАЖЛИВО. Ця установка характерна тим, що відключає від бази тільки того з клієнтів, який запустив некоректний звіт. А решта - будуть плавно переміщені до нових сполук (без переривання від своєї бази).Кількість робочих процесів
При перевантаженні rphost.exe з фоновими завданнями і відсутності створення нових процесів потрібно перевірити настройки:
Макс. обсяг пам'яті робочих процесів - це сумарний обсяг пам'яті для всіх процесів разом. Вимірюється в байтах. При установці неправильного значення (неадекватного нормальній роботі) усі отримають помилку "Недостатньо вільної пам'яті на сервері 1с".
Безпечний витрата пам'яті на 1 виклик - контролює витрачання пам'яті при виклику сервером (в байтах). При використанні викликом більшої кількості ніж зазначено - він буде завершений всередині кластера. Перезапуск його проведений не буде. А втрата сеансу не відіб'ється на інших клієнтів.
Обсяг пам'яті для процесів, до величини якого сервер вважається системою продуктивним - при досягненні цього значення сервер кластера перестає приймати з'єднання. Кількість інформаційних баз на процес - ізолює ІБ по процесам. Після ізоляції інформаційних баз (при введенні значення - "1") проблеми зазвичай вирішуються.
Кількість з'єднань на один процес - за замовчуванням встановлено значення "128". Якщо поточна база відрізняється дуже великим навантаженням від фонових завдань, то можна зменшити цю кількість, наприклад, до "25". При таких налаштуваннях трохи зміниться і настройка кластера:
Рівень відмовостійкості - показує ту кількість серверів, при виході з ладу якого не відбудеться аварійного завершення роботи клієнтів. При цьому автоматично будуть запущені в потрібній кількості резервні сервіси.
Режим розподілу навантаження - має два можливих варіанти. Якщо встановити "Пріоритет по продуктивності" - то пам'ять сервера буде витрачатися більше для збільшення продуктивності. При виборі "Пріоритет по пам'яті" - кластером 1С пам'ять заощаджуватиметься.
Інструмент для роботи з базою
Для оперування з базою даних необхідно користуватися засобами СУБД MS SQL.
Перевірка конфігурації
Можливо, причина помилка криється в некоректної інформації, що міститься в Зміни. Для її перевірки потрібно виконати команду "Перевірка конфігурації". (Не плутати з тестуванням!). Перед виконанням потрібно перевірити установку чекбокса (прапорця) - "логічна цілісність". При виявленні некоректності це буде відображено в повідомленні. А помилки будуть видалені.
Ми розглянули причини відсутності вільної пам'яті на сервері 1С та можливі шляхи усунення цього. Один із способів напевно дозволить вирішити проблему.
Коментуйте свій досвід в цьому питанні, - діліться новинами в цьому питанні.