1C/Слишком много открытых файлов: различия между версиями
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 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= | ||
==Подробнее об ошибке== | ==Подробнее об ошибке== | ||
Строка 46: | Строка 48: | ||
# sysctl –p | # sysctl –p | ||
где | где 65000 – это то число файлов, которое нам необходимо иметь возможность открывать в нашей файловой системе. | ||
=Увеличиваем лимит на открытые файлы для процессов 1С.= | =Увеличиваем лимит на открытые файлы для процессов 1С.= | ||
Строка 82: | Строка 84: | ||
1. Отредактируем настройки: | 1. Отредактируем настройки: | ||
# systemctl edit | # systemctl edit srv1cv8 | ||
Добавим строки: | Добавим строки: | ||
Строка 97: | Строка 99: | ||
3. Перезапустим службу: | 3. Перезапустим службу: | ||
# systemctl restart | # systemctl restart srv1cv8 | ||
Отметим также, что помимо настроек, относящихся к количеству открытых файлов – может понадобится обратить внимание на настройки максимального числа сегментов разделяемой памяти для всей системы. | Отметим также, что помимо настроек, относящихся к количеству открытых файлов – может понадобится обратить внимание на настройки максимального числа сегментов разделяемой памяти для всей системы. | ||
Строка 117: | Строка 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
Устраняем ошибку «Слишком много открытых файлов» или «Too many open files» в 1С под ОС Linux
Подробнее об ошибке
Пример полного текста ошибки:
Ошибка при выполнении файловой операции … Слишком много открытых файлов.
Configuration repository operation failed. по причине: Error reading file from the file storage По причине: File operation error……: Too many open files
Описание
Данная ошибка связана с тем, что ОС Linux исчерпала ограниченный ей лимит файлов на открытие и может возникать как при работе пользователя в пользовательском режиме, так и при работе разработчика с хранилищем конфигурации.
Побочными ошибками данной проблемы могут являться также ошибки работы с дисковой подсистемой. Такие как:
Unable to open files
Решение
На всех серверах 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.
Увеличиваем лимиты на открытые файлы для процесса 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