Главная » Статьи » Ядро |
Любой, кто администрировал систему коммерческой важности, знаком с головной болью из-за падения системы. Одной из основных причин, по которой компании запускают UNIX сервера, является их стабильность. При аккуратном администрировании такой сервер не приходится перезапускать в течение очень долгого времени. Более того, выполнение администраторских задач, даже на уровне ядра, может выполняться на лету, сохраняя стабильность сервера. Вам может понадобиться перезапустить сервер при апгрейде оборудования или если кто-нибудь оборвет питающий провод, однако большую часть администрирования можно выполнять без этого. Эта статья включает подсказки и советы для выполнения различных административных задач и изменения вашей системы без перезагрузки. Linux позволяет вносить изменения в систему и устанавливать различные параметры во время работы многими способами. Есть две основные формы, общие для всех систем Linux, которые заложены в ядро (вы можете найти много информации о ядре Linux и загрузить исходный код ядра из архивов; см. Источники), а также в том ядре, которое идет в дистрибутиве. В этой статье рассматриваются оба способа. Внимание: Эта статья написана для ядер серии 2.4-х. Некоторые опции и возможности могут отличаться в ядрах других серий. Изменение параметров работающего ядра Linux имеет отличный способ изменять параметры ядра во время работы системы и без необходимости перезагрузки. Это делается при помощи виртуальной файловой системы /proc. Linux Gazette дает один из простейших и легчайших объяснений /proc, которые я когда-либо видел. (см. Источники.) Вкратце, файловая система /proc дает вам возможность заглянуть в работающее ядро, что может быть полезно для мониторинга производительности, проверки системной информации, конфигурирования системы и изменения конфигурации. Эта файловая система называется виртуальной, потому что это в действительности не файловая система. Это карта, создаваемая ядром и присоединяемая к вашей обычной файловой системе, чтобы обеспечить доступ. Тот факт, что мы можем разными способами внести изменения в ядро во время работы системы дает системному администратору огромную мощь и гибкость при изменении параметров. Но может быть слишком много власти это плохо? Иногда. Если вы собираетесь внести изменения в файловую систему /proc, вы должны быть уверены, что вы знаете, что вы делаете и какой эффект произведут на систему ваши действия. Это очень полезная техника, но одно неверное движение может вызвать неожиданные последствия. Если вы не уверены и новичок в таких делах, попрактикуйтесь на машине с меньшей важностью для ваших дел.
Сначала, подумайте о том, как не вносить изменения в ядро. Есть две отличных причины, почему вам не стоит просто перейти в /proc, открыть файл в текстовом редакторе, сделать несколько изменений и сохранить файл. Вот они:
Ответом на это является не использование текстового редактора для внесения изменений. Поэтому для внесения изменения в что-либо в файловой системе /proc, вам следует использовать команду echo и перенаправлять вывод команды в выбранный файл в /proc. Например:
Аналогично, если вы хотите увидеть информацию из /proc, вам следует использовать либо команду, которая предназначена для этого, либо команду cat.
Вам не нужно быть разработчиком ядра, чтобы пользоваться /proc, а базовое понимание этой структуры отлично вам поможет. Вы можете найти, что вам не нужно знать обо всем в /proc, до тех пор пока пользователь не попросит вас увеличить производительность и вы должны будете изучить куда вносить изменения. Файловая система /proc помогает администратору в этом через свою структуру и атрибуты файлов. Каждый файл в /proc имеет особый набор атрибутов и может принадлежать конкретному пользователю по его ID. Сделано это очень аккуратно, так что правильная работа обеспечена и администратору и пользователям. Следующий список обобщает какие атрибуты могут быть у файлов:
В основном в /proc вы найдете файлы read-only за исключением /proc/sys, которая содержит большинство параметров ядра и предназначена для изменения во время работы системы. Как результат в этой статье рассматривается в основном эта директория. Последнее, что вам нужно знать о изменении файлов в /proc - это то, что нужно записывать в эти файлы. Вы заметите, что некоторые из файлов могут быть легко прочитаны человеком, а некоторые являются файлами данных и могут быть прочитаны только при специальных утилит таких как top, lspci,и free. Вы также заметите, что эти легко читаемые файлы имеют два различных формата: некоторые являются бинарными ключами, а другие содержат больше информации. Файлы с бинарными ключами содержат только 0 (выключено) или 1 (включено) для некоторых функций ядра.
Детальная информация об использовании каждого файла в /proc выходит за рамки этой статьи. За дополнительной информацией о любом файле /proc стоит непосредственно обратиться в исходники ядра, которые содержат очень хорошую документацию. Следующие файлы в /proc наиболее полезны для системного администратора. Они не являются исчерпывающими, но полезны для повседневного использования. /proc/scsi/scsi
Чтобы эта команда работала правильно, вы должны указать параметры значений w, x, y, и z следующим образом:
Поскольку ваш диск добавлен в систему, вы можете монтировать любую предварительно форматированную файловую систему или вы можете начать форматирование ее, и так далее. Если вы не уверены в том, каким устройством является установленный диск или вы хотите проверить существующие партиции, вы можете использовать команду fdisk -l, которая выведет необходимую информацию для вас. Команда для удаления устройства из системы без перезагрузки:
Перед тем как ввести эту команду и удалить SCSI диск, убедитесь, что вы отмонтировали файловые системы на этом диске. /proc/sys/fs/file-max Default setting: 4096 /proc/sys/fs/file-nr
/proc/sys/fs/inode-* /proc/sys/fs/overflowuid and /proc/sys/fs/overflowgid Default Setting: 65534 /proc/sys/fs/super-max Default setting: 256 /proc/sys/fs/super-nr /proc/sys/kernel/acct
Default setting: 2 4 30 Эти значения остановят подсчет, если в файловой системе менее 2 процентов свободного пространства и начнет опять если появится 4 или более процентов. Проверка производится каждые 30 секунд. /proc/sys/kernel/ctrl-alt-del
Default setting: 0 /proc/sys/kernel/domainname /proc/sys/kernel/hostname /proc/sys/kernel/msgmax Default setting: 8192 /proc/sys/kernel/msgmnb Default setting: 16384 /proc/sys/kernel/msgmni Default setting: 16 /proc/sys/kernel/panic Default setting: 0 /proc/sys/kernel/printk
Default setting: 6 4 1 7 /proc/sys/kernel/shmall Default setting: 2097152 /proc/sys/kernel/shmax Default setting: 33554432 /proc/sys/kernel/shmmni Default setting: 4096 /proc/sys/kernel/sysrq Default setting: 0 /proc/sys/kernel/threads-max Default setting: 2048 /proc/sys/net/core/message_burst Default setting: 50 (5 seconds) /proc/sys/net/core/message_cost Default setting: 5 /proc/sys/net/core/netdev_max_backlog Default setting: 300 /proc/sys/net/core/optmem_max /proc/sys/net/core/rmem_default /proc/sys/net/core/rmem_max /proc/sys/net/core/wmem_default /proc/sys/net/core/wmem_max /proc/sys/net/ipv4 /proc/sys/net/ipv6 /proc/sys/vm/buffermem
Default setting: 2 10 60 /proc/sys/vm/freepages
Default setting: 512 768 1024 /proc/sys/vm/kswapd
Default setting: 512 32 8 /proc/sys/vm/pagecache
Выполнение постоянных установок ядра Полезная утилита для внесения изменений в любые параметры ядра находится в директории /proc/sys. Она позволяет вам вносить изменения в работающее ядро (подобно echo и метод перенаправления, описанный выше), и имеет файл конфигурации, который выполняется при загрузке. Это позволяет чтобы внесенные изменения оставались в ядре после перезагрузки системы. Утилита называется sysctl и она полностью документирована в man sysctl(8). Файл конфигурации для sysctl - /etc/sysctl.conf, который может быть редактирован, синтаксис файла описан в man sysctl.conf(8). Sysctl использует файлы в /proc/sys как индивидуальные переменные, которые могут быть изменены. Например, файл в /proc/sys, который представляет максимальное количество заголовков файлов в системе, /proc/sys/fs/file-max, представлен как fs.file-max. Этот пример требует некоторых дополнительных пояснений в записи sysctl. Так как sysctl может только изменять переменные в директории /proc/sys, то часть имени переменной обозначающая директорию отбрасывается. Другое изменение касается слэшей, которые заменяются на точки. Вот два простых правила для преобразования файлов в /proc/sys и переменных в sysctl:
Эти два правила позволят вам преобразовать любой файл в /proc/sys в любое имя переменной в sysctl. Обычное преобразование имени файла в переменную:
Вы можете увидеть все переменные, доступные для изменения, используя команду sysctl -a. Переменные могут также быть изменены с помощью sysctl, которая выполняет ту же работу что и echo. Эта запись объясняет это:
Используя пример с file-max, мы можем изменить это значение на 16384, используя один из двух методов:
Или:
Не забывайте, что sysctl не добавляет изменения в конфигурационный файл; вы должны сделать это вручную. Если вы хотите, чтобы ваши изменения остались в системе и после перезагрузки, вы должны настроить этот файл. Внимание: Не все дистрибутивы обеспечивают поддержку sysctl. Если это относится к вашей системе, то вы можете использовать echo и метод перенаправления, как описано выше и добавить эти команды в загрузочный скрипт, чтобы они выполнялись каждый раз при загрузке системы.
Есть возможность изменять другие параметры (не ядра) во время работы системы и сделать, чтобы эти изменения оказали эффект без перезагрузки системы. В основном это сервисы, демоны и серверы, которые прописаны в директории /etc/init.d. Поскольку в этой директории находится широкий спектр скриптов, то нет возможности рассмотреть их все здесь. Однако, ниже будут приведены несколько примеров того, как можно манипулировать этими скриптами в различных дистрибутивах Linux. Примеры изменения демона и перезагрузки конфигурации без перезагрузки системы могут быть полезны при:
Сначала, основной способ манипулирования системными сервисами через скрипты в /etc/init.d. Эти скрипты используют параметры для управления своими сервисами. Вы можете ввести в командной строке имя сервиса без параметров чтобы увидеть допустимые параметры. Общие параметры таковы:
В качестве примера следующая команда перезагрузит конфигурацию вашего xinetd без прерывания любых присоединенных сессий пользователей (полезно, если вы вносите изменения в ваш /etc/xinetd.conf):
Red Hat предоставляет комнанду service, которая будет управлять сервисом для вас. Команда service выполняет те же действия, что и ввод имени скрипта. Синтаксис команды:
Пример:
SuSE также предоставляет команду rc. Она похожа на service, но не имеет пробела между командой и именем скрипта. Синтаксис команды:
Пример:
Так же как и при изменении параметров ядра, при перезагрузке системы, все внесенные изменения будут потеряны. Многие дистрибутивы позволяют использовать команду chkconfig, которая управляет сервисами, запускаемыми на различных уровнях (включая загрузку). Во время написания статьи синтаксис команды chkconfig несколько отличался в различных версиях Linux, но если вы введете команду chkconfig без параметров, вы получите список возможных параметров и их использование. Больше информации о chkconfig может быть получено в man chkconfig(8).
Конфигурирования ядра на лету с использованием файловой системы /proc не просто, но поняв один раз его структуру и то, как манипулировать различными параметрами и файлами, вы получите мощную утилиту для управления вашими сервисами в любое время. Источник: http://www.ibm.com/developerworks/ru/library/l-adfly/index.html | |||||||||||||||||||||||||
Просмотров: 2448 | |
Всего комментариев: 0 | |
Операционные Системы
[61]
ОС Open Source
|
Мобильный Linux [26] |
Сравнение ОС [7] |
Статьи о Linux [16] |
Свободное ПО [10] |
Програмирование [6] |
Не для нубов [5] |
Ядро [13] |
Хранилище данных [9] |
Устройства [1] |
Установка/конфигурирование/планиров [16] |
Файловые системы [3] |
Управление, основанное на политиках [1] |
Управление инфраструктурой [0] |
Серверы [5] |
Биографии [6] |
Прочее [25] |