1C/Слишком много открытых файлов: различия между версиями

Материал из ALT Linux Wiki
< 1C
(Новая страница: «=Устраняем ошибку «Слишком много открытых файлов» или «Too many open files» в 1С под ОС Linux= ==Подробнее об ошибке== Пример полного текста ошибки: Ошибка при выполнении файловой операции … Слишком много открытых файлов. 750px Configuration repository operat...»)
 
 
(не показано 7 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{Note|Короткая ссылка сюда - [http://www.altlinux.org/1climits http://www.altlinux.org/1climits] }}
=Устраняем ошибку «Слишком много открытых файлов» или «Too many open files» в 1С под ОС Linux=
=Устраняем ошибку «Слишком много открытых файлов» или «Too many open files» в 1С под ОС Linux=
==Подробнее об ошибке==
==Подробнее об ошибке==
Строка 39: Строка 41:
Данное значение используем в дальнейшей настройке.
Данное значение используем в дальнейшей настройке.


Но, если понадобится их увеличить – добавим строку настроек в конфигурационный файл /etc/sysctl.conf любым удобным способом:
Но, если понадобится их увеличить – добавим строку настроек в конфигурационный файл {{path|/etc/sysctl.conf}} любым удобным способом:


  # echo "fs.file-max = 65000" >>/etc/sysctl.conf
  # echo "fs.file-max = 65000" >>/etc/sysctl.conf
Строка 46: Строка 48:
  # sysctl –p
  # sysctl –p


где 6500 – это то число файлов, которое нам необходимо иметь возможность открывать в нашей файловой системе.
где 65000 – это то число файлов, которое нам необходимо иметь возможность открывать в нашей файловой системе.


=Увеличиваем лимит на открытые файлы для процессов 1С.=
=Увеличиваем лимит на открытые файлы для процессов 1С.=
Строка 52: Строка 54:
1. Отредактируем файл:
1. Отредактируем файл:
# vim /etc/security/limits.conf
# mcedit /etc/security/limits.conf


Добавим строки:
Добавим строки:
Строка 62: Строка 64:
2. Перечитаем параметры:
2. Перечитаем параметры:


# sysctl –p
# sysctl –p


3. Убедимся, что изменения вступили в силу. Получим pid службы:
3. Убедимся, что изменения вступили в силу. Получим pid службы:


# ps -fu usr1cv8 | grep ragent
# ps -fu usr1cv8 | grep ragent


4. По номеру pid получим значение параметра «max open files»:
4. По номеру pid получим значение параметра «max open files»:


# cat /proc/pid/limits | grep open
# cat /proc/pid/limits | grep open


Значение должно быть 65000.
Значение должно быть 65000.
Строка 82: Строка 84:
1. Отредактируем настройки:
1. Отредактируем настройки:


  # systemctl edit crsrv1cv8
  # systemctl edit srv1cv8


Добавим строки:
Добавим строки:
Строка 97: Строка 99:


3. Перезапустим службу:
3. Перезапустим службу:
  # systemctl restart crsrv1cv8
  # systemctl restart srv1cv8


Отметим также, что помимо настроек, относящихся к количеству открытых файлов – может понадобится обратить внимание на настройки максимального числа сегментов разделяемой памяти для всей системы.
Отметим также, что помимо настроек, относящихся к количеству открытых файлов – может понадобится обратить внимание на настройки максимального числа сегментов разделяемой памяти для всей системы.


=Увеличиваем максимальное число сегментов разделяемой памяти для всей системы.=
=Увеличиваем максимальное число сегментов разделяемой памяти для всей системы.=
 
При необходимости — установим настройку:
    При необходимости — установим настройку:


  # echo "kernel.shmmni = 65000" >> /etc/sysctl.conf
  # echo "kernel.shmmni = 65000" >> /etc/sysctl.conf
Строка 109: Строка 110:
  # sysctl -p
  # sysctl -p


    Проверим, что настройка установилась:
Проверим, что настройка установилась:


  # cat /proc/sys/kernel/shmmni
  # cat /proc/sys/kernel/shmmni
Строка 118: Строка 119:
[[Файл:1c_manyfiles_error_5.png]]
[[Файл:1c_manyfiles_error_5.png]]


=Источник=
*[https://1s-on.ru/oshibka-slishkom-mnogo-otkrytyh-fajlov-ilitoo-many-open-files-v-1s-na-linux/ Ошибка «Слишком много открытых файлов» или«Too many open files» В 1С на Linux - 1s-on.ru]
{{Category navigation|title=1C|category=1C|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=1C|category=1C|sortkey={{SUBPAGENAME}}}}

Текущая версия от 13:28, 27 марта 2025

Примечание: Короткая ссылка сюда - http://www.altlinux.org/1climits


Устраняем ошибку «Слишком много открытых файлов» или «Too many open files» в 1С под ОС Linux

Подробнее об ошибке

Пример полного текста ошибки:

Ошибка при выполнении файловой операции … Слишком много открытых файлов.

1c manyfiles error 1.png

Configuration repository operation failed.
по причине:
Error reading file from the file storage
По причине:
File operation error……: Too many open files

1c manyfiles error 2.jpg

Описание

Данная ошибка связана с тем, что ОС Linux исчерпала ограниченный ей лимит файлов на открытие и может возникать как при работе пользователя в пользовательском режиме, так и при работе разработчика с хранилищем конфигурации.

Побочными ошибками данной проблемы могут являться также ошибки работы с дисковой подсистемой. Такие как:

Unable to open files

1c manyfiles error 3.png

Решение

На всех серверах 1С выполним следующие настройки лимитов открываемых файлов.

Увеличиваем лимит на открытые файлы всей системы.

1. Получим значение количества файлов, которые можно открыть в нашей файловой системе:

# cat /proc/sys/fs/file-max

Скорее всего, здесь мы увидим числа порядка: 97822; 65208 и т.д.

Такие пределы нас вполне устраивают.

Данное значение используем в дальнейшей настройке.

Но, если понадобится их увеличить – добавим строку настроек в конфигурационный файл /etc/sysctl.conf любым удобным способом:

# echo "fs.file-max = 65000" >>/etc/sysctl.conf

2. Перечитаем параметры:

# sysctl –p

где 65000 – это то число файлов, которое нам необходимо иметь возможность открывать в нашей файловой системе.

Увеличиваем лимит на открытые файлы для процессов 1С.

1. Отредактируем файл:

# mcedit /etc/security/limits.conf

Добавим строки:

usr1cv8 hard nofile 65000
 
usr1cv8 soft nofile 65000

2. Перечитаем параметры:

# sysctl –p

3. Убедимся, что изменения вступили в силу. Получим pid службы:

# ps -fu usr1cv8 | grep ragent

4. По номеру pid получим значение параметра «max open files»:

# cat /proc/pid/limits | grep open

Значение должно быть 65000.

1c manyfiles error 4.png

Увеличиваем лимиты на открытые файлы для процесса 1С редактированием файла демона.

Результат данной настройки будет аналогичен предыдущему варианту.

1. Отредактируем настройки:

# systemctl edit srv1cv8

Добавим строки:

[Service]
 
LimitNOFILE=65000
 
LimitNOFILESoft=65000

2. Обновим конфигурацию демон:

# systemctl daemon-reload

3. Перезапустим службу:

# systemctl restart srv1cv8

Отметим также, что помимо настроек, относящихся к количеству открытых файлов – может понадобится обратить внимание на настройки максимального числа сегментов разделяемой памяти для всей системы.

Увеличиваем максимальное число сегментов разделяемой памяти для всей системы.

При необходимости — установим настройку:

# echo "kernel.shmmni = 65000" >> /etc/sysctl.conf
 
# sysctl -p

Проверим, что настройка установилась:

# cat /proc/sys/kernel/shmmni

Все наши модифицированные настройки можем увидеть в конфигурационном файле /etc/sysctl.conf:

$ cat /etc/sysctl.conf

1c manyfiles error 5.png

Источник