/proc - это
псевдо-файловая
система,
которая
используется
в качестве
интерфейса к
структурам
данных в
ядре, чтобы
избежать
чтения и
записи /dev/kmem.
Большинство
расположенных
в ней файлов
доступны
только для
чтения, но
некоторые
файлы
позволяют
изменять
переменные
ядра.
Ниже дается
краткая
информация
по /proc.
- abi
- Этот
каталог
может
содержать
файлы с
двоичной
информацией
приложений.
В некоторых
системах
этого
каталога
нет.
- debug
- Данный
каталог
может быть
пуст.
- dev
- Данный
каталог
содержит
информацию,
специфичную
для
устройств
(например dev/cdrom/info).
В некоторых
системах он
может быть
пуст.
- fs
- Этот
каталог
содержит
подкаталог
binfmt_misc и файлы
dentry-state, dir-notify-enable, dquot-nr,
file-max, file-nr, inode-max, inode-nr,
inode-state, lease-break-time, leases-enable,
overflowgid, overflowuid super-max и
super-nr которые
выполняю
функции,
соответствующие
их
названиям.
Документацию
по файлам в
/proc/sys/binfmt_misc можно
найти в
исходных
текстах ядра
в
Documentation/binfmt_misc.txt.
Файл
dentry-state
содержит
шесть чисел,
nr_dentry,
nr_unused,
age_limit
(возраст в
секундах),
want_pages
(страниц,
запрошенных
системой) и
два пустых
значения. nr_dentry
всегда
показывает 0.
nr_unused
показывает
количество
неиспользованных
dentries. age_limit -- это
возраст в
секундах по
истечении
которого dcache entries
могут быть
отозваны,
когда памяти
становится
мало и
значение want_pages
не ноль,
когда ядро
делает вызов
shrink_dcache_pages() и кэш dcache
пока не
подрезан.
Файл
dir-notify-enable
может быть
использован,
чтобы
запретить
или
разрешить
интерфейс
dnotify
описанный в
fcntl(2) на
общесистемной
основе.
Значение 0 в
этом файле
запрещает
интерфейс, а
значение 1
разрешает
его.
Файл
dquot-max
показывает
максимальное
количество
кэшируемых
записей
дисковых
квот. В
некоторых (2.4)
системах,
его нет. Если
число
свободных
кэшируемых
дисковых
квот
является
очень
маленьким, а
у вас в
системе
одновременно
работает
большое
количество
пользователей,
то вам,
возможно,
захочется
увеличить
этот лимит.
Файл
dquot-nr
показывает
количество
выделенных в
использование
записей
дисковых
квот и
количество
свободных
записей
дисковых
квот.
Файл
file-max
показывает
системный
лимит на
количество
открытых
файлов для
всех
процессов.
(См. также
вызов
setrlimit(2),
который
можно
использовать,
чтобы
установить
ограничение
RLIMIT_NOFILE, на
количество
открытых
файлов
файлов на
процесс).
Если вы
получяете
большое
количество
сообщений о
невозможности
открыть
файловые
дескрипторы,
попытайтесь
увеличить
это
значение:
echo 100000 > /proc/sys/fs/file-max
Константа
ядра
NR_OPEN
устанавливает
верхний
лимит
значения,
которое
может быть
установлено
в
file-max.
Если вы
увеличиваете
file-max, то
позаботьтесь
увеличить
inode-max
, установив
его в 3-4 раза
больше, чем
новое
значение
file-max,
в противном
случае вам
может не
хватить
индексных
дескрипторов.
Доступный
только для
чтения файл
file-nr
показывает
количество
открытых
файлов. Он
содержит три
числа:
Количество
выделенных
индексных
дескрипторов,
количество
свободных
файловых
дескрипторов
и
максимальное
количество
файловых
дескрипторов.
Ядро
выделяет
файловые
дескрипторы
динамически,
но оно не
освобождает
их сразу же.
Если
количество
выделенных
файлов
становится
больше
максимального,
то вам
необходимо
увеличить
максимальное.
Когда
количество
свободных
файловых
дескрипторов
велико и у
вас не
бывает
неожиданных
пиков
использования
файловых
дескрипторов,
вам
наверняка не
понадобится
увеличивать
максимальное
значение.
Файл
inode-max
содержит
максимальное
количество
индексных
дескрипторов,
находящихся
в памяти. В
некоторых (2.4)
системах,
его может не
быть. Это
количество
должно быть
в 3-4 раза
больше, чем
максимальное
значение в
файле file-max, так
как
стандартному
вводу (stdin),
стандартному
выводу (stdout) и
сетевым
сокетам
также
необходимы
индексные
дескрипторы.
Если вам
регулярно не
хватает
индексных
декскрипторов,
то вам
необходимо
увеличить
это
значение.
Файл
inode-nr
содержит
первые два
значения из
inode-state.
Файл
inode-state
содержит
семь
значений: nr_inodes,
nr_free_inodes, preshrink и четыре
пустых. nr_inodes -- это
количество
индексных
дескрипторов,
выделенных
для
использования
системой.
Оно может
быть
несколько
больше, чем inode-max,
потому что Linux
выделяет их
по полной
странице за
раз. nr_free_inodes
представляет
количество
свободных
индексных
дескрипторов.
preshrink будет
ненулевым,
когда nr_inodes > inode-max и
системе
понадобится
подрезать
список
индексных
дескрипторов,
вместо
выделения
новых.
Файл
lease-break-time
задаёт
период, в
течении
которого,
ядро
предоставляет
процессу
возможность
удерживать
файл,
занятый
через вызов
(
fcntl(2)) после
вызова, оно
посылает
сигнал
процессу,
извещая его
о том, что
другой
процесс
ожидает
открытия
этого файла.
Если
удерживающий
файл процесс
не удалит
или не
отменит
удержание
файла в
течении
указанного
периода, то
ядро
принудительно
снимет
удержание.
Файл
leases-enable
можно
использовать,
чтобы
разрешить
или
запретить в
системе
возможность
удержания
файла через
(
fcntl(2)). Если файл
содержит 0,
удержание
запрещено.
Если не ноль -
разрешено.
Файлы
overflowgid и
overflowuid
позволяют
вам изменить
значение
фиксированных
UID и GID. По
умолчанию
оно равно 65534.
Некоторые
файловые
системы
поддерживают
только
16-битные UID и GID, в
то время как
в Linux UID и GID
являются
32-битными.
Когда
монтируется
одна из
таких
файловых
систем с
правами,
позволяющими
запись, все UID
или GID, которые
превышают 65535
транслируются
перед
записью на
диск в
переполненные
значения.
Файл
super-max
управляет
максимальным
значением
суперблоков
и таким
образом
максимальным
значением
файловых
систем,
которые
может
смонтировать
ядро. Вам
необходимо
увеличить super-max
только в том
случае, если
вам нужно
смонтировать
больше
файловых
систем, чем
это
позволяет
значение в
файле super-max. Файл
super-nr содержит
количество
файловых
систем,
которые
смонтированы
в данный
момент.
- kernel
- Этот
каталог
содержит
файлы acct, cad_pid,
cap-bound, core_pattern, core_uses_pid,
ctrl-alt-del, dentry-state, domainname,
hotplug, hostname, htab-reclaim
(только для
PowerPC), java-appletviewer (binfmt_java,
устарел),
java-interpreter (binfmt_java,
устарел), l2cr
(только для
PowerPC), modprobe, msgmax, msgmnb, msgmni,
osrelease, ostype, overflowgid, overflowuid,
panic, panic_on_oops, pid_max, powersave-nap
(только для
PowerPC), printk, random, real-root-dev,
reboot-cmd (только
для SPARC), rtsig-max, rtsig-nr,
sem, sg-big-buff, shmall, shmmax,
shmmni, sysrq, tainted, threads-max,
version и zero-paged
(только для PowerPC)
функции
которых
соответствует
их именам.
Файл
acct
содержит три
числа: highwater, lowwater и frequency.
Если
разрешён
учёт
процессов в
стиле BSD, то эти
значения
управляют
его
поведением.
Если
свободного
места на
файловой
системе,
куда
осуществляется
протоколирование
учёта
становится
меньше, чем lowwater%,
то учёт
процессов
приостанавливается.
Если
свободного
места
становится
больше, чем highwater%,
то учёт
процессов
возобновляется.
Значение frequency
определяет
как часто
ядро
проверяет
свободное
место (в
секундах). По
умолчанию
значения
соответственно
составляют 4, 2
и 30. Таким
образом,
приостановка
учёта
осуществляется
если
свободно
менее 2% места
на диске;
возобновление
если места >=4%;
информация о
свободном
месте
обновляется
каждые 30
секунд.
Файл
cap-bound
содержит
набор
значений
ядра
capability bounding set
(выражаемый
как
десятичные
числа со
знаком). Этот
набор
является
битовой
маской
возможностей,
предоставляемых
процессу во
время exec,
которая
накладывается
посредством
битового
умножения (AND).
Файл
core_pattern
(новое в Linux 2.5)
предоставляет
улучшеный
контроль над
формой имени
файла core, что
заменяет
устаревший
файл
core_uses_pid,
описываемый
ниже. Имя
файла core
управляется
определением
шаблона в
core_pattern.
Шаблон может
содержать
символ %,
который
определяет
какая из
следующих
подстановок
будет
применена
при создании
файла core:
%% Один символ %
%p PID процесса, для которого создаётся файл дамп
%u реальный UID процесса, для которого создаётся дамп
%g реальный GID процесса, для которого создаётся дамп
%s номер сигнала, вызывашего дамп
%t время создания дампа (секунды прошедшие с 0:00h, 1 Jan 1970)
%h имя машины (тоже, что и 'nodename'
возвращаемое вызовом uname(2))
%e имя программы
Одиночный
символ % в
конце
шаблона
отбрасывается
из имени
файла core, как и
комбинация
из следующих
за ним
символов,
если она не
соответствует
одной из
указанных
выше
комбинаций.
Все другие
символы в
шаблоне
становятся
литеральной
частью имени
файла core.
Максимальный
размер
получившегося
имени файла core
не может
превышать 64
байт. По
умолчанию -
это имя "core".
Для обратной
совместимости,
если
core_pattern не
включает "%p"
и
core_uses_pid отличен
от нуля, то к
имени файла core
будет
добавлена
подстрока .PID.
Файл
core_uses_pid
может быть
использован
для
управления
именем файла
core в Linux 2.4. Если
данный файл
содержит
значение 0, то
файл core
называется
просто
core.
Если данный
файл
содержит
ненулевое
значение, то
имя файла core
включает в
себя
идентификатор
процесса в
виде
core.PID.
Файл
ctrl-alt-del
управляет
обработкой
нажатия
клавиш Ctrl-Alt-Del.
Когда
значение в
этом файле 0,
Ctrl-Alt-Del
обрабатывается
и производит
вызов
программы
init(1)
для
выполнения
перезапуска
системы.
Когда
значение в
файле > 0,
реакция Linux
соответствует
Vulcan Nerve Pinch (tm),
согласно
которому
произойдёт
немедленная
перезагрузка,
даже без
синхронизации
буферов
дисков.
Замечание:
когда
какая-либо
программа
(типа dosemu)
получает
клавиатуру в
'raw' режиме,
нажатие ctrl-alt-del
интерпретируется
этой
программой,
перед тем
как оно
достигнет
уровня
обработки tty
ядром, и
таким
образом,
именно эта
программа
будет
решать, что с
этим делать.
Файл
hotplug
содержит
путь для
агента
политики
устройств,
подключаемых
в "горячем"
режиме. По
умолчанию
это файл "/sbin/hotplug".
Файлы
domainname и
hostname
могут быть
использованы
для
установки
имени домена
службы NIS/YP и
имени узла
для вашей
машины точно
таким же
образом как
и командами
domainname и hostname, т.е.
команды:
# echo "darkstar" > /proc/sys/kernel/hostname
# echo "mydomain" > /proc/sys/kernel/domainname
имеют тот же
эффект, что и
команды
# hostname "darkstar"
# domainname "mydomain"
Заметим,
однако, что
классический
darkstar.frop.org имеет имя
узла "darkstar" и
доменное имя
DNS (Сервера
Доменных
Имен) "frop.org", не
путайте с
доменным
именем NIS
(Службы
Сетевой
Информации)
или как она
раньше
называлась YP
(Yellow Pages). Эти два
доменных
имени
полностью
различны по
своей сути.
Подробности
об это можно
найти на
странице
руководства
hostname(1).
Если файл
htab-reclaim
(только для PowerPC)
установлен в
ненулевое
значение, то
PowerPC htab (см. файл
Documentation/powerpc/ppc_htab.txt в
исходных
текстах
ядра)
подрезается
каждый раз,
когда
система
входит в
цикл
простоя.
Файл
l2cr
(только для PowerPC)
содержит
файл,
который
управляет L2
кэшем на
процессорных
платах G3. Если 0,
кэш
запрещён.
Если не ноль -
разрешён.
Файл
modprobe
описывается
в файле
исходных
текстов ядра
Documentation/kmod.txt.
Файл
msgmax это
системный
лимит,
задающий
максимальное
число байт в
одном
сообщении,
которое
пишется в
очередь
сообщений System V.
Файл
msgmni
задаёт
системный
лимит на
количество
идентификаторов
в очереди
сообщений.
(Файл есть
только в Linux 2.4 и
выше.)
Файл
msgmnb это
системный
параметр,
используемый
для
инициализации
установки
msg_qbytes для
последовательно
создаваемых
очередей
сообщений.
Установка
msg_qbytes задаёт
максимальное
число байт,
которые
могут быть
записаны в
очередь
сообщений.
Файлы
ostype и
osrelease
содержат
подстроки из
/proc/version.
Файлы
overflowgid и
overflowuid
дублируют
файлы
/proc/sys/fs/overflowgid и
/proc/sys/fs/overflowuid.
Файл
panic
предоставляет
доступ на
чтение и
запись к
переменной
ядра
panic_timeout.
Если в файле
ноль, ядро
будет
зацикливаться
при крахе
системы по panic;
если не ноль,
то это
означает,
что ядро
должно
выполнить
автоматическую
перезагрузку
после этого
количества
секунд.
Когда вы
используете
программный
драйвер
устройства
watchdog
(устройство,
периодически
делающее
проверку,
что система
функционирует),
то
рекомендуется
установить
значение 60.
Файл
panic_on_oops
(новое в Linux 2.5)
уравляет
поведением
ядра, когда
случается oops
или BUG. Если
файл
содержит 0, то
система
пытается
продолжить
работу. Если
содержит 1, то
система
выполняет
задержку на
несколько
секунд
(чтобы дать
время klogd
записать
вывод oops) и
затем
генерирует
крах системы
через panic. Если
файл
panic также
содержит
ненулевое
знаечение,
то машина
будет
перезагружена.
Файл
pid_max (новое
в Linux 2.5) задаёт
значение, в
пределах
которого
находятся
все
идентификаторы
процессов (PID))
(т.е. значение
в этом файле
на единицу
больше, чем
максимальный
PID). По
умолчанию,
значение в
этом файле
составляет 32768,
т.е. означает
тот же самый
диапазон PID'ов,
что и в
ранних
ядрах.
Значение в
этом файле
может быть
установлено
до 2^22 (значения
PID_MAX_LIMIT, которое
приблизительно
составляет 4
миллиона).
Файл
powersave-nap
(только для PowerPC)
содержит
флаг. Если он
установлен
Linux-PPC будет
использовать
'nap' режим
сберегания
питания, в
противном
случае,
будет
использоваться
режим 'doze'.
Четыре
значения в
файле
printk это
console_loglevel, default_message_loglevel, minimum_console_level и
default_console_loglevel. Данные
значения
влияют на
поведение printk()
при выдаче
или
протоколировании
сообщений об
ошибках.
Подробности
о различных
уровнях
протоколирования
см. в
syslog(2).
Сообщения с
более
высоким
приоритетом,
чем console_loglevel будут
выданы на
консоль.
Сообщения
без явно
заданного
приоритета
будут выданы
с
приоритетом
default_message_level. minimum_console_loglevel - это
минимальное
(наивысшее)
значение, в
которое
может быть
установлено
значение console_loglevel.
default_console_loglevel - это
значение по
умолчанию
для console_loglevel.
Каталог
random
содержит
различные
параметры,
управляющие
работой
файла
/dev/random.
Файл
real-root-dev
описывается
в файле
исходных
текстов ядра
Documentation/initrd.txt.
Файл
reboot-cmd
(только для Sparc)
является
способом
задания
аргументов
для
начального
загрузчика SPARC
ROM/Flash. Способ
сказать ему,
что делать
после
перезагрузки?
Файл
rtsig-max
может быть
использован
для
настройки
максимального
количества
сигналов
реального
времени POSIX (в
очереди),
которое
может
воспринять
система.
Файл
rtsig-nr
показывает
количество
сигналов
реального
времени POSIX,
которые в
настоящий
момент
находятся в
очереди.
Файл
sem
(доступен в Linux 2.4
и выше)
содержит 4
значения,
описывающих
ограничения
семафоров по
стандарту System V.
Вот эти
значения по
порядку:
- SEMMSL
- Максимальное
количество
семафоров в
одном
списке
семафоров.
- SEMMNS
- Системный
лимит на
количество
семафоров
во всех
списках
семафоров.
- SEMOPM
- Максимальное
количество
операций,
которое
может быть
указано в
вызове semop(2).
- SEMMNI
- Системный
лимит на
максимальное
количество
идентификаторов
семафоров.
Файл
sg-big-buff
показывает
размер
буфера
стандартного
SCSI устройства
(sg). Вы не можете
пока
настраивать
его, но его
можно
изменить при
компиляции
ядра,
исправив
файл include/scsi/sg.h,
изменив в
нём значение
SG_BIG_BUFF. Однако, в
этом как
правило нет
необходимости.
Файл
shmall
содержит
системный
лимит на
общее
количество
страниц
разделяемой
по стандарту
System V сегментов
памяти.
Файл
shmmax может
быть
использован
для опроса и
установки
ограничения
на
динамическое
создание
разделяемых
по стандарту
System V сегментов
памяти. В
настоящий
момент, ядро
поддерживает
сегменты
разделяемой
памяти до 1Gb.
Это значение
по умолчанию
для SHMMAX.
Файл
shmmni
(доступен в Linux 2.4
и выше)
задаёт
максимальный
системный
лимит на
создание
разделяемых
по стандарту
System V сегментов
памяти.
Файл
version
содержит
строку вида:
#5 Wed Feb 25 21:49:24 MET 1998.TP
Где '#5'
означает,
что пятую
сборку ядра
из исходных
текстов, а
дата после
этого
показывает
время сборки
ядра.
Файл
zero-paged
(только для PowerPC)
содержит
флаг. Когда
он разрешён
(не ноль), Linux-PPC
будет
размещать
пре-нулевые
страницы в
цикле
простоя, что
возможно
увеличит
скорость
выполнения
get_free_pages.
- net
- Данный
каталог
содержит
некоторую
информацию
по
функционированию
сетевой
подсистемы.
- proc
- Данный
каталог
может быть
пуст.
- sunrpc
- Данный
каталог
поддерживает
удалённый
вызов
процедур Sun
для сетевой
файловой
системы (NFS). В
некоторых
системах
его нет.
- vm
- Этот
каталог
содержит
файлы для
тонкой
настройки
управления
памятью,
буферами и
кэшем.
Приблизительно
соответствует
ядру Linux 2.4.17.
Пожалуйста
обновляйте
по мере
необходимости.
Последнее
обновление
было для Linux 2.4.17.
Заметим, что
многие
строки
(такие как
окружение и
командная
строка)
даются во
внутреннем
формате, где
подполя
заканчиваются
нулевыми
байтами, так
что возможно
они будут
более
читабельны,
если вы
будете
использовать
для чтения
команды
. В
качестве
альтернативы,
прекрасно
работает
.
Данная
страница
руководства
является
неполной,
возможно
неточной и
относится к
тому виду
документации,
который
обновляется
очень часто.
Материал о /proc/sys/fs
и /proc/sys/kernel
полностью
основан на
документации
в исходных
текстах
ядра,
которую
написал Rik van Riel.