Тюнинг ядра Linux j1m (j1m@list.ru) Хакер, номер #082, стр. 082-102-2 Для загрузки модулей "на лету" ядро использует стандартную программу /sbin/modprobe. В этом можно убедиться, заглянув в файл /proc/sys/kernel/modprobe. Если команда modprobe находится где-то в другом месте или носит другое имя, об этом можно оповестить систему, записав в этот файл измененное значение. Подобную функцию выполняет файл /proc/sys/kernel/hotplug. Программа, имя которой записано в этот файл, будет запускаться каждый раз при подключении к ПК нового hotplug-устройства. Ты можешь записать в него "/bin/true", если в системе не предусмотрено подключение таких девайсов. На архитектуре i386 максимальный UID и GID равен 65535 (16 разрядов). В случае, если будет задан идентификатор, превосходящий это число, ядро само выставит дефолтное значение, которое записано в файлах /proc/sys/kernel/overflowuid и /proc/sys/kernel/overflowgid. По умолчанию в обоих файлах находится число 65534, и нет особого смысла его изменять. Если ядро поддерживает межпроцессные коммуникации SystemV (опция General setup ->gt; System V IPC), то каталог /proc/sys/kernel будет содержать еще семь дополнительных файлов: sem, msgmax, msgmnb, msgmni, shmall, shmmax, shmmni. Вообще говоря, SystemV IPC стала самой бесполезной особенностью оригинального UNIX, перенесенной в Linux. В настоящее время из трех видов коммуникаций используется только совместно используемая память, управление которой происходит через файлы shmall (максимальное количество сегментов), shmmax (максимальный размер сегмента) и shmmin (минимальный размер сегмента). Если у тебя есть приложение, работающее одновременно с огромным количеством файлов (база данных, веб-сервер и т.п.), то будет полезным увеличить число одновременно открытых файлов, записав в /proc/sys/kernel/pid_max необходимое значение. Теперь перейдем к более системным вещам. Наверняка ты сталкивался с такой проблемой, как "паника ядра". Это происходит, когда ядро по каким-либо причинам не может выполнять дальнейшую работу (самая частая причина - отсутствие поддержки корневой файловой системы). По умолчанию машина просто останавливается, но неплохо было бы установить небольшой таймаут, по истечению которого выполнялась бы перезагрузка. Это легко сделать, прописав в файл /proc/sys/kernel/panic число, отражающее интервал в секундах. Менее плачевная ситуация - это "oops", когда ядро еще в состоянии продолжать работу, что и делает по дефолту. Но прописав в /proc/sys/kernel/panic_on_oops единицу, ты заставишь ядро паниковать и в этом случае. При формировании core-файла его имя принимает вид имени обрушившейся программы плюс расширение, которое извлекается из /proc/sys/kernel/core_pattern. Соответственно, если тебе чем-то не приглянулось расширение ".core", ты можешь его легко изменить. В дополнение к этой возможности можно записать в файл /proc/sys/kernel/core_uses_pid единицу, и к расширению core будет прибавляться еще и PID процесса. Удобно, если требуется отлаживать несколько экземпляров процесса раздельно. |