강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

/proc 에서 커널정보 확인하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

/proc 에서 커널정보 확인하기

 

 

 

 

/proc디렉토리내의 파일들에는 시스템자원들에 대한 여러가지 정보를 저장하고있는 파일들이 있다.

 

 

 

 

예를들어 /proc/cpuinfo파일에는 현재 서버의 CPU정보가 상세히 저장되어 있다.

 

 

 

 

이번에는 /proc디렉토리내의 파일들에 대하여 알아보도록 하겠다.

 

 

 

 

 

 

 

1. cpu 정보를 확인하자.

 

 

 

/proc파일시스템에는 cpuinfo라는 파일이 있다.

 

 

 

 

이 파일시스템에는 서버에 장착되어있는 CPU의 정보를 확인할 수있다.

 

 

 

 

다음의 예를 보자.

 

[root@sulinux ~]#cat /proc/cpuinfo

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 15

model name      : Intel(R) Core(TM)2 Duo CPU     T7500  @ 2.20GHz

stepping        : 8

cpu MHz         : 2188.840

cache size      : 4096 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 10

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss nx constant_tsc ida pni ds_cpl

bogomips        : 4391.74

 

processor       : 1

vendor_id       : GenuineIntel

cpu family      : 6

model           : 15

model name      : Intel(R) Core(TM)2 Duo CPU     T7500  @ 2.20GHz

stepping        : 8

cpu MHz         : 2188.840

cache size      : 4096 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 10

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss nx constant_tsc ida pni ds_cpl

bogomips        : 4388.78

 

[root@sulinux ~]#

 

 

 

현재 이 서버에는 CPU가 두개 장착되어 있다.

 

 

 

 

Processor 번호가 0, 그리고 1번 두개가 있으며 CPU의 속도는 2188.840Mhz라는 정보도 알 수가 있다.

 

 

 

 

이외에도 CPU와 관련된 CPU 타입, 모델(Intel(R) Core(TM)2 Duo CPU     T7500  @ 2.20GHz), 제조회사(Intel), 캐쉬크기(4096 KB)등 중요한 정보들을 확인할 수 있다.

 

 

 

 

 

 

 

2. 사용중이거나 사용가능한 장치(device)파일 확인

 

 

 

 

 

서버에서는 사용가능한 장치파일이 존재한다.

 

 

 

 

현재 사용가능한 장치파일들을 확인하려면 devices 파일을 확인해보면 알 수 있다.

 

 

 

 

 

 

[root@sulinux ~]#cat /proc/devices

Character devices:

  1 mem

  4 /dev/vc/0

  4 tty

  4 ttyS

  5 /dev/tty

  5 /dev/console

  5 /dev/ptmx

  6 lp

  7 vcs

 10 misc

 13 input

 14 sound

 21 sg

 29 fb

116 alsa

128 ptm

136 pts

162 raw

180 usb

189 usb_device

254 pcmcia

 

Block devices:

  1 ramdisk

  2 fd

  8 sd

  9 md

 22 ide1

 65 sd

 66 sd

 67 sd

 68 sd

 69 sd

 70 sd

 71 sd

128 sd

129 sd

130 sd

131 sd

132 sd

133 sd

134 sd

135 sd

253 device-mapper

254 mdp

[root@sulinux ~]#

 

 

 

 

 

 

3. 현재 커널에서 인식되어있는 파일시스템 타입 확인

 

 

 

 

현재 시스템에서 사용할 수 있는 파일시스템 타입 즉 커널이 인식가능한 파일시스템 타입을 확인할 수 있다.

 

 

 

 

filesystems라는 파일에는 다음예와 같이 커널이 사용가능한 파일시스템 타입정보를 저장하고 있다.

 

 

 

 

 

 

[root@sulinux ~]#cat /proc/filesystems

nodev   sysfs

nodev   rootfs

nodev   bdev

nodev   proc

nodev   cpuset

nodev   binfmt_misc

nodev   debugfs

nodev   securityfs

nodev   sockfs

nodev   usbfs

nodev   pipefs

nodev   futexfs

nodev   tmpfs

nodev   inotifyfs

nodev   eventpollfs

nodev   devpts

        ext2

nodev   ramfs

nodev   hugetlbfs

        iso9660

nodev   mqueue

        ext3

[root@sulinux ~]#

 

위의 결과를 보면 iso9660, ext3 ext2, 그리고 sysfs, proc등의 파일시스템타입을 볼 수 있다.

 

 

 

 

 

 

4. 현재 사용되고있는 메모리 번지별 사용내역 확인

 

현재 메모리에 할당되어있는 내역을 확인할 수 있다.

 

 

 

 

