/proc 에서 커널정보 확인하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 1,882 조회
- 0 추천
- 목록
본문
/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번호에 할당된 각 장치들을 확인할 수 있다.
관련자료
-
이전
-
다음