1. /proc/[pid]/
/proc에는 시스템에 존재하는 각 프로세스의 PID와 동일한 이름의 디렉토리들이 있다. 이 아래 어떤 디렉토리가 있는지 보자.
1-1. /proc/[pid]/cmdline
해당 프로세스를 실행하기 위해 사용한 명령어를 담고 있다.
1-2. /proc/[pid]/cwd
프로세스가 현재 작업 중인 디렉토리를 향한 심볼릭 링크다.
1-3. /proc/[pid]/status
프로세스의 이름, 상태, pid, ppid, 소유자 등의 정보를 담고 있다.
2. /proc/cmdline
부팅 시 커널에 넘겨진 모든 인자들을 담고 있다.
3. /proc/cpuinfo
아키텍쳐, 주파수, CPU의 캐쉬량 등 프로세스 관련 정보를 담고 있다.
4. /proc/filesystems
현재 커널이 지원하는 모든 파일 시스템의 목록이 있다. nodev로 시작하는 항목은 네트워크 파일시스템이나 proc 같은 비물리적 파일시스템이다.
5. /proc/loadavg
시스템의 평균 부하율(load average)에 대한 정보를 담고 있다. 첫 3개의 필드는 uptime으로 볼 수 있는 정보와 동일하다.
네 번째 필드는 슬래쉬로 나눠진 2개의 숫자로 되어 있다. 첫 번째는 현재 실행 중인 프로세스/스레드 수를 나타낸다. 이 값은 시스템에 있는 프로세서 코어의 수를 넘지 않는다. 두 번째는 시스템에 있는 프로세스/쓰레드의 수를 나타낸다.
다섯 번재 필드는 가장 최근에 생성된 프로세스의 PID 값이다. 이 부분은 주의가 필요한데 만약 'cat /proc/loadavg'라는 명령을 실행한다면 이 값이 실행된 cat 프로그램의 PID로 바뀌기 때문이다.
6. /proc/net/
네트워킹 레이어에 대한 많은 파일이 있다. 모든 파일은 아스키로 되어 있어 읽을 수 있다.
6-1. /proc/net/arp
arp 테이블을 담고 있다.
6-2. /proc/net/dev
인터페이스별로 송신, 수신한 패킷 및 바이트 같은 정보가 있다.
6-3. /proc/net/route
라우팅 테이블이 16진수 형태로 있다.
6-4. /proc/net/wireless
품질이나 버린 패킷 수 등 현재 무선 연결과 관련된 정보를 담고 있다.
7. /proc/swaps
사용 중인 스왑의 양과 스왑 파티션의 우선순위를 담고 있다.
8. /proc/sys/kernel/hostname
시스템의 현재 호스트명을 담고 있다. "echo '새로운 호스트명' > /proc/sys/kernel/hostname"을 통해 변경할 수 있다.
9. /proc/sys/kernel/threads-max
시스템에 동시에 존재할 수 있는 프로세스/쓰레드의 최대 개수를 정의하고 있다. /proc/loadavg의 네 번째 필드에 있는 현재 프로세스/쓰레드의 개수와 비교해보자.
10. /proc/sys/vm/swappiness
커널이 얼마나 메모리를 어느 정도 스왑할지를 제어하는 값이 있다. 이 값을 높이면 커널은 더 자주 스왑을 하려고 할 것이며, 낮추면 스왑을 덜 하려고 할 것이다. 기본 값은 60이다.
11. /proc/uptime
두 값이 있는데 첫 번째는 시스템이 시작된 후로 지난 시간(초)이며, 두 번째는 idle 상태로 보낸 시간이다. 이를 이용한 아래 명령어를 통해 idle로 존재한 시간을 백분율을 알 수 있다.
echo `cut -d' ' -f2 /proc/uptime` / `cut -d' ' -f1 /proc/uptime` | bc -l
12. /proc/vmstat
가상 메모리 현황을 담고 있다.
13. /proc/sys/net/ipv4/conf/default/forwarding
커널이 tcp forwarding을 허용할지를 제어한다. 디폴트 값은 0이며 포워딩 금지를 뜻한다.
'Operating System > Linux' 카테고리의 다른 글
[Linux/Ubuntu] Hyper-V의 우분투 VM 화면 해상도 늘이기 (0) | 2020.09.21 |
---|---|
[Ubuntu, error] fail - libtoolize is needed because this package uses Libtool (0) | 2020.06.19 |
[Linux/Ubuntu] 우분투 수동 시간 설정(date)이 되지 않을때 해결 방법 (0) | 2020.06.15 |
[Linux] (LTP - Linux Test Project) 리눅스 커널 (OS) 종합 테스트 (0) | 2020.06.04 |
[CentOS7, Raspberry PI] 무선 랜 연결 설정 방법 #1 (NetworkManager) (0) | 2020.04.29 |