메모리 번지별로 할당된 내역이 “iomem”에 기록된다.

 

 

 

 

물론 프로세스의 실행과 상태에 따라서 이 값은 매번 바뀌는 값들이다.

 

 

 

 

 

 

[root@sulinux ~]#cat /proc/iomem

00000000-0009f7ff : System RAM

  00000000-00000000 : Crash kernel

0009f800-0009ffff : reserved

000a0000-000bffff : Video RAM area

000c0000-000c7fff : Video ROM

000ca000-000cafff : Adapter ROM

000cb000-000cbfff : Adapter ROM

000f0000-000fffff : System ROM

00100000-0feeffff : System RAM

  00400000-0060bebb : Kernel code

  0060bebc-006e69db : Kernel data

0fef0000-0fefefff : ACPI Tables

0feff000-0fefffff : ACPI Non-volatile Storage

0ff00000-0fffffff : System RAM

20000000-200fffff : PCI Bus #02

  20000000-2000ffff : 0000:02:00.0

  20010000-2001ffff : 0000:02:03.0

20100000-20107fff : 0000:00:0f.0

20108000-2010bfff : 0000:00:10.0

e8000000-e87fffff : 0000:00:0f.0

e8800000-e8800fff : 0000:00:10.0

e8801000-e8801fff : 0000:00:11.0

e8900000-e89fffff : PCI Bus #02

  e8900000-e8900fff : 0000:02:02.0

    e8900000-e8900fff : ehci_hcd

f0000000-f7ffffff : 0000:00:0f.0

  f0000000-f150ffff : vesafb

fec00000-fec0ffff : reserved

fee00000-fee00fff : reserved

fffe0000-ffffffff : reserved

[root@sulinux ~]#

 

 

 

 

 

5. 입출력포트의 번지별 사용내역

 

서버에 장착된 장치들이 사용하는 입출력 포트정보를 확인할 수 있다.

 

 

 

 

다음 예와 같이  “ioports” 파일에는 입출력 번지별로 할당된 장치명을 확인할 수 있다.

 

 

 

 

 

 

[root@sulinux ~]#cat /proc/ioports

0000-001f : dma1

0020-0021 : pic1

0040-0043 : timer0

0050-0053 : timer1

0060-006f : keyboard

0070-0077 : rtc

0080-008f : dma page reg

00a0-00a1 : pic2

00c0-00df : dma2

00f0-00ff : fpu

0170-0177 : ide1

02f8-02ff : serial

0376-0376 : ide1

0378-037a : parport0

03c0-03df : vesafb

03f2-03f5 : floppy

03f7-03f7 : floppy DIR

03f8-03ff : serial

0cf8-0cff : PCI conf1

1000-103f : 0000:00:07.3

  1000-103f : motherboard

    1000-1003 : ACPI PM1a_EVT_BLK

    1004-1005 : ACPI PM1a_CNT_BLK

    1008-100b : ACPI PM_TMR

    100c-100f : ACPI GPE0_BLK

    1010-1015 : ACPI CPU throttle

1040-104f : 0000:00:07.3

  1040-104f : motherboard

1050-105f : 0000:00:07.1

  1058-105f : ide1

1060-107f : 0000:00:07.2

  1060-107f : uhci_hcd

1080-10ff : 0000:00:10.0

1400-140f : 0000:00:0f.0

2000-2fff : PCI Bus #02

  2000-207f : 0000:02:00.0

    2000-201f : pcnet32_probe_pci

  2080-20ff : 0000:02:03.0

    2080-209f : pcnet32_probe_pci

  2400-243f : 0000:02:01.0

    2400-243f : Ensoniq AudioPCI

[root@sulinux ~]#

 

이 파일에서는 시스템에 장착된 각 장치들이 사용하고 있는 입출력번지를 확인할 수 있다.

 

 

 

 

예를들어 키보드는 “0060-006f”를 사용하다는 것을 알 수 있다.

 

 

 

 

6. 서버 평균부하율 정보 확인

 

 

 

/proc/loadavg파일의 내용을 다음과 같이 확인해보면 현재서버의 평균부하율을 알 수 있다.

 

[root@sulinux ~]#cat /proc/loadavg

2.49 0.97 0.36 2/90 2508

[root@sulinux ~]#

 

 

 

즉 첫번째 수치는 최근 1분동안의 서버평균 부하율을 나타내며, 두번째는 최근 5분동안, 그리고 세번째는 최근 15분 동안의 서버 평균 부하율을 각각 나타내고있다.

 

 

 

 

이 정보는 uptime명령어와 top명령어에서 확인할 수 있는 시스템 부하율값이다.

 

 

 

 

 

 

