| Red Hat Enterprise Linux 4: Referenzhandbuch | ||
|---|---|---|
| Zurück | Kapitel 5. Das proc Dateisystem | Nach vorne |
Im Folgenden finden Sie eine Liste von einigen nützlichen virtuellen Dateien im Top-Level des Verzeichnisses /proc.
![]() | Anmerkung |
|---|---|
In den meisten Fällen entspricht der Inhalt der in diesem Abschnitt aufgeführten Dateien nicht denen in Ihrem Rechner. Dies liegt daran, dass sich die meisten Informationen auf die jeweilige Hardware beziehen, auf der Red Hat Enterprise Linux läuft. |
Diese Datei bietet Informationen über den Status des Advanced Power Management (APM) Systems und wird vom Befehl apm benutzt. Die Ausgabe dieser Datei auf einem System ohne Akku, das an das Stromnetz angeschlossen ist, sieht ähnlich dieser Ausgabe aus:
1.16 1.2 0x07 0x01 0xff 0x80 -1% -1 ? |
Wenn Sie den Befehl apm -v auf diesen Systemen ausführen, wird Folgendes angezeigt:
APM BIOS 1.2 (kernel driver 1.16ac) AC on-line, no system battery |
Auf nicht batteriebetriebenen Systemen kann apm nicht viel mehr bewirken, als den Rechner in den Standby-Modus zu versetzen. Der apm Befehl ist auf Laptops viel sinnvoller einzusetzen. Das zeigt auch die folgende Ausgabe von cat /proc/apm. Dies ist eine beispielhafte Ausgabe eines Laptops, der mit dem Stromnetz verbunden ist.
1.16 1.2 0x03 0x01 0x03 0x09 100% -1 ? |
Wird der gleiche Laptop für einige Minuten vom Stromnetz entfernt, ändert sich der Inhalt der Datei apm wie folgt:
1.16 1.2 0x03 0x00 0x00 0x01 99% 1792 min |
Der Befehl apm -v bietet eine informatievere Ausgabe, wie Folgend:
APM BIOS 1.2 (kernel driver 1.16) AC off-line, battery status high: 99% (1 day, 5:52) |
Diese Datei wird hauptsächlich dazu benutzt Speicherfragmentierungs-Probleme zu diagnostizieren. Unter Verwendung des Buddy System Algorithmus stellt jede Spalte die Anzahl von Seiten einer bestimmten Reihenfolge (einer bestimmten Größe) dar, welche jederzeit verfügbar sind. Zum Beispiel gibt es für Zone-DMA (Direct Memory Access) 90 von 2^(0*PAGE_SIZE) Chunks Speicher. Ähnlich dazu stehen 6 von 2^(1*PAGE_SIZE) Chunks und 2 von 2^(2*PAGE_SIZE) Chunks Speicher zur Verfügung.
Die DMA-Reihe bezieht sich auf die ersten 16 MB auf einem System, die HighMem-Reihe bezieht sich auf Speicher von mehr als 4 GB auf einem System und die Normal-Reihe bezieht sich auf sämtlichen Speicher dazwischen.
Folgend ist ein typisches Beispiel für die Ausgabe von /proc/buddyinfo:
Node 0, zone DMA 90 6 2 1 1 ... Node 0, zone Normal 1650 310 5 0 0 ... Node 0, zone HighMem 2 0 0 1 1 ... |
Diese Datei zeigt die Parameter an, die dem Linux-Kernel zum Startzeitpunkt übergeben wurden. Eine /proc/cmdline Beispieldatei sieht wie folgt aus:
ro root=/dev/VolGroup00/LogVol00 rhgb quiet 3 |
Dies zeigt uns, dass der Kernel nur mit Leseberechtigung gemounted ist (gekennzeichnet durch (ro)) und sich im ersten logischen Volumen (LogVol00) der ersten Volumengruppe (/dev/VolGroup00) befindet. LogVol00 ist das Äquivalent einer Festplattenpartition in einem Nicht-LVM-System (Logical Volume Management), genauso wie/dev/VolGroup00 einem ähnlichen Konzept wie /dev/hda1 unterliegt, jedoch um ein Vielfaches erweiterbarer ist.
Für weitere Informationen über LVM in Red Hat Enterprise Linux siehe http://www.tldp.org/HOWTO/LVM-HOWTO/index.html.
Als nächstes signalisiert rhgb, dass das rhgb-Paket installiert worden ist und grafisches Booten unterstützt wird, angenommen /etc/inittab zeigt einen Standard-Runlevel auf, der auf id:5:initdefault: gesetzt ist.
Schlussendlich besagt quiet, dass alle wortreichen Kernel-Meldungen beim Hochfahren unterdrückt werden.
Diese virtuelle Datei identifiziert den von Ihrem System verwendeten Prozessor. Eine typische Ausgabe sieht zum Beispiel wie folgt aus:
processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Xeon(TM) CPU 2.40GHz stepping : 7 cpu MHz : 2392.371 cache size : 512 KB physical id : 0 siblings : 2 runqueue : 0 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 pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm bogomips : 4771.02 |
processor — Gibt jedem Prozessor eine ID-Nummer. Wenn Ihr System nur über einen Prozessor verfügt, wird nur 0 angezeigt.
cpu family — Zeigt Ihnen den Prozessortyp an, den Ihr System benutzt. Basiert Ihr Rechner auf Intel, stellen Sie die Zahl einfach vor "86", um den Wert zu berechnen. Das ist besonders dann nützlich, wenn Sie die Architektur eines älteren Systems, wie 586, 486, oder 386, herausfinden möchten. Da einige RPM Pakete für jede dieser speziellen Architekturen kompiliert werden, hilft Ihnen dieser Wert bei der Entscheidung, welches Packet zu installieren ist.
model name — Zeigt den Namen und den Projektnamen des Prozessors an.
cpu MHz — Zeigt die genaue Geschwindigkeit des Prozessors auf die tausendste Dezimalstelle in Megahertz an.
cache size — Zeigt die Menge von verfügbarem Level 2 Cache des Prozessors an.
siblings — Zeigt die Anzahl von "sibling" CPUs auf der gleichen physikalischen CPU für Architekturen, die Hyper-Threading verwenden, an.
flags — Gibt eine Anzahl von Eigenschaften des Prozessors aus, wie zum Beispiel eine Floating Point Unit (FPU), oder die Verarbeitung von MMX-Befehlen.
Diese Datei zeigt sämtliche kryptografische Ziffern an, die vom Linux-Kernel benutzt werden, inklusive zusätzlichen Details für jede einzelne Ziffer. Eine /proc/crypto-Beispieldatei sieht wie folgt aus:
name : sha1 module : kernel type : digest blocksize : 64 digestsize : 20 name : md5 module : md5 type : digest blocksize : 64 digestsize : 16 |
Diese Datei zeigt die Zeichen- und Block-Geräte an, die zur Zeit im Kernel konfiguriert sind (Geräte, deren Module nicht im Kernel geladen sind, werden nicht berücksichtigt). Eine Beispiel-Ausgabe dieser virtuellen Datei finden Sie hier:
Character devices: 1 mem 4 /dev/vc/0 4 tty 4 ttyS 5 /dev/tty 5 /dev/console 5 /dev/ptmx 7 vcs 10 misc 13 input 29 fb 36 netlink 128 ptm 136 pts 180 usb Block devices: 1 ramdisk 3 ide0 9 md 22 ide1 253 device-mapper 254 mdp |
Die Ausgabe von /proc/devices enthält die Major Number und den Namen eines Gerätes und ist in zwei größere Sektionen aufgeteilt: Character devices und Block devices.
Zeichen-Geräte (Character Devices) sind bis auf zwei wichtige Unterschiede sehr ähnlich zu Block-Geräten.
Block-Geräte haben einen Puffer, der das Ordnen von Zugriffen vor der Ausführung zulässt. Das ermöglicht zum Beispiel bei Festplatten oder anderen Speichergeräten eine effizientere Speicherung durch die Fähigkeit die Informationen zuvor zu gliedern. Zeichen-Geräte benötigen diese Pufferung nicht.
Block-Geräte können Informationen in Datenblöcken einer bestimmten Größe senden und empfangen. Diese Größe kann je nach Gerät konfiguriert werden. Zeichen-Geräte senden Daten, ohne eine vorkonfigurierte Größe zu beachten.
Für weitere Informationen über Geräte, sehen Sie die im Folgenden angegebene Dokumentation:
/usr/share/doc/kernel-doc-<version>/Documentation/devices.txt |
Diese Datei enthält eine Liste von registrierten ISA Direct Memory Access (DMA) Kanälen, die verwendet werden. Eine Beispieldatei von /proc/dma sieht wie folgt aus:
4: cascade |
Diese Datei zeigt die Execution Domains, die gegenwärtig vom Linux-Kernel unterstützt werden, und die jeweilige Anzahl unterstützter "Personalities" (Persönlichkeiten) an.
0-0 Linux [kernel] |
Betrachten Sie Execution Domains als "Persönlichkeit" eines bestimmten Betriebssystems. Da andere Binär-Formate wie Solaris, UnixWare oder FreeBSD mit Linux verwendet werden können, kann ein Programmierer die Art verändern, wie das Betriebssystem bestimmte Systemaufrufe dieser Binärformate behandelt, in dem er die Persönlichkeit eines Tasks ändert. Bis auf die Execution Domain PER_LINUX können unterschiedliche Persönlichkeiten als dynamisch ladbare Module implementiert werden.
Diese Datei enthält eine Liste von Framebuffer-Geräten, inklusive der Framebuffer-Gerätenummer und dem zuständigen Treiber. Eine typische Ausgabe von /proc/fb für ein System mit einem Framebuffer-Gerät sieht wie folgt oder ähnlich aus:
0 VESA VGA |
Diese Datei zeigt eine Liste von Dateisystemarten an, die zur Zeit vom Kernel unterstützt werden. Eine Beispielausgabe mit einem generischen /proc/filesystems sieht ähnlich wie folgendes aus:
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev sockfs
nodev binfmt_misc
nodev usbfs
nodev usbdevfs
nodev futexfs
nodev tmpfs
nodev pipefs
nodev eventpollfs
nodev devpts
ext2
nodev ramfs
nodev hugetlbfs
iso9660
nodev mqueue
ext3
nodev rpc_pipefs
nodev autofs |
Die erste Spalte zeigt an, ob die Dateisysteme auf einem Block-Gerät liegen; wenn in der ersten Spalte nodev steht, bedeutet das, dass Sie nicht auf ein Block-Gerät gemountet sind. Die zweite Spalte zeigt die Namen des unterstützten Dateisystems an.
Der mount Befehl durchsucht die hier aufgelisteten Dateisysteme, wenn keines als Argument angegeben wurde.
Diese Datei zeigt die Anzahl von Interrupts pro IRQ auf der x86 Architektur an. Eine typische /proc/interrupts Datei ähnelt dem Folgenden:
CPU0 0: 80448940 XT-PIC timer 1: 174412 XT-PIC keyboard 2: 0 XT-PIC cascade 8: 1 XT-PIC rtc 10: 410964 XT-PIC eth0 12: 60330 XT-PIC PS/2 Mouse 14: 1314121 XT-PIC ide0 15: 5195422 XT-PIC ide1 NMI: 0 ERR: 0 |
Bei einer Multi-Prozessor-Maschine sieht dies etwas anders aus:
CPU0 CPU1 0: 1366814704 0 XT-PIC timer 1: 128 340 IO-APIC-edge keyboard 2: 0 0 XT-PIC cascade 8: 0 1 IO-APIC-edge rtc 12: 5323 5793 IO-APIC-edge PS/2 Mouse 13: 1 0 XT-PIC fpu 16: 11184294 15940594 IO-APIC-level Intel EtherExpress Pro 10/100 Ethernet 20: 8450043 11120093 IO-APIC-level megaraid 30: 10432 10722 IO-APIC-level aic7xxx 31: 23 22 IO-APIC-level aic7xxx NMI: 0 ERR: 0 |
Die erste Spalte bezeichnet die IRQ Nummer. Jede CPU im Rechner hat ihre eigene Spalte und ihre eigenen Interrupts pro IRQ. Die nächste Spalte bezeichnet den Typ des Interrupts und die letzte Spalte enthält den Namen des Geräts, das auf diesem IRQ angesprochen werden kann.
Jeder der Interrupt-Typen, die plattform-spezifisch sind, in dieser Datei hat eine unterschiedliche Bedeutung. Bei x86 Rechnern kommen folgende Werte häufig vor:
XT-PIC — Die alten AT-Rechner Interrupts.
IO-APIC-edge — Das Spannungssignal dieses Interrupts variiert zwischen tief und hoch, und hat eine Flanke, an der der Interrupt ausgelöst und nur einmal signalisiert wird. Dieser Interrupt-Typ wird wie der IO-APIC-level Interrupt nur auf Systemen mit Prozessoren der 586 Familie und höher benutzt.
IO-APIC-level — Erzeugt Interrupts, wenn das Spannungssignal hoch geht, solange, bis das Signal wieder niedrig ist.
Diese Datei zeigt Ihnen das aktuelle Mapping des Systemspeichers für jedes physikalische Gerät an:
00000000-0009fbff : System RAM 0009fc00-0009ffff : reserved 000a0000-000bffff : Video RAM area 000c0000-000c7fff : Video ROM 000f0000-000fffff : System ROM 00100000-07ffffff : System RAM 00100000-00291ba8 : Kernel code 00291ba9-002e09cb : Kernel data e0000000-e3ffffff : VIA Technologies, Inc. VT82C597 [Apollo VP3] e4000000-e7ffffff : PCI Bus #01 e4000000-e4003fff : Matrox Graphics, Inc. MGA G200 AGP e5000000-e57fffff : Matrox Graphics, Inc. MGA G200 AGP e8000000-e8ffffff : PCI Bus #01 e8000000-e8ffffff : Matrox Graphics, Inc. MGA G200 AGP ea000000-ea00007f : Digital Equipment Corporation DECchip 21140 [FasterNet] ea000000-ea00007f : tulip ffff0000-ffffffff : reserved |
Die erste Spalte zeigt die Speicherregister an, die von jedem der verschiedenen Speichertypen verwendet werden. Die zweite Spalte zeigt die Art des Speichers in diesem Register an. Diese Spalte zeigt Ihnen vor allem auch an, welche Speicherregister vom Kernel im Systemspeicher benutzt werden, oder, wenn z.B. Ihre Netzwerkschnittstelle mehrere Ethernetports hat, welcher Port welche Speicherregister verwendet.
Die Ausgabe von /proc/ioports liefert eine Liste von zur Zeit registrierten Port-Regionen zur I/O Kommunikation mit einem Gerät. Diese Datei kann sehr lang sein; der Anfang kann ähnlich wie hier aussehen:
0000-001f : dma1 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0070-007f : rtc 0080-008f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 02f8-02ff : serial(auto) 0376-0376 : ide1 03c0-03df : vga+ 03f6-03f6 : ide0 03f8-03ff : serial(auto) 0cf8-0cff : PCI conf1 d000-dfff : PCI Bus #01 e000-e00f : VIA Technologies, Inc. Bus Master IDE e000-e007 : ide0 e008-e00f : ide1 e800-e87f : Digital Equipment Corporation DECchip 21140 [FasterNet] e800-e87f : tulip |
Die erste Spalte zeigt den Adressbereich des I/O-Ports an, der für ein Gerät in der zweiten Spalte reserviert ist.
Diese Datei repräsentiert den physikalischen Speicher des Systems und wird im core-Dateiformat abgespeichert. Im Gegensatz zu den meisten /proc Dateien, zeigt kcore seine Größe an. Dieser Wert wird in Bytes angezeigt und entspricht der Größe des physikalischen Speichers (RAM) plus 4KB.
Der Inhalt dieser Datei ist so konzipiert, dass er nur von einem Debugger wie gdb untersucht werden kann, und ansonsten nicht lesbar ist.
![]() | Achtung |
|---|---|
Öffnen Sie die virtuelle Datei /proc/kcore nicht. Die Inhalte der Datei werden als Textausgabe unlesbar auf dem Bildschirm angezeigt. Wenn Sie diese Datei unbeabsichtigt öffnen, drücken Sie |
In dieser Datei befinden sich Mitteilungen, die vom Kernel erstellt wurden. Diese Mitteilungen werden dann von anderen Programmen, wie z.B. /sbin/klogd oder /bin/dmesg, hier abgerufen.
Diese Datei bietet eine Übersicht über die durchschnittliche Auslastung in Hinsicht auf die CPU und IO über einen gewissen Zeitraum und liefert außerdem zusätzliche Informationen, die vom uptime und anderen Befehlen benutzt werden. Eine /proc/loadavg-Beispieldatei finden Sie hier:
0.20 0.18 0.12 1/80 11206 |
Die ersten drei Spalten messen die CPU- und IO-Ausnutzung der letzten 1-, 5- und 10-minütigen Perioden. Die vierte Spalte zeigt die Anzahl der zur Zeit laufenden Prozesse und die Gesamtanzahl der Prozesse an. Die letzte Spalte zeigt die letzte Prozess-ID an, die verwendet wurde.
Diese Datei zeigt die Dateien an, die zur Zeit vom Kernel gesperrt sind. Der Inhalt dieser Datei enthält interne Debugging-Daten des Kernels und kann stark variieren, je nach Benutzungsgrad des Systems. Eine Beispiel /proc/locks Datei eines Systems mit leichter Belastung finden Sie hier:
1: POSIX ADVISORY WRITE 3568 fd:00:2531452 0 EOF 2: FLOCK ADVISORY WRITE 3517 fd:00:2531448 0 EOF 3: POSIX ADVISORY WRITE 3452 fd:00:2531442 0 EOF 4: POSIX ADVISORY WRITE 3443 fd:00:2531440 0 EOF 5: POSIX ADVISORY WRITE 3326 fd:00:2531430 0 EOF 6: POSIX ADVISORY WRITE 3175 fd:00:2531425 0 EOF 7: POSIX ADVISORY WRITE 3056 fd:00:2548663 0 EOF |
Jeder Sperre wird eine einmalige Zahl am Anfang jeder Zeile zugeordnet. Die zweite Spalte zeigt den verwendeten Sperr-Typ an, wobei FLOCK für die älteren UNIX Dateisperren des flock Systemaufrufs steht. POSIX wiederum steht für die neueren POSIX-Sperren mit dem lockf Systemaufruf.
Die dritte Spalte kann zwei Werte haben: ADVISORY oder MANDATORY. ADVISORY bedeutet, dass die Sperre andere Benutzer nicht vom Datenzugriff abhält; nur andere Sperr-Versuche werden verhindert. MANDATORY bedeutet, dass kein anderer Datenzugriff zugelassen wird, solange die Sperre bestehen bleibt. Die vierte Spalte zeigt an, ob die Sperre dem Eigentümer Lese- oder Schreibzugriff (READ oder WRITE) erlaubt und die fünfte Spalte zeigt die ID des gesperrten Prozesses an. Die sechste Spalte zeigt die ID der gesperrten Datei, in folgendem Format an: MAJOR-DEVICE:MINOR-DEVICE:INODE-NUMBER. Die siebte und achte Spalte zeigen Anfang und Ende der in der Datei gesperrten Region.
Diese Datei enthält die aktuellen Informationen zu Konfigurationen mit mehreren Platten und RAID. Wenn Ihr System keine solche Konfiguration enthält, sieht Ihre /proc/mdstat Datei vermutlich so ähnlich aus:
Personalities : read_ahead not set unused devices: <none> |
Diese Datei bleibt solange in dem o.g. Zustand bis Sie ein Software-RAID erstellt haben oder md existiert. Dann können Sie /proc/mdstat anzeigen, um sich ein Bild davon zu machen, was gerade mit Ihren mdX RAID-Geräten passiert.
Die folgende /proc/mdstat Datei zeigt ein System mit dem Gerät md0, das als RAID 1 Gerät konfiguriert ist und zur Zeit die Platten neu synchronisiert:
Personalities : [linear] [raid1] read_ahead 1024 sectors md0: active raid1 sda2[1] sdb2[0] 9940 blocks [2/2] [UU] resync=1% finish=12.3min algorithm 2 [3/3] [UUU] unused devices: <none> |
Dies ist eine der eher häufig benutzten Dateien im Verzeichnis /proc, da sie viele wertvolle Informationen über die RAM-Auslastung des Systems ausgibt.
Die folgende virtuelle Beispieldatei /proc/meminfo stammt von einem System mit 256MB Ram und 384MB Swap-Space:
MemTotal: 255908 kB MemFree: 69936 kB Buffers: 15812 kB Cached: 115124 kB SwapCached: 0 kB Active: 92700 kB Inactive: 63792 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 255908 kB LowFree: 69936 kB SwapTotal: 524280 kB SwapFree: 524280 kB Dirty: 4 kB Writeback: 0 kB Mapped: 42236 kB Slab: 25912 kB Committed_AS: 118680 kB PageTables: 1236 kB VmallocTotal: 3874808 kB VmallocUsed: 1416 kB VmallocChunk: 3872908 kB HugePages_Total: 0 HugePages_Free: 0 Hugepagesize: 4096 kB |
Viele der hier ausgegebenen Informationen werden von den Befehlen free, top und ps verwendet. Die Ausgabe von free ist sogar im Aufbau und Inhalt ähnlich wie /proc/meminfo. Wenn Sie die Datei /proc/meminfo direkt ansehen, können Sie noch mehr Details ansehen:
MemTotal — Gesamte RAM-Größe in Kilobytes.
MemFree — Die Menge von physikalischem RAM, die vom System nicht benutzt wird, in Kilobytes.
Buffers — Die Größe des physikalischen RAM in Kilobytes, der für Dateipufferung verwendet wird.
Cached — Die Menge des physikalischen RAM, welcher als Cache verwendet wird, in Kilobyte.
SwapCached — Die Menge des als Cache verwendeten Swap, in Kilobyte.
Active — Die Gesamtmenge des Puffer oder Page-Cache-Speicher in Kilobyte, der aktiv verwendet wird. Dies ist Speicher der erst kürzlich benutzt wurde und für gewöhnlich nicht für andere Zwecke zurückgefordert wird.
Inactive — Die Gesamtmenge des Puffer oder Page-Cache-Speicher in Kilobyte, der frei ist und zur Verfügung steht. Dies ist Speicher der nicht erst kürzlich benutzt wurde und für andere Zwecke verwendet werden kann.
HighTotal und HighFree — Die Gesamtmenge und der freie Speicher in Kilobytes, die nicht direkt in den Kernelbereich gemappt werden. Die Werte von HighTotal können von Kernel zu Kernel anders sein.
LowTotal und LowFree — Die Gesamtmenge und der freie Speicher, die direkt in den Kernelbereich gemappt werden. Die Werte von LowTotal können von Kernel zu Kernel anders sein.
SwapTotal — Die gesamte verfügbare Swapgröße, in Kilobyte.
SwapFree — Die Gesamtmenge von freiem Swapspeicher, in Kilobyte.
Dirty — Die Gesamtmenge des Puffer oder Page-Cache-Speicher in Kilobyte, der darauf wartet auf die Festplatte zurückgeschrieben zu werden.
Writeback — Die Gesamtmenge des Speichers in Kilobyte, der zur Festplatte zurückgeschrieben wird.
Mapped — Die Gesamtmenge des Speichers in Kilobyte, welche zum Mapping von Geräten, Dateien oder Bibliotheken mittels dem Befehl mmap verwendet wurden.
Slab — Die Gesamtmenge an Speicher in Kilobyte, die vom Kernel zum Cachen von Datenstrukturen für dessen eigenen Bedarf verwendet wurden.
Commited_AS — Die Gesamtmenge von geschätztem Speicher in Kilobyte, welcher zur Ausführung der Arbeitslast. Dieser Wert repräsentiert den Wert im schlimmsten Fall und beinhaltet ebenso Swap-Speicher.
PageTables — Die Gesamtmenge von Speicher in Kilobyte, welcher der niedrigsten Stufe von Seiten-Tabellen gewidmet ist.
VMallocTotal — Die Gesamtmenge von Speicher in Kilobyte, des gesamten, allokierten virtuellen Adressbereichs.
VMallocUsed — Die Gesamtmenge von Speicher in Kilobyte von benutztem virtuellem Adressbereich.
VMallocChunk — Der größte, zusammenhängende Speicherblock in Kilobyte von verfügbarem, virtuellem Adressbereich.
HugePages_Total — Die vollständige Anzahl von Hugepages für das System. Diese Nummer wird berechnet, indem Hugepagesize durch die Megabytes, die in /proc/sys/vm/hugetlb_pool für hugepages reserviert wurden, geteilt wird. Diese Statistik erscheint lediglich auf x86-, Itanium- und AMD64-Architekturen.
HugePages_Free — Die vollständige Anzahl von Hugepages die dem System zur verfügung stehen. Diese Statistik erscheint lediglich auf x86-, Itanium- und AMD64-Architekturen.
Hugepagesize — Die Größe für jede Hugepages-Einheit in Kilobytes. Der Standardwert ist 4096 KB auf Uniprocessor-Kernels für 32-Bit Architekturen. Für SMP und Hugemem-Kernel ist der Standardwert 2048 KB. Für 64-Bit Architekturen ist der Standardwert 262144 KB. Diese Statistik erscheint lediglich auf x86-, Itanium- und AMD64-Architekturen.
Diese Datei listet verschiedene Treiber auf, die im Major-Gerät mit der Nummer 10 aufgeführt sind:
63 device-mapper 175 agpgart 135 rtc 134 apm_bios |
Die erste Spalte zeigt die Minor-Nummer des Geräts an und die zweite Spalte zeigt den benutzten Treiber an.
Diese Datei zeigt eine Liste aller Module an, die im Kernel geladen wurden. Ihr Inhalt hängt von der Konfiguration und vom System ab; die Organisation sollte aber ähnlich sein wie in dieser Ausgabe von /proc/modules:
![]() | Anmerkung |
|---|---|
Dieses Beispiel wurde in ein lesbares Format umformatiert. Der größte Teil dieser Information kann auch mit dem Befehl /sbin/lsmod angezeigt werden. |
nfs 170109 0 - Live 0x129b0000 lockd 51593 1 nfs, Live 0x128b0000 nls_utf8 1729 0 - Live 0x12830000 vfat 12097 0 - Live 0x12823000 fat 38881 1 vfat, Live 0x1287b000 autofs4 20293 2 - Live 0x1284f000 sunrpc 140453 3 nfs,lockd, Live 0x12954000 3c59x 33257 0 - Live 0x12871000 uhci_hcd 28377 0 - Live 0x12869000 md5 3777 1 - Live 0x1282c000 ipv6 211845 16 - Live 0x128de000 ext3 92585 2 - Live 0x12886000 jbd 65625 1 ext3, Live 0x12857000 dm_mod 46677 3 - Live 0x12833000 |
Die erste Spalte beinhaltet den Namen des Moduls.
Die zweite Spalte verweist auf die Speichergröße des Moduls in Bytes.
Die dritte Spalte listet die Anzahl der Instanzen des Moduls, die derzeit geladen sind. Ein Wert von Null repräsentiert ein ungeladenens Modul.
Die vierte Spalte gibt an, ob das Modul von der Anwesenheit eines anderen Moduls abhängig ist, um zu funktionieren und listet gleichzeitig diese anderen Module auf.
Die fünfte Spalte gibt an, in welchem Ladestatus sich das Modul befindet: Live, Loading oder Unloadingsind die einzigen möglichen Werte.
Die sechste Spalte listet den gegenwärtigen Kernel-Speicher-Offset für das geladene Modul. Diese Information kann für Debugging-Zwecke nützlich sein oder auch um Tools wie z.B. oprofile einzustellen.
Diese Datei gibt Ihnen einen kurzen Überblick über alle Mounts im System:
rootfs / rootfs rw 0 0 /proc /proc proc rw,nodiratime 0 0 none /dev ramfs rw 0 0 /dev/mapper/VolGroup00-LogVol00 / ext3 rw 0 0 none /dev ramfs rw 0 0 /proc /proc proc rw,nodiratime 0 0 /sys /sys sysfs rw 0 0 none /dev/pts devpts rw 0 0 usbdevfs /proc/bus/usb usbdevfs rw 0 0 /dev/hda1 /boot ext3 rw 0 0 none /dev/shm tmpfs rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0 |
Die Ausgabe aus dieser Datei ist sehr ähnlich zur Ausgabe von /etc/mtab, mit dem Unterschied, dass /proc/mount aktueller sein kann.
Die erste Spalte bezeichnet das Gerät das gemountet ist, wobei die zweite Spalte den zugehörigen Mount-Punkt anzeigt. Die dritte Spalte enthält den Dateisystemtyp und die vierte Spalte zeigt an, ob ein Dateisystem nur zum Lesen (ro) oder auch zum Schreiben (rw) gemountet ist. Die fünfte und sechste Spalte sind Dummy-Werte um das Format von /etc/mtab zu emulieren.
Diese Datei bezieht sich auf die aktuellen Memory Type Range Registers (MTRRs), die im System verwendet werden. Wenn Ihre System Architektur MTRRs unterstüzt, könnte Ihre Datei /proc/mtrr so ähnlich wie diese aussehen:
reg00: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1 reg01: base=0xe8000000 (3712MB), size= 32MB: write-combining, count=1 |
MTRRs werden seit der Intel P6 Familie benutzt (Pentium II und höher), um den Zugriff des Prozessors auf Speicherbereiche zu steuern. Wenn Sie eine Grafikkarte im PCI oder AGP Bus einsetzen, kann eine richtig konfigurierte /proc/mtrr Datei die Leistung um 150% erhöhen.
In den meisten Fällen werden diese Werte standardmäßig richtig für Sie eingestellt. Weitere Informationen zur manuellen Konfiguration dieser Datei, finden Sie unter folgender URL:
/usr/share/doc/kernel-doc-<version>/Documentation/mtrr.txt |
Diese Datei beinhaltet Informationen über die Zuweisung von Partitions-Blöcken. Ein Sampling dieser Datei von einem Grundsystem sieht ähnlich wie Folgendes aus:
major minor #blocks name 3 0 19531250 hda 3 1 104391 hda1 3 2 19422585 hda2 253 0 22708224 dm-0 253 1 524288 dm-1 |
Die meisten Infomationen hier sind nicht sehr wichtig für die meisten Benutzer. Die folgenden Zeilen allerdings ausgenommen:
major — Die Major-Nummer des Gerätes, auf dem diese Partition liegt. Die Major-Nummer in unserem Beispiel (3) entspricht dem Block-Gerät ide0 in /proc/devices.
minor — Die Minor-Nummer des Geräts, auf dem diese Partition liegt. Diese dient dazu, die Partionen auf verschiedene physikalische Geräte aufzuteilen und hängt mit der Zahl am Ende des Partitionsnamens zusammen.
#blocks — Listet die Anzahl von Plattenblöcken auf, die in einer bestimmten Partition enthalten sind.
name — Der Name der Partition.
Diese Datei enthält eine volle Auflistung jedes PCI-Geräts in Ihrem System. Wenn Sie viele PCI-Geräte im System haben, kann /proc/pci sehr lang werden. Ein Beispiel aus dieser Datei auf einem Standardrechner:
Bus 0, device 0, function 0:
Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 3).
Master Capable. Latency=64.
Prefetchable 32 bit memory at 0xe4000000 [0xe7ffffff].
Bus 0, device 1, function 0:
PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 3).
Master Capable. Latency=64. Min Gnt=128.
Bus 0, device 4, function 0:
ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 2).
Bus 0, device 4, function 1:
IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 1).
Master Capable. Latency=32.
I/O at 0xd800 [0xd80f].
Bus 0, device 4, function 2:
USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 1).
IRQ 5.
Master Capable. Latency=32.
I/O at 0xd400 [0xd41f].
Bus 0, device 4, function 3:
Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 2).
IRQ 9.
Bus 0, device 9, function 0:
Ethernet controller: Lite-On Communications Inc LNE100TX (rev 33).
IRQ 5.
Master Capable. Latency=32.
I/O at 0xd000 [0xd0ff].
Non-prefetchable 32 bit memory at 0xe3000000 [0xe30000ff].
Bus 0, device 12, function 0:
VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1).
IRQ 11.
Master Capable. Latency=32. Min Gnt=4.Max Lat=255.
Non-prefetchable 32 bit memory at 0xdc000000 [0xdfffffff]. |
Diese Ausgabe zeigt eine Liste aller PCI-Geräte an, sortiert nach Bus, Gerät und Funktion. Außer Namen und Version eines Gerätes, gibt Ihnen diese Liste auch detaillierte IRQ-Informationen, so dass ein Administrator Konflikten schnell beikommen kann.
![]() | Tipp | |
|---|---|---|
Für eine besser lesbare Version dieser Informationen geben Sie Folgendes ein:
|
Diese Datei gibt Ihnen Informationen über die Speicherbenutzung im slab Level. Linux Kernel über 2.2 benutzen slab pools, um Speicher über der Seiten-Ebene zu verwalten. Oft benutzte Objekte besitzen deren eigene Slab Pools.
Anstatt die sehr umfangreiche Datei /proc/slabinfo manuell zu durchsuchen, kann das Programm /usr/bin/slabtop verwendet werden, welches die Cache-Infos des Kernels in Echtzeit anzeigt. Das Programm erlaubt eine individuelle Einstellung wie zum Beispiel die Spaltensortierung und die Anzeige-Refreshrate.
Ein Screen Shot von /usr/bin/slabtop sieht normalerweise wie folgendes Beispiel aus:
Active / Total Objects (% used) : 133629 / 147300 (90.7%)
Active / Total Slabs (% used) : 11492 / 11493 (100.0%)
Active / Total Caches (% used) : 77 / 121 (63.6%)
Active / Total Size (% used) : 41739.83K / 44081.89K (94.7%)
Minimum / Average / Maximum Object : 0.01K / 0.30K / 128.00K
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
44814 43159 96% 0.62K 7469 6 29876K ext3_inode_cache
36900 34614 93% 0.05K 492 75 1968K buffer_head
35213 33124 94% 0.16K 1531 23 6124K dentry_cache
7364 6463 87% 0.27K 526 14 2104K radix_tree_node
2585 1781 68% 0.08K 55 47 220K vm_area_struct
2263 2116 93% 0.12K 73 31 292K size-128
1904 1125 59% 0.03K 16 119 64K size-32
1666 768 46% 0.03K 14 119 56K anon_vma
1512 1482 98% 0.44K 168 9 672K inode_cache
1464 1040 71% 0.06K 24 61 96K size-64
1320 820 62% 0.19K 66 20 264K filp
678 587 86% 0.02K 3 226 12K dm_io
678 587 86% 0.02K 3 226 12K dm_tio
576 574 99% 0.47K 72 8 288K proc_inode_cache
528 514 97% 0.50K 66 8 264K size-512
492 372 75% 0.09K 12 41 48K bio
465 314 67% 0.25K 31 15 124K size-256
452 331 73% 0.02K 2 226 8K biovec-1
420 420 100% 0.19K 21 20 84K skbuff_head_cache
305 256 83% 0.06K 5 61 20K biovec-4
290 4 1% 0.01K 1 290 4K revoke_table
264 264 100% 4.00K 264 1 1056K size-4096
260 256 98% 0.19K 13 20 52K biovec-16
260 256 98% 0.75K 52 5 208K biovec-64 |
Einige der weitläufiger benutzten Statistiken in /proc/slabinfo, welche in /usr/bin/slabtop inkludiert werden, beinhalten:
OBJS — Die Gesamtanzahl der Objekte (Speicher-Blöcke), inklusive denjenigen, die gerade benutzt werden (allokiert) und einigen in Reserve, die nicht benutzt werden.
ACTIVE — Anzahl der Objekte (Speicherblöcke), welche benutzt werden (allokiert).
USE — Prozentsatz aller aktiven Objekte. ((ACTIVE/OBJS)(100))
OBJ SIZE — Die Größe der Objekte.
SLABS — Die Gesamtanzahl der Slabs.
OBJ/SLAB — Die Anzahl der Objekte, die in ein Slab passen.
CACHE SIZE — Die Cache-Größe des Slab.
NAME — Der Name des Slab.
Für weitere Informationen über das Programm /usr/bin/slabtop, siehe die slabtop man-Seite.
Diese Datei enthält diverse Statistiken über das System seit dem letzten Neustart. Der Inhalt von /proc/stat, welcher auch sehr lang sein kann, fängt ähnlich wie unser Beispiel an:
cpu 259246 7001 60190 34250993 137517 772 0 cpu0 259246 7001 60190 34250993 137517 772 0 intr 354133732 347209999 2272 0 4 4 0 0 3 1 1249247 0 0 80143 0 422626 5169433 ctxt 12547729 btime 1093631447 processes 130523 procs_running 1 procs_blocked 0 preempt 5651840 cpu 209841 1554 21720 118519346 72939 154 27168 cpu0 42536 798 4841 14790880 14778 124 3117 cpu1 24184 569 3875 14794524 30209 29 3130 cpu2 28616 11 2182 14818198 4020 1 3493 cpu3 35350 6 2942 14811519 3045 0 3659 cpu4 18209 135 2263 14820076 12465 0 3373 cpu5 20795 35 1866 14825701 4508 0 3615 cpu6 21607 0 2201 14827053 2325 0 3334 cpu7 18544 0 1550 14831395 1589 0 3447 intr 15239682 14857833 6 0 6 6 0 5 0 1 0 0 0 29 0 2 0 0 0 0 0 0 0 94982 0 286812 ctxt 4209609 btime 1078711415 processes 21905 procs_running 1 procs_blocked 0 |
Einige der häufiger verwendeten Statistiken sind:
cpu — Misst die Anzahl der jiffies (1/100 einer Sekunde für x86-Systeme) in denen das System sich im Benutzermodus, Benutzermodus mit niedriger Priorität (nice), Systemmodus, Idle-Task, I/O-Wait, Interruptanfrage (Interrupt Request IRQ (hardirq) - hardwaremäßig) und entsprechende softwaremäßige Interruptanfrage, softirq, befunden hat. Jedes Hardware-Ereignis löst eine hardwaremäßige IRQ aus. Die Hardware-IRQ übernimmt die minimale Arbeit der Aufbereitung der Software-IRQs, welche die meiste Arbeit bei der eigentlichen Ausführung übernehmen. Software-IRQs besitzen eine niedrigere Priorität als Hardware-IRQs und können daher öfter unterbrochen werden. Die Gesamtanzahl aller CPUs wird ganz oben angeführt, während jede individuelle CPU darunter mit deren eigener Statistik aufgelistet ist. Das folgende Beispiel ist eine 4-Weg Intel Pentium Xeon Konfiguration mit aktiviertem Multithreading und zeigt daher 4 physikalische Prozessoren und vier virtuelle Prozessoren an, was eine Gesamtanzahl von acht Prozessoren ergibt.
page — Anzahl der Speicherseiten, die das System von Platte und auf Platte geschrieben hat.
swap — Anzahl der Swap-Seiten, die das System von Platte und auf Platte geschrieben hat.
intr — Anzahl der Interrupts, die im System aufgetreten sind.
btime — Die Boot-Zeit, gemessen in Sekunden seit dem 1 Januar 1970, auch bekannt als epoch.
Diese Datei misst den Swapspeicher und seine Auslastung. Für ein System mit nur einer Swap-Partition könnte die Ausgabe von /proc/swap ähnlich wie Folgt aussehen:
Filename Type Size Used Priority /dev/mapper/VolGroup00-LogVol01 partition 524280 0 -1 |
Obwohl Sie einige dieser Informationen auch in anderen Dateien im Verzeichnis /proc/ finden, liefert Ihnen die Datei /proc/swap einen Überblick über alle Swap-Dateinamen, Typen des Swap-Space und die Gesamtgröße sowie die verwendete Größe (in Kilobyte). Die Prioritätsspalte ist sinnvoll wenn mehrere Swap-Dateien benutzt werden. Je niedriger die Priorität, desto wahrscheinlicher wird eine Swap-Datei benutzt.
Unter Verwendung des Befehls echo, kann ein Remote-Benutzer System-Request-Key-Befehle wie an einem lokalen Terminal ausführen. Um mit echo den Wert in diese Datei zu schreiben, muss /proc/sys/kernel/sysrq auf einen Wert ungleich 0 gesetzt sein. Für weitere Informationen über den System-Request-Key, Sehen Sie Abschnitt 5.3.9.3.
Obwohl man zu dieser Datei schreiben kann, diese kann nicht gelesen werden, nicht einmal vom root-Benutzer.
Diese Datei enthält Informationen darüber, wie lange das System seit dem letzten Neustart läuft. Die Ausgabe von /proc/uptime ist relativ gering:
350735.47 234388.90 |
Die erste Zahl zeigt die Sekundenzahl an, die das System bereits läuft. Die zweite Zahl zeigt die Sekunden an, wielange die Maschine idle (im Leerlauf) war.
Diese Datei zeigt die Version des Linux-Kernels und von gcc an und außerdem die Version von Red Hat Enterprise Linux, die auf dem System installiert ist:
Linux version 2.6.8-1.523 (user@foo.redhat.com) (gcc version 3.4.1 20040714 \ (Red Hat Enterprise Linux 3.4.1-7)) #1 Mon Aug 16 13:27:03 EDT 2004 |
Diese Information wird für eine Vielzahl von Zwecken benutzt, unter anderem um Versionsdaten am Login-Prompt auszugeben.
| Zurück | Zum Anfang | Nach vorne |
| Das proc Dateisystem | Nach oben | Verzeichnisse in /proc/ |