리눅스 정보실
서버 느릴 때 확인하는 ps 명령어 조합 – Rocky 리눅스 실전 방법
고지존
2025. 7. 28. 10:15
Rocky Linux 서버 운영 시 프로세스 상태를 정확히 파악하는 것은 시스템 성능 관리와 문제 해결의 핵심입니다. 이번 글에서는 리눅스 프로세스 관리에 필수적인 ps
명령어를 중심으로 주요 옵션과 출력 결과 해석법, 그리고 실무에서 어떻게 활용하는지 상세히 설명합니다.
1. ps 명령어란?
ps
는 'process status'의 약자로, 현재 시스템에서 실행 중인 프로세스 정보를 보여줍니다. 프로세스가 어느 사용자에 의해 실행되었고, CPU와 메모리를 얼마나 사용하는지 등 다양한 정보를 출력합니다.
시스템 상태 점검, 부하 분석, 문제 프로세스 탐지에 없어서는 안 될 필수 도구입니다.
2. ps 명령어 주요 옵션과 의미
옵션 | 설명 |
---|---|
-e |
시스템 내 모든 프로세스 출력 |
-o |
출력할 필드를 사용자 지정 |
--sort |
지정한 필드를 기준으로 결과 정렬 |
-p <PID> |
특정 프로세스 ID만 출력 |
--forest |
프로세스 계층 구조(부모-자식 관계) 시각화 |
3. 자주 쓰는 출력 필드
필드 | 설명 |
---|---|
USER |
프로세스 소유자(사용자) |
PID |
프로세스 ID |
RSS |
실제 메모리 사용량(KB) |
%MEM |
전체 메모리 대비 사용 비율(%) |
%CPU |
CPU 사용률(%) |
TIME |
누적 CPU 사용 시간(시:분:초) |
COMMAND |
실행 명령어 이름 |
4. 실무에서 자주 사용하는 명령어 예시
메모리 사용량 상위 프로세스를 확인할 때 아래 명령어를 습니다.
ps -eo user,pid,rss,pmem,pcpu,time,comm --sort -rss | head -n 11
옵션별 의미는 다음과 같습니다.
-e
: 전체 프로세스 출력-o user,pid,rss,pmem,pcpu,time,comm
: 원하는 컬럼만 출력--sort -rss
: 메모리 사용량(RSS) 기준 내림차순 정렬head -n 11
: 상위 10개 프로세스만 출력(헤더 포함 총 11줄)
5. 출력 예시 및 해석
USER PID RSS %MEM %CPU TIME COMMAND
mysql 1452 102400 3.2 0.1 00:12:34 mysqld
apache 2563 76800 2.4 1.3 00:05:22 httpd
nginx 3124 51200 1.6 0.0 00:00:10 nginx
user1 4121 40960 1.3 0.5 00:02:18 java
- USER: 프로세스 소유자. 예상과 다르면 보안 점검 필요
- PID: 프로세스 고유 번호. 문제 시 종료 대상
- RSS: 실제 메모리 사용량(KB). 메모리 누수 감지 지표
- %MEM: 전체 메모리 대비 사용률. 메모리 과다 사용 판단
- %CPU: CPU 사용률. 과점유 프로세스 탐색
- TIME: 누적 CPU 사용 시간. 비정상 장시간 사용 여부 판단
- COMMAND: 실행 명령어 이름
6. 실무 활용
6-1. 메모리 누수 의심 프로세스 점검
위 명령어로 메모리 사용량 최상위 프로세스를 확인 후, 정상 범위를 벗어난 프로세스를 모니터링합니다. 필요 시 로그 점검, 프로세스 재시작으로 문제를 해결합니다.
6-2. CPU 과점유 프로세스 확인
ps -eo user,pid,pcpu,time,comm --sort -pcpu | head -n 11
CPU 점유율이 높은 프로세스부터 분석하여 서비스 장애 원인이나 최적화 대상 프로세스를 식별합니다.
6-3. 특정 프로세스 상세 정보 확인
ps -p <PID> -o pid,ppid,user,stat,etime,cmd
ppid
: 부모 프로세스 ID 확인으로 서비스 관계 분석stat
: 프로세스 상태 코드 (R=실행중, S=대기, Z=좀비 등)etime
: 실행된 시간 경과 확인cmd
: 전체 명령어 및 인자 확인
7. 프로세스 계층 구조 확인 방법
복잡한 서비스 연관성을 파악하려면 다음 명령어로 프로세스 트리를 확인합니다.
ps --forest -eo pid,ppid,user,stat,cmd |