서버모니터링 top실무5편: 특정 사용자가 실행한 프로세스만 확인하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 1,585 조회
- 0 추천
- 목록
본문
서버모니터링 top실무5편: 특정 사용자가 실행한 프로세스만 확인하기
일반적으로 top을 실행하여 시스템의 CPU, 메모리, 부하율, 그리고 프로세스들의 실행상태를 확인하는 작업들을 하곤한다.
지금까지의 top에 관한 예들을 확인했다면 현재 상태를 모니터링하는 단계를 넘어서 특정프로세스를 죽인다든가, 프로세스의 실행 우선순위를 조절하기 위하여 NICE값을 변경하는등의 예를 보았다.
이번에는 현재 시스템에서 실행되고 있는 모든 프로세스들 가운데 특정 사용자가 실행시킨 프로세스만을 확인하는 방법을 보겠다.
즉 여러분들께서 호스팅서버를 관리하거나 계정을 나누어 준 후에 많은 사람이 공동으로 사용하는 리눅스 서버를 관리하고 있다면 특정 사용자가 실행한 이상한 프로세스로 인하여 골치 아팠던 경험을 해보았을 것이다.
즉 특정 사용자가 실행시킨 특정프로세스가 시스템의 모든 자원을 사용한다든가? 또는 특정 사용자의 프로세스가 잘못되어 시스템에 과부하를 일으킨다든가? 하는 등의 곤란한 경험을 겪어보았을 것이다.
이런 경우에 top명령어를 실행하여 특정 사용자가 실행시킨 프로세스들만을 확인하는 유용한 방법이 있다.
즉 top이 실행된 상태에서 u를 입력하면 특정 사용자의 ID를 입력할 수 있다.
여기서 입력한 ID소유의 프로세스들만을 표시해주면 된다.
다음 예는 top이 실행된 상태에서 u키를 입력한 후에 apache를 입력하는 화면이다.
즉 apache라는 사용자에 의해 실행된 프로세스들만 확인하려는 것이다.
top - 01:32:59 up 6:47, 3 users, load average: 0.07, 0.18, 0.48 Tasks: 104 total, 2 running, 102 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1033816k total, 1015716k used, 18100k free, 52708k buffers Swap: 2096472k total, 68k used, 2096404k free, 836744k cached Which user (blank for all): apache
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2595 root 20 0 2428 1052 840 R 0.3 0.1 0:01.32 top 1 root 20 0 2008 768 564 S 0.0 0.1 0:01.51 init 2 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0 4 root 15 -5 0 0 0 S 0.0 0.0 0:06.61 ksoftirqd/0 5 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 6 root 15 -5 0 0 0 S 0.0 0.0 0:00.59 events/0 7 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 khelper 80 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/0 82 root 15 -5 0 0 0 S 0.0 0.0 0:06.09 kblockd/0 |
위와 같이 top이 실행된 상태에서 u를 입력하여 apache를 입력하면 아래의 결과에서 보는 바와 같이 apache사용자에 의해 실행된 프로세스들만 표시해 준다.
top - 01:33:46 up 6:48, 3 users, load average: 0.03, 0.15, 0.45 Tasks: 104 total, 2 running, 102 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1033816k total, 1015716k used, 18100k free, 52716k buffers Swap: 2096472k total, 68k used, 2096404k free, 836744k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2603 apache 20 0 28204 5172 948 S 0.0 0.5 0:00.00 httpd 2604 apache 20 0 28204 5172 948 S 0.0 0.5 0:00.00 httpd 2605 apache 20 0 28204 5176 952 S 0.0 0.5 0:00.00 httpd 2606 apache 20 0 28204 5172 948 S 0.0 0.5 0:00.00 httpd 2607 apache 20 0 28204 5172 948 S 0.0 0.5 0:00.00 httpd 2608 apache 20 0 28204 5172 948 S 0.0 0.5 0:00.00 httpd 2609 apache 20 0 28204 5172 948 S 0.0 0.5 0:00.00 httpd 2610 apache 20 0 28204 5172 948 S 0.0 0.5 0:00.00 httpd |
또한 apache대신 all을 입력하였다면 모든 프로세스를 보여줄 것이다.
그리고 apache대신 sspark를 입력하였다면 위의 결과에서는 sspark이 실행한 프로세스들만 표시되었을 것이다.
이 방법을 조금 응용하여 활용한다면 특정 사용자가 사용하는 시스템 자원관리를 할 수 있을 것이다.
즉, 특정 사용자에 의해서 거의 점유된 시스템자원에 대한 분석을 손쉽게 할 수 있기 때문에 시스템관리에 큰 도움이 될 수 있다.
관련자료
-
이전
-
다음