Читать интересную книгу Основы программирования в Linux - Мэтью Нейл

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 56 57 58 59 60 61 62 63 64 ... 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

1 ... 56 57 58 59 60 61 62 63 64 ... 324
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Основы программирования в Linux - Мэтью Нейл.

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