WINE@Etersoft/Изменение установленных в системе ограничений

Материал из Русский WINE
Перейти к: навигация, поиск

Изменение установленных в системе ограничений

При использовании ресурсоёмких win-приложений могут возникать проблемы, связанные с установленными в системе ограничениями.

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

Ещё одна сторона совместной работы: одновременное использование большего количества ресурсов, что может приводить к превышению стандартных лимитов, используемых по умолчанию в различных Unix-системах. Лимиты могут определяться как в момент компиляции ядра, так и настраиваться в любой момент в процессе работы.

В контексте использования WINE наиболее актуален лимит на открытые файловые дескрипторы. Если в приложении не открываются большие файловые базы или невозможно работать более чем 3-м пользователям одновременно, это может означать, что превышен лимит на открытые файлы.

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

Как правило, в современных системах лимит ядра достаточно велик (около сотни тысяч файлов), а вот для каждого процесса установлено ограничение в 1024 файловых дескриптора. Обычно его и требуется увеличить, как правило, достаточно значения 5000.

Лимит по количеству открытых файлов для командной оболочки пользователя можно устанавливать при помощи подсистемы авторизации PAM. Для этого в конфигурационном файле /etc/security/limits.conf выставляются необходимые значения:
*    soft    nofile    5000
*    hard    nofile    5000

Чтобы лимит применялся при регистрации пользователей в системе, в файле /etc/pam.d/system-auth должна быть строка: session required /lib/security/pam_limits.so Обычно она уже имеется в системе.

Чтобы лимит применялся при входе через ssh в системе, в файле /etc/pam.d/sshd должна быть строка: session required pam_limits.so

В Debian Lenny есть бага http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=515673, из-за которой установленный лимит не применяется при входе пользователя. В этом случае нужно вписать команду ulimit -n 5000 в файл /etc/init.d/rc, выполняющийся при старте системы.

После повторного входа в систему выставленное вами значение лимита должно быть отображено в выводе команды ulimit -n. Также значения лимита можно узнать из вывода команды winediag.

Узнать текущее значение лимита ядра можно через команду winediag.

Разово изменить это значение в Linux можно посредством той же proc, для этого нужно просто записать новое значение в файл /proc/sys/fs/file-max (потребуются права суперпользователя):

# echo "104854" > /proc/sys/fs/file-max
# cat /proc/sys/fs/file-max 
104854

Чтобы настройка лимитов сохранялась между перезагрузками, потребуется внести нужные значения в файл /etc/sysctl.conf (для некоторых систем — в одном из файлов каталога /etc/sysctl.d):

# Maximum number of open files permitted
fs.file-max = 104854

Для Ubuntu 8.04 и некоторых других систем

Если в момент запуска приложения в WINE получаем ошибку: preloader: Warning: failed to reserve range 00000000-60000000 err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report

или просто предупреждение

preloader: Warning: failed to reserve range 00000000-00010000

Нужно убрать нижнюю границу маппинга адресов, однократно- командой sysctl -w vm.mmap_min_addr=0.

Для изменения системных установок правим содержимое файла /etc/sysctl.conf, заменив vm.mmap_min_addr = 65536 на vm.mmap_min_addr = 0 и выполнив sysctl -p для вступление настроек в силу.

Для Ubuntu 8.10 и новее

Если в момент запуска приложения в WINE получаем предупреждение preloader: Warning: failed to reserve range 00000000-00010000

Нужно убрать нижнюю границу маппинга адресов, однократно- командой sysctl -w vm.mmap_min_addr=0.

Для изменения системных установок правим содержимое файла /etc/sysctl.d/10-process-security.conf, заменив vm.mmap_min_addr = 65536 на vm.mmap_min_addr = 0 и выполнив sysctl -p для вступление настроек в силу.

Wine
Search.png
Программы работающие в WineСкачатьШкольный Wine
WINE@Etersoft Общие сведенияУстановка на 64-битные ОСОсобенности разработкиПатчи для WINE@EtersoftАдминистративная установкаДополнительные компонентыКак получить WINE@Etersoft?Лицензия на документациюГлоссарийИспользование аппаратных ключей защиты в LinuxДополнительная информация • [ Совместная работа | по CIFSпо NFS ] • Изменение системных ограниченийРегистрация продуктаПошаговая инструкция по установке rpm-пакетовОбращение в службу поддержкиТерминальные решенияУстановка WINE@EtersoftПодписка на обновленияНастройка WINE@EtersoftРазработчикуEnterpriseЧто такое WINE@Etersoft SQLВозможностиСреда для запуска приложений WindowsИспользование WINE@EtersoftFAQ по использованию WINE@EtersoftОсновные командыWINE@Etersoft/LocalЧто такое WINE@Etersoft Local
Программы Запуск БЭСТ 4+Запуск Консультант+ (сетевой версии)ГарантF1Инфо-Бухгалтер 8.xНалогоплательщик ЮЛ
1C Отличия от обычного WineМестоположение базы 1С1C: Предприятие 7.7 в WINEНастройка 1С 7.7 для работы с SQL-серверомУстановка 1С: Предприятия 8.1Установка 1С: Предприятия 8.1 в трёхзвенном режиме
Пользователю
Помощь Использование WinecfgИспользование RegeditПубличный префиксНесколько версийКлючи regedit
Легальность DCOM95IE5DCOMMSXML
Утилиты для работы с Wine WinetricksWineToolsQ4WinePlayOnLinuxIEs4LinuxWine-DoorsSwineWine LauncherLutris
Разработчику
Компоненты WindowsЗапрет отключения защиты программыУправление обработчиком исключенийStraceNTИзмерение скорости функций WinAPIGLУстройство чтения смарт-картПрофилированиеТесты для проверки интерфейсовНаписание тестов в системе WineАутентификация в домене ADРепозиторииПрименение Git-патчей
Помощь Создание патчейНаписание приложения под wineОтправка патчейСборка eterhackСборка wine-public
Отладка Способы отладкиWINEDEBUGWinedbg
Разработка WINE
1CODBCWinHelpКомпасМетодикаТестирование доступаЦветаФайловый диалогТестированиеЛитератураИзображенияWin32ШрифтыФайловые блокировкиСсылкиКлючи защитыRPMWineGeckoListViewУпаковка Wine
Производителю
Родственные проекты
LUKReactOSARWINSSCrossOverKernelEx
Прочее
PageSetupDlgFreeBSDWwr