다음 uptime의 결과를 참고해보기 바란다.

 

 

 

 

 

 

[root@sulinux ~]#uptime

 16:59:58 up 26 min,  4 users,  load average: 2.49, 0.97, 0.36

[root@sulinux ~]#

 

uptime top등의 명령어에서는 /proc/loadavg파일의 값을 가져와서 보여준다.

 

 

 

 

7. 메모리 일반정보 확인

 

 

 

“meminfo”파일에서 서버의 메모리에 대한 정보를 확인할 수 있다.

 

 

 

 

 실제 메모리와 가상메모리인 스왑(swap)메모리의 사용내역까지 확인 가능하다.

 

 

 

 

 다음 예를 보자.

 

[root@sulinux ~]#cat /proc/meminfo

MemTotal:       255620 kB

MemFree:          3932 kB

Buffers:         14984 kB

Cached:         185204 kB

SwapCached:          0 kB

Active:          55392 kB

Inactive:       175116 kB

HighTotal:           0 kB

HighFree:            0 kB

LowTotal:       255620 kB

LowFree:          3932 kB

SwapTotal:      522072 kB

SwapFree:       522072 kB

Dirty:           26440 kB

Writeback:           0 kB

AnonPages:       30416 kB

Mapped:          20384 kB

Slab:            15460 kB

PageTables:       1780 kB

NFS_Unstable:        0 kB

Bounce:              0 kB

CommitLimit:    649880 kB

Committed_AS:   140676 kB

VmallocTotal:   770040 kB

VmallocUsed:      4024 kB

VmallocChunk:   765872 kB

HugePages_Total:     0

HugePages_Free:      0

HugePages_Rsvd:      0

Hugepagesize:     4096 kB

[root@sulinux ~]#

 

 

 

 

이 파일은 서버 메모리의 사용상황에 따라서 계속 변경되며 서버에 장착된 전체메모리량과 현재 사용중인 메모리, 현재 놀고있는 메모리, 공유메모리 및 caching된 메모리 정보들과 스왑메모리내역을 확인 할 수 있다.

 

 

 

 

여기서 확인한 /proc/meminfo파일의 값은 “free”, “swap”등의 명령어에서 사용되는 값이다.

 

 

 

 

 

 

 

8. 커널(kernel)에 로드되어있는 모듈확인

 

 

 

 

“modules”는 현재 커널에 로드되어있는 모듈(modules)정보를 확인할 수 있는 파일이다.

 

 

 

[root@sulinux ~]#cat /proc/modules

dm_mirror 29253 0 - Live 0xd0bc8000

dm_multipath 22089 0 - Live 0xd0b61000

dm_mod 61661 2 dm_mirror,dm_multipath, Live 0xd0b6c000

video 21193 0 - Live 0xd0b4c000

sbs 18533 0 - Live 0xd0b53000

backlight 10049 1 video, Live 0xd0b39000

i2c_ec 9025 1 sbs, Live 0xd0b3d000

button 10705 0 - Live 0xd0b31000

battery 13637 0 - Live 0xd0b47000

asus_acpi 19289 0 - Live 0xd0b41000

ac 9157 0 - Live 0xd0b35000

ipv6 258273 31 - Live 0xd0b7d000

xfrm_nalgo 13765 1 ipv6, Live 0xd0ad7000

crypto_api 11969 1 xfrm_nalgo, Live 0xd0adc000

lp 15848 0 - Live 0xd0aaa000

snd_ens1371 28513 0 - Live 0xd0b08000

gameport 18633 1 snd_ens1371, Live 0xd0b02000

snd_rawmidi 26561 1 snd_ens1371, Live 0xd0afa000

snd_ac97_codec 93025 1 snd_ens1371, Live 0xd0b19000

ac97_bus 6337 1 snd_ac97_codec, Live 0xd0ab3000

이하생략

 

 

 

 

또한 /proc/modules파일은 “lsmod”명령어에서 사용되는 파일이기도하다.

 

 

 

 

 

 

 

9. 현재 마운트(mount) 되어있는 정보확인

 

 

 

 

“mounts”파일에는 현재 시스템에 마운트되어있는 정보를 확인할 수 있다.

 

 

 

 

 

 

[root@sulinux ~]#cat /proc/mounts

rootfs / rootfs rw 0 0

/dev/root / ext3 rw,data=ordered 0 0

/dev /dev tmpfs rw 0 0

/proc /proc proc rw 0 0

/sys /sys sysfs rw 0 0

/proc/bus/usb /proc/bus/usb usbfs rw 0 0

devpts /dev/pts devpts rw 0 0

/dev/sda3 /home ext3 rw,data=ordered 0 0

/dev/sda1 /boot ext3 rw,data=ordered 0 0

