Файловая система procfs

Некоторые параметры работы ядра и его модулей можно изменять, не перегружая систему. Для этого используется  виртуальная файловая система procfs, размещаемая в  каталоге /рrос, которая представляет собой  дополнительный  механизм, позволяющий ядру обмениваться данными с процессами.

ПРИМЕЧАНИЕ

Подробную информацию о работе procfs можно найти на сайте проекта http:// procps.sf.net/.

Первоначально procfs была разработана для свободного получения  информации о состоянии процессов, теперь ее функции выше. Виртуальной она называется потому, что имеющиеся здесь файлы и каталоги на самом деле не располагаются на жестком диске. После загрузки ядра они находятся в оперативной памяти. Для пользователя этот механизм полностью  прозрачен. Многие программы, в  том числе

и  имеющие графический  интерфейс, собирают информацию из  файлов  в  /рrос,

форматируют их и выводят результат на экран. Среди консольных утилит — это top, показывающая загрузку системы, и ps, выводящая список процессов. В /рrос можно

найти  также  информацию об установленном оборудовании,  разметке  жесткого диска, статистику и  многое другое.

Есть один только нюанс: хотя информацию  из  файла можно прочитать,  открыть его в текстовом редакторе не получится, не только потому, что файлов физически не существует, но и потому, что их содержимое может измениться в любую секунду. Для записи  и  считывания данных в  такой  файл придется использовать обычные утилиты: это команда cat , при  помощи  которой считывается содержимое файла, и ech o — для записи.  Кроме того, следует учитывать, что в файлы в  procfs могут иметь три варианта доступа:

•          только для чтения — предназначены для получения информации об определенном параметре, при попытке в них  что-то записать будет выдано предупреждение;

•          только для чтения пользователем root — такой же, как и предыдущий, но получить информацию может только администратор;

•          только для записи  пользователем root — позволяет не только считать данные, но и  изменить параметр.

Возможны и  некоторые комбинации  этих трех вариантов.  К тому же в  некоторые файлы можно записать только строго определенное значение.  Чуть раньше мы просматривали  и  изменяли  алгоритм работы  планировщика  CFS. При  попытке записи

иного значения будет выдана ошибка. И это далеко не все, что можно сделать в /рrос.

Если  вывести  список содержимого каталога /рrос, то увидим большое  количество файлов  и  подкаталогов. С procfs мы столкнемся  еще не один  раз на протяжении книги,  пока рассмотрим только некоторые файлы,  которые позволяют управлять работой ядра и его модулей.

Для примера проверим, включен ли  кулер на процессоре:

$   sud o   ca t    /proc/acpi/fan/FAN/stat e status :    o n

Можно ли его выключить  командой

echo   0   >   /proc/acpi/fan/FAN/stat e

зависит от материнской платы.  Кстати, текущую температуру процессора  можно просмотреть так:

$   sud o   ca t    /proc/acpi/thermal_zone/THRM/temperatur e temperature :   23   С

Причем   в Linux температура выводится   в градусах Цельсия,  в  других  системах вроде FreeBSD — в кельвииах.  В файле trip_points можно считать или задать политику управления охлаждением  системы:

$ sudo cat /proc/acpi/thermal_zone/THRM/trip_points critical (S5): 65 С

passive:  63 С: tcl=4 tc2=3 tsp=60 devices=0xdf852338 active[0]: 63 C: devices=0xdf85ff90

Возможны три  варианта  политики:  critical (критическая  температура,  после

которой возможен автоматический переход в спящий режим), passive (уменьшение  частоты процессора) и  active (активный  режим работы  кулера).  Причем последних  может быть несколько ступеней — от 0 до 9, количество,  опять же, зависит от оборудования.  Шаблон команды на изменение этих параметров выглядит  так:

echo -n "critical:hot:passive:active0:…:activeX" > trip_ points

Например:

$ echo "105:100:100:78:70:60:50" > /proc/acpi/thermal_zone/TZ0/ trip_points

Режим охлаждения  можно просмотреть с помощью команды

$ sudo cat /proc/acpi/thermal_zone/THRM/cooling_mode cooling mode: active

Пассивный режим можно устанавливать не во всех устройствах,  хотя современные

ноутбуки его обычно поддерживают.

Очень много параметров, которые можно изменить на лету, находятся в подкаталоге /proc/sys. Например, интересный параметр доступен в файле /proc/sys/fs/filemax, установленное здесь число определяет  максимальное  количество файлов, которые можно открыть. В разных  дистрибутивах используется   свое значение. При необходимости сюда можно записать свою цифру:

$ sudo echo "4096" /рrос/sys/fs/file-max

Файл /proc/sys/kernel/ctrl-alt-del  содержит цифру, которая указывает системе, как действовать в случае нажатия комбинации Ctrl + Alt + Delete. В этом файле возможно использование одного из двух  значений:

•0 — разрешает принимать эту комбинацию и производит нормальное выключе ние с предварительным корректным завершением программ;

•1 — комбинация  клавиш приводит к эффекту, подобному простому отключению  питания без предварительного  завершения программ.

По умолчанию используется 0. В файлах /proc/sys/kernel/domainname и /рrос/sys/ kernel/hostname можно установить  имя домена и сетевое имя узла.

В /рrос/sys/net собраны файлы, в  которых можно изменить некоторые  сетевые настройки. Например, в /proc/sys/net/core/netdev_max_backlog указывается  максимальное количество пакетов в очередь на обработку.  Если ядро не успевает обрабатывать пакеты, его лучше увеличить. Значение по умолчанию — 300, но в некоторых дистрибутивах установлено вплоть до 1000.

Файлы в каталоге /рrос/sys/vm отвечают за работу с виртуальной памятью. Например, число  в файле /proc/sys/vm/swappiness содержит коэффициент, который показывает, как часто необходимо переносить данные из оперативной памяти на жесткий диск. Чем выше это число, тем реже выполняется данная операция. В Ubuntu по умолчанию установлено следующее значение:

$ cat /proc/sys/vm/swappiness

Если оперативной памяти мало, а вы вынуждены загружать приложения, требующие большого объема памяти, можно попробовать увеличить этот параметр вплоть до максимальных 100. В этом случае загруженный OpenOffice.org или GIMP будет работать быстрее за счет того, что нужная информация задерживается в  быстрой оперативной памяти. Но  переключение между задачами  будет выполняться медленнее.

Источник: Яремчук С. А.  Linux Mint на 100 %. — СПб.: Питер, 2011. — 240 е.: ил. — (Серия «На 100 %»).

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий