[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по настройке производительности


Экономия ресурсов процессора при обработке запросов на вход в систему (команда mkpasswd)

В системе с большим числом пользователей можно ускорить вход в систему и сэкономить ресурсы процессора за счет применения хэшированного файла /etc/passwd для поиска идентификаторов пользователей. В этом случае обычный файл /etc/passwd сохраняется в системе, но не применяется для обработки запросов на вход в систему. Для создания хэшированного файла применяется команда mkpasswd. Если хэшированная версия файла устарела, то при входе в систему поиск идентификатора пользователя выполняется путем последовательного перебора записей обычного файла /etc/passwd. Для выполнения такого поиска требуется значительно больше ресурсов процессора.

В версиях AIX младше 4.3 для создания хэшированного файла применяется команда mkpasswd /etc/passwd. Эта команда создает файлы /etc/passwd.pag и /etc/passwd.dir. В результате вместо поиска идентификатора в файле /etc/passwd выполняется хэш-поиск в файле passwd.pag (если этот файл создан позже, чем файлы /etc/passwd и /etc/security/passwd; в противном случае поиск выполняется в обычном файле).

В AIX версии 4.3 и старше для создания хэшированного файла применяется команда mkpasswd -f. Эта команда создает индексные версии файлов /etc/passwd, /etc/security/passwd и /etc/security/lastlog . В результате создаются файлы /etc/passwd.nm.idx, /etc/passwd.id.idx, /etc/security/passwd.idx и /etc/security/lastlog.idx. Обратите внимание, что создание таких файлов позволяет значительно повысить производительность приложений, для запуска которых требуется ввести зашифрованный пароль (например, процедуры входа в систему и других программ, запрашивающих у пользователя пароль).

Приложение, не запрашивающее у пользователя зашифрованный пароль, будет выполняться быстрее, если для проверки имени и пароля пользователя будет применяться функция _getpwent() вместо getpwent(), _getpwnam_shadow(name,0) вместо getpwnam(name) и _getpwuid_shadow(uid,0) вместо getpwuid(uid). Это связано с тем, что указанные функции не выполняют поиск в файле /etc/security/passwd.

Не изменяйте файлы паролей вручную, так как при этом будет обновлено время последнего изменения файла. Это время перестанет совпадать со временем изменения файлов базы данных (.pag и .idx), и в итоге будет применяться алгоритм поиска по умолчанию (последовательный перебор записей). При вызове команд passwd, mkuser, chuser и rmuser (или аналогичных команд SMIT) хэшированные файлы обновляются автоматически. Если файл /etc/passwd был изменен вручную или с помощью команды pwdadm, то необходимо обновить хэшированные, или индексные, файлы.

Примечание: Команда mkpasswd не изменяет базы данных пользователей NIS, DCE и LDAP.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]