Администрирование ОС Solaris

       

Загрузка модулей


Некоторые полезные модули, если они не требуются для выполняемых системой задач, могут не загружаться в начале работы системы. Для того чтобы обеспечить их загрузку, следует использовать вышеупомянутые настройки в /etc/system. Если требуется загрузить модуль во время работы системы, не перегружая ее, воспользуйтесь командой modload.

Предположим, нам потребовалось проверить количество семафоров в ядре и мы обнаружили, что модуль, отвечающий за семафоры, не загружен:

sysdef | tail -20

* * Streams Tunables * 9 maximum number of pushes allowed (NSTRPUSH) 65536 maximum stream message size (STRMSGSZ) 1024 max size of ctl part of message (STRCTLSZ) * * IPC Messages module is not loaded * * * IPC Semaphores module is not loaded * * * IPC Shared Memory module is not loaded * * * Time Sharing Scheduler Tunables * 60 maximum time sharing user priority (TSMAXUPRI) SYS system class name (SYS_NAME)

Стандартные модули располагаются в подкаталогах каталога /kernel:

ls -l /kernel

total 2856 drwxr-xr-x 2 root sys 512 Мар 17 10:42 dacf drwxr-xr-x 2 root sys 3072 Мар 17 11:16 drv drwxr-xr-x 2 root sys 512 Мар 17 11:10 exec drwxr-xr-x 2 root sys 512 Мар 17 10:52 fs -rwxr-xr-x 1 root sys 1438036 Ноя 4 2002 genunix drwxr-xr-x 2 root sys 512 Мар 17 11:07 ipp drwxr-xr-x 2 root sys 512 Мар 17 10:50 mach drwxr-xr-x 3 root sys 1024 Мар 17 11:07 misc drwxr-xr-x 2 root sys 512 Мар 17 10:43 sched drwxr-xr-x 2 root sys 1024 Мар 17 10:53 strmod drwxr-xr-x 2 root sys 512 Мар 17 10:49 sys

Загружаем модуль командой

modload /kernel/misc/ipc

Теперь он загружен и будет отображаться программами мониторинга:

modinfo | grep ipc 146 feab6fb2 332 - 1 ipc (common ipc code) sysdef | tail -28 * * IPC Messages * 2048 max message size (MSGMAX) 4096 max bytes on queue (MSGMNB) 50 message queue identifiers (MSGMNI) 40 system message headers (MSGTQL) * * IPC Semaphores * 100 semaphore identifiers (SEMMNI) 60 semaphores in system (SEMMNS) 30 undo structures in system (SEMMNU) 25 max semaphores per id (SEMMSL) 100 max operations per semop call (SEMOPM) 10 max undo entries per process (SEMUME) 32767 semaphore maximum value (SEMVMX) 16384 adjust on exit max value (SEMAEM) * * IPC Shared Memory * 8388608 max shared memory segment size (SHMMAX) 100 shared memory identifiers (SHMMNI) * * Time Sharing Scheduler Tunables * 60 maximum time sharing user priority (TSMAXUPRI) SYS system class name (SYS_NAME)


Для выгрузки модуля следует дать команду modunload:

modunload ipc usage: modunload -i <module_id> [-e <exec_file>] modunload -i 146 can't unload the module: Device busy

Если модуль чем-то занят, или его ресурс кем-то использовался ранее и блокировка не снята, удалить модуль не удастся.

Изменим файл /etc/system:

set semsys:seminfo_semmni=101 set semsys:seminfo_semopm=101

После перезагрузки картина будет иной, но модуль ipc придется загрузить вручную, так как он относится к модулям, которые загружаются по запросу:

modload misc/ipc sysdef * * IPC Semaphores * 101 semaphore identifiers (SEMMNI) 60 semaphores in system (SEMMNS) 30 undo structures in system (SEMMNU) 25 max semaphores per id (SEMMSL) 101 max operations per semop call (SEMOPM) 10 max undo entries per process (SEMUME) 32767 semaphore maximum value (SEMVMX) 16384 adjust on exit max value (SEMAEM) *

Вывод sysdef в этом примере сильно сокращен.


Содержание раздела