개발 공부/dev

[Dev] 리눅스 프로세스 파악 하기 (ps -ef/ ps aux)

solutionMan 2024. 3. 19. 23:41
반응형

조사하게 된 원인

회사 서버 중 하나의 데이터 모니터링에서 alert이 왔는데 단순 모니터링 툴 말고도 다양한 툴로도 확인이 가능하다는 것을

일을 하다가 지켜보게 되어 어떤 것들이 있는지 궁금하게 되어 조사하게 되었다.

 

 


1) ps -ef

ps -ef 명령어는 리눅스 시스템에서 현재 실행 중인 프로세스의 목록을 보여주는 데 사용

 

시스템 관리자와 사용자가 현재 시스템에서 어떤 프로세스가 실행 중인지 파악하는 데 유용

ps는 "process status"의 약자이며, -ef 옵션은 특정 형식으로 모든 프로세스 정보를 출력하도록 합니다.

 

명령어 구성

  • ps: 프로세스 상태를 보여주는 명령어입니다.
  • e: 모든 프로세스를 나타냅니다.
  • f: 풀 포맷으로, 프로세스에 대한 상세한 정보를 보여줍니다.

출력 정보

ps -ef 명령어를 실행하면 다음과 같은 정보가 포함된 여러 줄의 출력을 한다.

  • UID: 프로세스를 실행한 사용자의 ID
  • PID: 프로세스 ID입니다. 이는 시스템에서 프로세스를 식별하는 데 사용
  • PPID: 부모 프로세스 ID입니다. 이는 현재 프로세스를 생성한 부모 프로세스를 식별
  • C: 프로세스 스케줄러에 의해 사용된 CPU 시간의 우선순위를 조정하는 값
  • STIME: 프로세스가 시작된 시간입니다.
  • TTY: 프로세스가 연결된 터미널입니다. 
  • TIME: 프로세스가 사용한 총 CPU 시간
  • CMD: 프로세스를 시작하는 데 사용된 명령어 또는 실행 파일

2) ps aux

ps aux 명령어는 리눅스 시스템에서 실행 중인 모든 프로세스의 상태를 보여주는 데 사용됩니다. 이 명령어는 사용자에게 시스템에서 발생하는 다양한 프로세스의 상세한 정보를 제공하며, 시스템 관리자나 사용자가 현재 시스템의 상태를 진단하는 데 유용합니다. **ps aux**는 특히 시스템에서 리소스를 많이 사용하는 프로세스를 파악하고, 시스템 성능 문제의 원인을 조사할 때 많이 사용됩니다.

명령어 구성

  • ps: Process Status의 약자로, 시스템의 현재 프로세스 상태를 보여주는 명령어
  • a: 모든 사용자의 프로세스를 보여주는 옵션
  • u: 프로세스의 소유자에 대한 상세 정보를 함께 보여주는 옵션
  • x: 터미널이 없는 프로세스도 포함하여 모든 프로세스를 보여주는 옵션

 

ps aux 결과

출력 정보

ps aux 명령어의 출력은 여러 열로 구성되어 있으며, 각 열은 프로세스에 대한 특정 정보를 담고 있습니다. 주요 열의 정보는 다음과 같습니다:

  • USER: 프로세스를 실행한 사용자의 이름
  • PID: Process ID로, 각 프로세스를 구별하는 고유한 번호
  • % CPU: 해당 프로세스가 사용하는 CPU 비율
  • % MEM: 해당 프로세스가 사용하는 메모리의 비율
  • VSZ: Virtual Memory Size로, 프로세스에 의해 사용되는 가상 메모리의 총량(KB)
  • RSS: Resident Set Size로, 실제 메모리에서 프로세스에 의해 사용되는 부분의 크기(KB)
  • TTY: 프로세스가 연결된 터미널입니다. 배경 프로세스의 경우 이 값이 '?'로 표시될 수 있다
  • STAT: 프로세스의 상태를 나타냅니다. 예를 들어, 실행 중(R), 중지됨(S), 좀비(Z) 
  • START: 프로세스가 시작된 시간
  • TIME: CPU 시간의 총 사용량
  • COMMAND: 프로세스를 시작하는 데 사용된 명령어 라인

 


 더 편한것은 없을까 찾아보던중 htop을 발견하게되었다.

 

 

반응형