tmpfs /dev/shm tmpfs rw 0 0

none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

[root@sulinux ~]#

 

 

 

/proc/mounts파일의 내용은 mount명령어와 df명령어에서 사용되는 값이기도 하다.

 

 

 

 

 

 

 

10. 현재 설정된 파티션정보 확인

 

 

 

 

현재 서버의 하드디스크의 파티션정보를 보관하고 있는 파일이 “partitions”파일이다.

 

 

 

 

 

 

[root@RockyLinux ~]# cat /proc/partitions

major minor  #blocks  name

 

   8        0  104857600 sda

   8       16   41943040 sdb

   8       17     614400 sdb1

   8       18    1048576 sdb2

   8       19   40278016 sdb3

   8       32  104857600 sdc

   8       33  104856559 sdc1

   8       48  209715200 sdd

  11        0    8797056 sr0

  11        1    1048575 sr1

 253        0   38150144 dm-0

 253        1    2125824 dm-1

[root@RockyLinux ~]#

 

 

 

 

이 파일에는 각 파티션들의 주장치번호(major)와 부장치번호(minor)와 함께 블럭번호(#blocks), 그리고 장치명(name)에 대한 정보가 저장되어있다.

 

 

 

 

이 정보와 위의 “mounts”정보에서 확인할 수 있는 파티션정보는 대부분 일치하지만 하드디스크에서 파티션된 것중 마운트하지 않은 채로 사용되지 않은 파티션이 존재할 수 있기 때문에 위의 “mounts”에서 확인할 수 있는 파티션정보와는 동일하게 100% 일치하는 것은 결코 아니라는 것을 알아두기 바란다.

 

 

 

 

 

 

 

 

 

11. 커널버전(kernel version)정보 확인

 

 

 

/proc/version에 있는 “version”이라는 파일에는 현재 사용중인 커널의 버전을 확인할 수 있다.

 

 

 

 

 

 

[root@RockyLinux ~]# cat /proc/version

Linux version 5.14.0-162.23.1.el9_1.x86_64 (mockbuild@dal1-prod-builder001.bld.equ.rockylinux.org) (gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2), GNU ld version 2.35.2-24.el9) #1 SMP PREEMPT_DYNAMIC Tue Apr 11 19:09:37 UTC 2023

[root@RockyLinux ~]#

 

커널버전을 확인할 경우에는 대부분 “uname”이라는 명령어를 사용하며 uname명령어는 /proc/version파일의 내용을 가져와서 보여준다.

 

 

 

 

 

 

다음 uname의 결과와 함께 비교해보기 바란다.

 

 

 

 

 

 

[root@RockyLinux ~]# uname -a

Linux RockyLinux 5.14.0-162.23.1.el9_1.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 11 19:09:37 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

[root@RockyLinux ~]#

 

그러나 /proc/version 파일에는 커널에 관련된 훨씬 더 많은 정보를 보관하고있다.

 

 

 

 

즉 제작 회사정보, 커널 컴파일러명과 컴파일러버전정보 및 커널 컴파일 날짜, 배포판 버전정보등을 확인할 수 있다.

 

 

 

 

 

 

 

12. IRQ값 정보확인

 

 

 

 

 


/proc/interrupts
파일의 내용을 확인해보면 현재 리눅스 서버에서 사용하고있는 IRQ정보(인터럽트정보)를 확인할 수 있다.

 

 

 

 

아래 예를 보기 바란다.

 

 

 

 

 

 

[root@sulinux ~]#cat /proc/interrupts

           CPU0       CPU1      

  0:    1595871          0    IO-APIC-edge  timer

  1:         10          1    IO-APIC-edge  i8042

  6:          2          3    IO-APIC-edge  floppy

  7:          0          0    IO-APIC-edge  parport0

  8:          1          0    IO-APIC-edge  rtc

  9:          0          0   IO-APIC-level  acpi

 12:        104          3    IO-APIC-edge  i8042

 15:      13989          3    IO-APIC-edge  ide1

169:       7973     146060   IO-APIC-level  eth0

177:          0          0   IO-APIC-level  ehci_hcd:usb1

185:          0          0   IO-APIC-level  uhci_hcd:usb2, Ensoniq AudioPCI

193:       6603      52448   IO-APIC-level  ioc0

NMI:          0          0

LOC:    1595922    1595462

ERR:          0

MIS:          0

[root@sulinux ~]#

 

 

 

 

위의 결과를 보는바와 같이 이 파일에는 IRQ번호에 할당된 각 장치들을 확인할 수 있다.

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,156 명
  • 현재 강좌수 :  36,513 개
  • 현재 접속자 :  276 명