[OS-007][중급] CPU·메모리·디스크 상태 확인하기
페이지 정보

본문
[이번 수업]
이번에는 운영체제 기본 도구로 CPU·메모리·디스크 상태를 읽고 결과를 해석합니다.
[선수지식]
OS-002의 프로세스 개념, OS-004의 파이프, OS-006의 프로세스·서비스 상태 확인을 알고 터미널이나 PowerShell을 실행할 수 있어야 합니다.
[학습목표]
1. CPU·메모리·디스크 지표의 뜻을 구분한다.
2. Linux·macOS·Windows에서 상태를 확인한다.
3. 한 번의 순간값 대신 여러 관측값을 비교한다.
[핵심개념]
CPU 사용률은 일정 시간 동안 프로세서가 일한 비율입니다. Linux·macOS의 `uptime`은 실행 시간과 1·5·15분 부하 평균을 보여줍니다. 부하 평균은 CPU 백분율이 아니라 실행 중이거나 실행을 기다리는 작업의 평균에 가까우므로 논리 CPU 수와 함께 봅니다.
메모리는 빈 공간만 보지 않습니다. 운영체제는 남는 메모리를 캐시로 활용하고 필요하면 회수합니다. Linux에서는 `free`의 `available`, macOS에서는 `vm_stat`과 활성 상태 보기의 메모리 압력, Windows에서는 전체·사용 가능 메모리를 함께 확인합니다.
디스크는 전체 크기보다 사용 가능 공간이 중요합니다. `df`는 파일시스템 단위 공간을 보여줄 뿐 어떤 폴더가 큰지는 알려주지 않습니다. CPU가 높아도 정상 작업 중일 수 있으므로 시간, 실행 작업, 평소 기준값을 함께 기록합니다.
[따라하기]
먼저 macOS·Linux 터미널에서 공통 명령을 실행합니다. 읽기 전용 명령이므로 관리자 권한은 필요 없습니다.
```sh
uname -s
uptime
df -h .
```
`uname`은 운영체제 계열, `uptime`은 실행 시간과 부하 평균, `df -h .`는 현재 폴더가 있는 파일시스템의 전체·사용·여유 공간을 사람이 읽기 쉬운 단위로 표시합니다. 출력값은 컴퓨터마다 다릅니다.
Linux에서는 다음을 실행합니다.
```sh
free -h
top -b -n 1 | head -n 8
```
`free -h`에서 `Mem:` 행의 `available`을 확인합니다. `top` 첫 부분은 부하, CPU 상태, 메모리 요약을 한 번 출력합니다. `-b`를 지원하지 않는 환경은 `top`을 실행하고 `q`로 끝냅니다.
macOS에서는 다음을 실행합니다.
```sh
vm_stat
top -l 1 -n 0 | head -n 12
```
`vm_stat`은 페이지 단위 메모리 통계를, `top`은 CPU·메모리 요약을 보여줍니다. 그래프로 보고 싶으면 활성 상태 보기에서 CPU·메모리·디스크 탭을 엽니다.
Windows PowerShell에서는 다음을 실행합니다.
```powershell
Get-CimInstance Win32_Processor |
Select-Object Name, LoadPercentage
Get-CimInstance Win32_OperatingSystem |
Select-Object TotalVisibleMemorySize, FreePhysicalMemory
Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3" |
Select-Object DeviceID, Size, FreeSpace
```
CPU 값은 백분율, 메모리는 KB, 디스크는 바이트 단위입니다. 예상 결과는 각 명령에 CPU 이름과 부하, 메모리 두 값, C: 같은 드라이브와 전체·여유 공간이 한 행 이상 표시되는 것입니다.
결과를 시각과 함께 텍스트 파일에 메모하고 30초 뒤 다시 실행하세요. 두 시점 모두 나쁜 값인지, 큰 작업을 시작하거나 끝낸 시점과 겹치는지 비교합니다.
[흔한 실수]
- 부하 평균을 CPU 사용률 백분율로 읽는다.
- Linux에서 `free` 열만 보고 캐시와 `available`을 무시한다.
- `df` 결과를 폴더별 사용량으로 생각한다.
- 한 번 높은 값만 보고 장애라고 단정한다.
- 상태 확인에 불필요하게 관리자 권한을 사용한다.
[보안 주의]
상태 명령은 본인 소유 컴퓨터나 허가받은 서버에서만 실행합니다. 결과에는 사용자명·호스트명·마운트 경로·프로세스 이름이 포함될 수 있으므로 그대로 공개하지 마세요. 진단을 위해 출처를 모르는 프로그램을 설치하거나, 서비스·프로세스를 임의로 종료하지 않습니다.
[직접 해볼 과제]
현재 시각과 CPU·메모리·디스크 결과를 두 번 기록하고 차이를 세 줄로 설명하세요. 디스크 여유가 가장 적은 파일시스템도 찾되 파일 삭제는 하지 않습니다.
[확인문제]
1. 부하 평균과 CPU 사용률은 왜 같은 값이 아닌가요?
2. Linux 메모리에서 `available`을 함께 보는 이유는 무엇인가요?
3. 한 번의 높은 값만으로 장애를 판단하면 안 되는 이유는 무엇인가요?
[다음 학습]
다음 NET-007에서는 Wi-Fi와 유선 네트워크의 차이와 연결 상태 확인 방법을 배웁니다.
[공식 참고 자료]
- Linux /proc 문서: https://www.kernel.org/doc/html/latest/filesystems/proc.html
- GNU df 공식 문서: https://www.gnu.org/software/coreutils/manual/html_node/df-invocation.html
- Apple 활성 상태 보기 안내: https://support.apple.com/guide/activity-monitor/welcome/mac
- Windows CPU 클래스: https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-processor
- Windows 메모리 클래스: https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-operatingsystem
- Windows 디스크 클래스: https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-logicaldisk
이번에는 운영체제 기본 도구로 CPU·메모리·디스크 상태를 읽고 결과를 해석합니다.
[선수지식]
OS-002의 프로세스 개념, OS-004의 파이프, OS-006의 프로세스·서비스 상태 확인을 알고 터미널이나 PowerShell을 실행할 수 있어야 합니다.
[학습목표]
1. CPU·메모리·디스크 지표의 뜻을 구분한다.
2. Linux·macOS·Windows에서 상태를 확인한다.
3. 한 번의 순간값 대신 여러 관측값을 비교한다.
[핵심개념]
CPU 사용률은 일정 시간 동안 프로세서가 일한 비율입니다. Linux·macOS의 `uptime`은 실행 시간과 1·5·15분 부하 평균을 보여줍니다. 부하 평균은 CPU 백분율이 아니라 실행 중이거나 실행을 기다리는 작업의 평균에 가까우므로 논리 CPU 수와 함께 봅니다.
메모리는 빈 공간만 보지 않습니다. 운영체제는 남는 메모리를 캐시로 활용하고 필요하면 회수합니다. Linux에서는 `free`의 `available`, macOS에서는 `vm_stat`과 활성 상태 보기의 메모리 압력, Windows에서는 전체·사용 가능 메모리를 함께 확인합니다.
디스크는 전체 크기보다 사용 가능 공간이 중요합니다. `df`는 파일시스템 단위 공간을 보여줄 뿐 어떤 폴더가 큰지는 알려주지 않습니다. CPU가 높아도 정상 작업 중일 수 있으므로 시간, 실행 작업, 평소 기준값을 함께 기록합니다.
[따라하기]
먼저 macOS·Linux 터미널에서 공통 명령을 실행합니다. 읽기 전용 명령이므로 관리자 권한은 필요 없습니다.
```sh
uname -s
uptime
df -h .
```
`uname`은 운영체제 계열, `uptime`은 실행 시간과 부하 평균, `df -h .`는 현재 폴더가 있는 파일시스템의 전체·사용·여유 공간을 사람이 읽기 쉬운 단위로 표시합니다. 출력값은 컴퓨터마다 다릅니다.
Linux에서는 다음을 실행합니다.
```sh
free -h
top -b -n 1 | head -n 8
```
`free -h`에서 `Mem:` 행의 `available`을 확인합니다. `top` 첫 부분은 부하, CPU 상태, 메모리 요약을 한 번 출력합니다. `-b`를 지원하지 않는 환경은 `top`을 실행하고 `q`로 끝냅니다.
macOS에서는 다음을 실행합니다.
```sh
vm_stat
top -l 1 -n 0 | head -n 12
```
`vm_stat`은 페이지 단위 메모리 통계를, `top`은 CPU·메모리 요약을 보여줍니다. 그래프로 보고 싶으면 활성 상태 보기에서 CPU·메모리·디스크 탭을 엽니다.
Windows PowerShell에서는 다음을 실행합니다.
```powershell
Get-CimInstance Win32_Processor |
Select-Object Name, LoadPercentage
Get-CimInstance Win32_OperatingSystem |
Select-Object TotalVisibleMemorySize, FreePhysicalMemory
Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3" |
Select-Object DeviceID, Size, FreeSpace
```
CPU 값은 백분율, 메모리는 KB, 디스크는 바이트 단위입니다. 예상 결과는 각 명령에 CPU 이름과 부하, 메모리 두 값, C: 같은 드라이브와 전체·여유 공간이 한 행 이상 표시되는 것입니다.
결과를 시각과 함께 텍스트 파일에 메모하고 30초 뒤 다시 실행하세요. 두 시점 모두 나쁜 값인지, 큰 작업을 시작하거나 끝낸 시점과 겹치는지 비교합니다.
[흔한 실수]
- 부하 평균을 CPU 사용률 백분율로 읽는다.
- Linux에서 `free` 열만 보고 캐시와 `available`을 무시한다.
- `df` 결과를 폴더별 사용량으로 생각한다.
- 한 번 높은 값만 보고 장애라고 단정한다.
- 상태 확인에 불필요하게 관리자 권한을 사용한다.
[보안 주의]
상태 명령은 본인 소유 컴퓨터나 허가받은 서버에서만 실행합니다. 결과에는 사용자명·호스트명·마운트 경로·프로세스 이름이 포함될 수 있으므로 그대로 공개하지 마세요. 진단을 위해 출처를 모르는 프로그램을 설치하거나, 서비스·프로세스를 임의로 종료하지 않습니다.
[직접 해볼 과제]
현재 시각과 CPU·메모리·디스크 결과를 두 번 기록하고 차이를 세 줄로 설명하세요. 디스크 여유가 가장 적은 파일시스템도 찾되 파일 삭제는 하지 않습니다.
[확인문제]
1. 부하 평균과 CPU 사용률은 왜 같은 값이 아닌가요?
2. Linux 메모리에서 `available`을 함께 보는 이유는 무엇인가요?
3. 한 번의 높은 값만으로 장애를 판단하면 안 되는 이유는 무엇인가요?
[다음 학습]
다음 NET-007에서는 Wi-Fi와 유선 네트워크의 차이와 연결 상태 확인 방법을 배웁니다.
[공식 참고 자료]
- Linux /proc 문서: https://www.kernel.org/doc/html/latest/filesystems/proc.html
- GNU df 공식 문서: https://www.gnu.org/software/coreutils/manual/html_node/df-invocation.html
- Apple 활성 상태 보기 안내: https://support.apple.com/guide/activity-monitor/welcome/mac
- Windows CPU 클래스: https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-processor
- Windows 메모리 클래스: https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-operatingsystem
- Windows 디스크 클래스: https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-logicaldisk
- 이전글[NET-007][중급] Wi-Fi와 유선 연결 상태 비교하기 26.09.02
- 다음글[DB-007][중급] PostgreSQL 설치하고 상태 확인하기 26.09.02
댓글목록
등록된 댓글이 없습니다.
