Добавить в цитаты Настройки чтения

Страница 60 из 324

10495/ 1167/  32288/ 8543/ 9457/ dma       mdstat     tty/

10497/ 1168/  3241/  8547/ 9479/ driver/   meminfo    uptime

Во многих случаях файлы могут только читаться и дают информацию о состоянии. Например, /proc/cpuinfo предоставляет сведения о доступных процессорах:

$ <b>cat /proc/cpuinfo</b>

processor    : 0

vendor_id     : GenuineIntel

cpu family    : 15

model         : 2

model name    : Intel(R) Pentium(R) 4 CPU 2.66GHz

stepping      : 8

cpu MHz       : 2665.923

cache size    : 512 KB

fdiv_bug      : no

hlt_bug       : no

f00f_bug      : no

coma_bug      : no

fpu           : yes

fpu_exception : yes

cpuid level   : 2

wp            : yes

flags         : fpu vme de pse tsc msr рае mce cx8 apic sep mtrr pge mca cmov

pat pse36 clflush dts acpi mmx fxsr sse sse2 ss up

bogomips      : 5413.47

clflush size  : 64

Файлы /proc/meminfo и /рroc/version предоставляют данные об использовании оперативной памяти и версии ядра соответственно:

$ cat<b> /proc/meminfo</b>

MemTotal:     776156 kB

MemFree:       28528 kB

Buffers:      191764 kB

Cached:       369520 kB

SwapCached:       20 kB

Active:       406912 kB

Inactive:     274320 kB

HighTotal:         0 kB

HighFree:          0 kB

LowTotal:     776156 kB

LowFree:       28528 kB

SwapTotal:   1164672 kB

SwapFree:    1164652 kB

Dirty:            68 kB

Writeback:         0 kB

AnonPages:     95348 kB

Mapped:        49044 kB

Slab:          57848 kB

SReclaimable:  48008 kB

SUnreclaim:     9840 kB

PageTables:     1500 kB

NFS_Unstable:      0 kB

Bounce:            0 kB

CommitLimit: 1552748 kB

Committed_AS: 189680 kB

VmallocTotal: 245752 kB

VmallocUsed:   10572 kB

VmallocChunk: 234556 kB

HugePages_Total:   0

HugePages_Free:    0

HugePages_Rsvd:    0

Hugepagesize:   4096 kB

$ <b>cat /proc/version</b>

Linux version 2.6.20.2-2-default ([email protected]/* */) (gcc version 4.1.3 20070218 (prerelease) (SUSE Linux)) #1 SMP Fri Mar 9 21:54:10 UTC 2007

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

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

$ <b>cat /proc/net/sockstat</b>

sockets: used 285

TCP: inuse 4 orphan 0 tw 0 alloc 7 mem 1

UDP: inuse 3

UDPLITE: inuse 0

RAW: inuse 0

FRAG: inuse 0 memory 0

В некоторые элементы каталога /proc можно производить запись, а не только читать их. Например, общее количество файлов, которые могут быть открыты одновременно всеми выполняющимися программами, — это параметр ядра Linux. Текущее значение можно прочитать из /proc/sys/fs/file-max:

$ <b>cat /proc/sys/fs/file-max</b>

76593

В данном случае задана величина 76593. Если вам нужно увеличить это значение, вы можете сделать это, записав его в тот же файл. Это действие может потребоваться при выполнении специального комплекса программ, например, системы управления базой данных, которая использует много таблиц, что потребует одновременного открытия большого числа файлов.

Для записи в файлы /proc требуются права доступа суперпользователя. При записи в эти файлы нужно быть предельно внимательным; при записи неподходящих данных возможно возникновение серьезных проблем, включая крах системы и потерю данных.

Для увеличения предельного значения одновременно обрабатываемых в системе файлов до 80000 вы можете просто записать новое предельное значение в файл file-max.

# echo <b>80000 &gt;/proc/sys/fs/file-max</b>

Теперь, повторно прочитав файл, вы увидите новое значение:

$ <b>cat /proc/sys/fs/file-max</b>

80000

Подкаталоги каталога /proc с числовыми именами применяются для обеспечения доступа к информации о выполняющихся программах. В главе 11 вы узнаете больше о том, что программы выполняются как процессы.

Сейчас только отметьте, что у каждого процесса есть уникальный идентификатор: число в диапазоне от 1 до почти 32 000. Команда ps предоставляет список выполняющихся в данный момент процессов. Например, когда писалась эта глава:

[email protected]/* */:~/BLP4e/chapter03&gt; <b>ps -а</b>

  PID TTY       TIME CMD

 9118 pts/1 00:00:00 ftp

 9230 pts/1 00:00:00 ps

10689 pts/1 00:00:01