Linux Process Information
Environment
以下のコマンドはすべて下記の環境にて実行しています。
yuta ❯ ~
❯❯❯ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
/procディレクトリについて
ファイル名 | 説明 |
---|---|
/proc/cpuinfo | CPUの情報 |
/proc/meminfo | メモリの情報 |
/proc/ioports | I/Oポートの情報 |
/proc/interrupts | IRQの情報 |
/proc/bus/pci/devices | PCIデバイスの情報 |
/proc/scsi/scsi | SCSIデバイスの情報 |
/proc/bus/usb/devices | USBデバイスの情報 |
/proc ディレクトリはHDDやSSKのストレージ上に作成されるわけではないです。
メモリの中に仮想的に作成されるファイルシステムです。
ファイルサイズが0の上、タイムスタンプが現在時刻になっていることがほとんどです。
yuta ❯ ~
❯❯❯ ls -la / | grep proc
dr-xr-xr-x 329 root root 0 5月 14 05:57 proc
/proc/cpuinfo
CPUに関する詳細な情報を確認することができます。
flagsとはCPUがどのようなモードに対応しているのかを確認できます。
モード | 説明 |
---|---|
vme | 仮想モード拡張機能 |
de | デバッグ機能 |
ht | ハイパースレッディングテクノロジー |
lm | ロングモードサポート |
yuta ❯ ~
❯❯❯ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Pentium(R) 4 @3.20GHz
stepping : 10
microcode : 2571
cpu MHz : 2294.249
cache size : 3072 KB
(略)
flags : vme de pse tsc msr pae mce cx8 apic sep mtrr ht lm
(略)
/proc/meminfo
メモリーの詳細情報を取得可能
man proc
で確認したところ取得しているのは統計情報であった。
yuta ❯ ~
❯❯❯ cat /proc/meminfo
MemTotal: 16260048 kB
MemFree: 8698376 kB
MemAvailable: 12415868 kB
Buffers: 296564 kB
Cached: 4133240 kB
(略)
/proc/ioports
コンピュータ内部で、CPUがデータの送受信にI/Oポートを使用する。
その際に使用されるI/Oポートは固有のポートアドレスを持ち、識別される。
yuta ❯ ~
❯❯❯ cat /proc/ioports
0000-0000 : PCI Bus 0000:00
0000-0000 : dma1
0000-0000 : pic1
0000-0000 : timer0
0000-0000 : timer1
0000-0000 : keyboard
0000-0000 : PNP0C09:00
0000-0000 : EC data
0000-0000 : keyboard
0000-0000 : PNP0C09:00
0000-0000 : EC cmd
0000-0000 : rtc0
0000-0000 : dma page reg
0000-0000 : pic2
0000-0000 : dma2
0000-0000 : fpu
0000-0000 : wdat_wdt
0000-0000 : wdat_wdt
0000-0000 : wdat_wdt
0000-0000 : pnp 00:02
0000-0000 : PCI conf1
0000-0000 : PCI Bus 0000:00
0000-0000 : pnp 00:02
0000-0000 : pnp 00:02
0000-0000 : ACPI PM1a_EVT_BLK
0000-0000 : ACPI PM1a_CNT_BLK
0000-0000 : ACPI PM_TMR
0000-0000 : ACPI CPU throttle
0000-0000 : ACPI PM2_CNT_BLK
0000-0000 : pnp 00:04
0000-0000 : ACPI GPE0_BLK
0000-0000 : PCI Bus 0000:06
0000-0000 : 0000:00:02.0
0000-0000 : 0000:00:17.0
0000-0000 : ahci
0000-0000 : 0000:00:17.0
0000-0000 : ahci
0000-0000 : 0000:00:17.0
0000-0000 : ahci
0000-0000 : 0000:00:1f.4
0000-0000 : i801_smbus
0000-0000 : pnp 00:01
0000-0000 : pnp 00:02
0000-0000 : pnp 00:02
0000-0000 : pnp 00:02
/proc/interrupts
IOデバイスごとにCPUあたりの割り込み回数を記録するために使用される。
割込の種類 | 説明 |
---|---|
NMI | システムに致命的な障害発生時 |
LOC | ローカルタイマーによる割込発生時 |
TLB | 仮想メモリアドレスと物理メモリアドレスのマッピングをCPUが切り替えた時 |
RES | 他のコアへスケジューリング要求を出すときの割り込み |
SPU | 原因不明時割り込み |
yuta ❯ ~
❯❯❯ cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 8 0 0 0 IO-APIC 2-edge timer
1: 59163 0 6403 0 IO-APIC 1-edge i8042
8: 0 0 0 1 IO-APIC 8-edge rtc0
9: 383 38 0 0 IO-APIC 9-fasteoi acpi
12: 5359854 302833 0 0 IO-APIC 12-edge i8042
20: 0 0 3 0 IO-APIC 20-fasteoi i801_smbus
123: 857701 0 0 0 PCI-MSI 376832-edge ahci[0000:00:17.0]
124: 0 135 0 0 PCI-MSI 360448-edge mei_me
125: 20289 0 515793 81440 PCI-MSI 327680-edge xhci_hcd
126: 0 0 0 0 PCI-MSI 2621440-edge mmc0
127: 0 0 6657 0 PCI-MSI 514048-edge snd_hda_intel:card0
128: 2490 0 1013338 4882675 PCI-MSI 1048576-edge iwlwifi
129: 2658 12375366 0 193 PCI-MSI 32768-edge i915
130: 0 0 137480 6 PCI-MSI 520192-edge enp0s31f6
NMI: 144 912 888 886 Non-maskable interrupts
LOC: 34154003 38515829 37693684 36393494 Local timer interrupts
SPU: 0 0 0 0 Spurious interrupts
(略)
/proc/bus/pci/devices
PCIのデバイス情報を取得可能
yuta ❯ ~
❯❯❯ lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #4 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
00:1c.5 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #6 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection I219-V (rev 21)
02:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)
05:00.0 SD Host controller: O2 Micro, Inc. SD/MMC Card Reader Controller (rev 01)