리눅스에서 프로세스의 메모리 사용량을 확인하는 방법은?
_____A1: `top` 명령어를 사용하면 실시간으로 프로세스들의 메모리 사용량을 확인할 수 있습니다. 프로세스별로 %MEM(메모리 사용 비율)과 RES(실제 메모리 사용량)를 확인할 수 있습니다. 터미널에 `top` 입력 후, 메모리 관련 열을 참고하세요.
---
Q2: 한 번에 특정 프로세스의 메모리 사용량을 알고 싶다면 어떻게 하나요?
A2: `ps` 명령어에 메모리 출력 옵션을 주면 됩니다. 예를 들어 프로세스 이름이 `myapp`일 경우:
```
ps aux | grep myapp
```
혹은 PID로 조회 시:
```
ps -p
```
- %MEM: 프로세스가 사용하는 전체 메모리 비율
- RSS: 실제 물리 메모리 사용량(KB)
- VSZ: 가상 메모리 크기(KB)
---
Q3: 프로세스의 메모리 사용량 상세를 보고 싶을 때는 어떤 명령어를 쓰나요?
A3: `/proc` 파일 시스템에서 해당 PID의 메모리 상태를 확인할 수 있습니다:
```
cat /proc/
```
여기서 VmSize, VmRSS, VmData, VmSwap 등 다양한 메모리 정보가 나타납니다.
---
Q4: GUI 환경에서 프로세스 메모리 사용량을 쉽게 확인할 방법은?
A4: `htop` 명령어를 사용하면 `top`보다 보기 쉬운 인터페이스로 메모리 사용량을 확인할 수 있고, 프로세스를 검색하거나 정렬도 가능합니다. 설치되어 있지 않다면 `sudo apt install htop` 또는 `sudo yum install htop`으로 설치 후 실행하세요.
---
Q5: 프로세스가 사용하는 메모리 중 공유 메모리(Shared Memory)를 구분해서 확인하는 방법은?
A5: `smem`이라는 도구를 사용하면 공유 메모리를 고려해 실제 프로세스가 독점적으로 사용하는 메모리를 효과적으로 볼 수 있습니다. 설치 후:
smem -p -P <프로세스명 또는 PID>
```
smem은 PSS(Proportional Set Size)라는 값을 제공해 공유 메모리 분배를 감안한 정확한 메모리 사용량을 보여줍니다.
---
Q6: 프로세스 메모리 사용량을 실시간으로 모니터링하고 싶을 때 추천하는 방법은?
A6: `watch` 명령어와 함께 `ps`를 조합해서 주기적으로 확인하는 예:
```
watch -n 2 "ps -p
```
이 명령은 2초마다 해당 프로세스의 메모리 사용량을 갱신해 보여줍니다.
---
Q7: `/proc/
A7: `/proc/
---
Q8: 메모리 사용량 단위가 헷갈리는데, 주로 어떤 단위로 나오나요?
A8: `ps` 명령어의 RSS, VSZ는 기본적으로 KB 단위이며, `/proc` 파일 내 값들도 대부분 KB 단위입니다. `top`의 %MEM은 메모리 사용률(%) 형태입니다. 필요 시 `awk`나 `bc`를 이용해 MB, GB 등으로 변환해 보세요.
---
Q9: 여러 프로세스의 메모리 점유 순위를 정렬해서 보고 싶을 때 방법은?
A9: `ps` 명령어에 정렬 옵션 사용:
```
ps aux --sort=-%mem | head -n 10
```
메모리 사용량 내림차순 정렬 후 상위 10개 프로세스를 볼 수 있습니다.
---
Q10: Docker나 컨테이너 환경에서 프로세스 메모리 사용량을 확인할 때 주의할 점은?
A10: 컨테이너 내부 PID 네임스페이스가 다를 수 있으므로, 호스트에서 확인 시 컨테이너 별 PID 매핑을 확인해야 합니다. `docker stats` 명령어로 컨테이너 메모리 사용량을 간단히 확인할 수 있고, `exec` 명령으로 컨테이너 내부에서 직접 프로세스 메모리를 확인할 수도 있습니다.
각 방법은 특정 상황에 따라 유용할 수 있으며, 다양한 도구와 명령어를 통해 메모리 사용량을 모니터링하고 분석할 수 있습니다.
아래에서는 몇 가지 주요 방법을 소개하겠습니다.
1. `ps` 명령어 `ps` 명령어는 현재 실행 중인 프로세스의 상태를 보여주는 유용한 도구입니다.
메모리 사용량을 확인하기 위해 `-o` 옵션을 사용하여 특정 필드를 지정할 수 있습니다.
```bash ps -eo pid,comm,%mem,rss,vsz ``` - `pid`: 프로세스 ID - `comm`: 프로세스 이름 - `%mem`: 전체 메모리에서 차지하는 비율 - `rss`: 실제 메모리 사용량 (Resident Set Size) - `vsz`: 가상 메모리 사용량 (Virtual Size)
2. `top` 명령어 `top` 명령어는 실시간으로 시스템의 프로세스와 메모리 사용량을 모니터링할 수 있는 도구입니다.
`top`을 실행하면 CPU와 메모리 사용량을 포함한 다양한 정보를 볼 수 있습니다.
메모리 사용량은 화면 상단에 표시되며, 각 프로세스의 메모리 사용량도 확인할 수 있습니다.
```bash top ``` `top` 실행 후, `M` 키를 눌러 메모리 사용량 기준으로 프로세스를 정렬할 수 있습니다.
3. `htop` 명령어 `htop`은 `top`의 대안으로, 더 직관적이고 사용자 친화적인 인터페이스를 제공합니다.
`htop`은 설치가 필요할 수 있으며, 설치 후 실행하면 실시간으로 프로세스의 메모리 사용량을 시각적으로 확인할 수 있습니다.
```bash htop ``` `htop`에서는 메모리 사용량을 그래픽으로 표시하며, 프로세스를 쉽게 정렬하고 필터링할 수 있는 기능이 있습니다.
4. `/proc` 파일 시스템 리눅스에서는 각 프로세스에 대한 정보를 `/proc` 파일 시스템을 통해 확인할 수 있습니다.
특정 프로세스의 메모리 사용량을 확인하려면 해당 프로세스의 PID를 알고 있어야 합니다.
예를 들어, PID가 1234인 프로세스의 메모리 정보를 확인하려면 다음과 같이 입력합니다.
```bash cat /proc/1234/status ``` 여기서 `VmSize`, `VmRSS`, `VmData` 등의 항목을 통해 메모리 사용량을 확인할 수 있습니다.
- `VmSize`: 프로세스의 가상 메모리 크기 - `VmRSS`: 실제 메모리 사용량 - `VmData`: 데이터 세그먼트의 크기
5. `free` 명령어 시스템 전체의 메모리 사용량을 확인하고 싶다면 `free` 명령어를 사용할 수 있습니다.
이 명령어는 시스템의 총 메모리, 사용 중인 메모리, 여유 메모리 등을 보여줍니다.
```bash free -h ``` `-h` 옵션은 사람이 읽기 쉬운 형식으로 출력합니다.
6. `smem` 명령어 `smem`은 프로세스의 메모리 사용량을 더 세부적으로 분석할 수 있는 도구입니다.
`smem`은 프로세스의 메모리 사용량을 공유 메모리와 비공유 메모리로 나누어 보여줍니다.
설치 후 다음과 같이 사용할 수 있습니다.
```bash smem -r -k ``` - `-r`: 메모리 사용량 기준으로 정렬 - `-k`: 킬로바이트 단위로 출력 결론 리눅스에서 프로세스의 메모리 사용량을 확인하는 방법은 다양합니다.
`ps`, `top`, `htop`, `/proc`, `free`, `smem` 등의 도구를 활용하여 시스템의 메모리 사용 현황을 모니터링하고, 필요에 따라 적절한 방법을 선택하여 사용할 수 있습니다.
각 도구의 특성과 장단점을 이해하고, 상황에 맞게 활용하는 것이 중요합니다.
작성자:
유재석 [비회원]
| 작성일자: 1년 전
2024-09-30 08:49:45
조회수: 294 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 294 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.