top(Table Of Process)

저번 포스팅에서는 개별 프로세스 조회 중점의 명령어인 ps에 관해서 알아 봤다.

이번에는 좀 더 구체적으로 어느 프로세스가 리소스의 어느 정도를 점유하며,

전체 프로세스를 실시간으로 확인할 수 있는 명령어인 top에 대해 알아보자

 

● 명령어 'top'의 활용방식

아무런 옵션 없이 'top' 명령어를 실행했을 때의 출력화면

빨간색 실선 안의 정보들은 시스템의 가동시간, 평균 부하값(Load Average), 메모리의 상태 등의

자원에 관한 간략한 정보가 표기되어 있으며, 하단의 노란색  실선 안의 정보들은 프로세스들의 정보

담고있는 것을 확인할 수 있다. 그림의 왼쪽부터 필드의 정보를 서술하면 

 

- PID : 프로세스 ID

- USER : 프로세스의 소유자

- PR : 프로세스의 우선순위

- NI : 작업의 nice값

- VIRT : 프로세스가 사용중인 가상메모리 양

- RES : 물리적인(실제의) 메모리의 양

- SHR : 공유 메모리의 양

- S : 해당 프로세스의 상태 (Status)

- %CPU : CPU 사용량

- %MEM : 현재 사용중인 실제 메모리의 양

- TIME+ : 프로세스가 CPU를 사용한 시간

- COMMAND : 프로세스가 시작되는 데에 사용된 명령어

 

각각 의미하며, 

콘솔창에 'top' 실행 시 사용되는 옵션으로는 'top -d [초(Sec)]'와 'top -b(배치모드)'가 있는데,

'-d' 옵션의 경우 top의 정보 갱신주기를 설정하는 옵션이고

배치모드로 프로세스의 흐름을 확인 하기에는 시인성이 좋지 않아 거의 사용되지 않는다고 한다.

굳이 옵션을 입력하지 않고도 'top' 화면에 진입하여 Space Bar, Enter 키를 입력하면 

그때 그때 갱신되도록 설정되어 있다.

 

 

● 목록별 정렬

'top' 실행화면 중 Shift+p를 입력해 CPU 사용률 기준으로 정렬

- Shift+p : CPU 사용량 기준 정렬

- Shift+t : CPU 사용 시간별 정렬

- Shift+m : 메모리 사용량 기준 정렬

  - Shift+n : PID 기준 정렬

 

등의 명령어로 시인성 좋게 실행중인 프로세스를 확인할 수 있다.

 

 

● 사용자별 정렬

'top' 실행화면 중 Shift+u를 사용하여 'centos' 사용자의 프로세스를 검색

'Shift+u' 입력 후 'Which User (blank for all)' 입력창에 사용자의 ID를 입력하면

해당 사용자가 실행중인 프로세스를 확인할 수 있다.

 

 

● 프로세스 제어

'top' 실행화면 중 'k(시그널)' 키를 입력하여 프로세스를 제어

가장 간단한 예시로 현재 실행중인 임의의 프로세스

'vim /etc/passwd' 종료를 시도, 해당 명령행에 PID(4622)를 입력하면

 

원하는 SIGNAL값을 입력하라는 명령행이 나온다. 여기서 

SIGKILL 의 값인 숫자 9 입력 후 엔터를 치면 해당 프로세스가 

강제로 종료되는 것을 확인할 수 있다.

 

 

 

'Linux_System' 카테고리의 다른 글

[Linux]ZFS  (0) 2023.01.16
[Linux]PAM  (0) 2023.01.12
[Linux]Process(1)_ps  (0) 2022.11.05
[Linux]Software_Compile  (0) 2022.10.31
[Linux]YUM_LocalRepository  (0) 2022.10.26

Network

네트워크의 어원으로는 Net(망, 그물) + Work(일하다)의 합성어로,

"망 안에 얽혀서 일을한다" 정도의 행위로 볼 수 있다.

우리가 생각하는 정보통신 분야에서의 Network는 특정 통신망을 형성하여 

송 / 수신자 간의 데이터를 주고받는 등의 행위를 뜻한다.

 

컴퓨터(Machine)의 초창기에는 IBM Mainframe(서버)가 존재했는데, 이 시기에는 

서버가 모든 작업을 처리했었다고 한다. 이 때의 클라이언트는

마우스가 없는 Dummy Terminal(모니터와 키보드만 존재) 이라고 칭했는데,

모든 작업들을 서버가 혼자 도맡아 처리하다 보니 병목현상(Bottle Neck) 현상이 자주 발생되었다고 한다. 

 

** Server : 서비스를 제공하는 머신, 호스트를 의미

** Client : 서비스를 요청하는 호스트 머신을 의미

---> IT분야 뿐만 아니라 서버(주인) 클라이언트(고객)는 어디에나 존재한다.

 

이런 문제를 해결하기 위해서 연구를 진행했는데,  "Xerox"라는 회사에서 "마우스"를 개발하고, 

발생되는 모든 트래픽이 서버에만 치우치면 문제가 많아지기 때문에 각 머신들을 묶어서 데이터를 처리하는 기법인

"Ethernet"을 개발 해냈다. Dummy Terminal에 각자의 리소스(HDD, RAM, CPU ...)를 부여한다.

 이 시기 이후부터 PC(Personal Computer)의 본격적인 발전이 시작되었다고 한다.

 

** 여기서 말하는 문제는 모든 데이터가 서버에만 저장되어 서버를 통해서만 작업을 

처리해야 한다고 가정했을 때, 서버에 문제가 발생되면 다른 모든 Terminal에서 작업이 불가해지는 등의 문제이다.

 

 

● 간단한 용어정리

- Host : 일반적인 네트워크 상 서버 등의 컴퓨터를 일컫는다, NIC(Network Interface Card)의 수에 따라서 호스트가 달라짐

- Workstation : 일반 PC에 비해서 고성능의 PC를 일컫는 말이기도 하지만, 도메인에 가입된 클라이언트를 뜻한다.

- Machine, Can : 일반 컴퓨터를 뜻하며, 성능이 탁월하지 않은 저사양의 컴퓨터를 뜻 하는 슬랭 정도를 의미 

- Node : 네트워크에 묶여 있는 모든 장치들(Device, Concentrator(집중화기), Distributor(분배기), Equipment(대형장비) ...) 등을 일컫는다.

 

** Multi-Homed : 하나의 호스트에 여러 개의 NIC가 있을 때를 뜻함

 

 

● 네트워크의 대표적인 운영 방식

- Peer to Peer(P2P) : 모두가 동등하게 연결된 상태로 어느 한 쪽이 서비스를 제공하면 그 쪽은 서버,

나머지는 클라이언트가 되는 구조이다.

(보안적인 측면에서 매우 취약)

 

- Server-Client : 서버가 단독으로 서비스를 제공하고, 클라이언트는 서비스를 요청하는 형태

(XSS와 같이 서버가 오염되면 서버에 연결된 모든 클라이언트가 전부 오염)

 등의 특징과 취약점이 존재한다.

 

** Server Contamination 이라고도 표현한다.

 

 

● 통신망의 종류

- LAN (Local Area Network) : 라우터(도메인 안) 이내의 공간을 의미 (LAN을 나누면 세그먼트(Segment)가 된다)

- MAN (Metropolitan Area Netowrk)현재는 사용하지 않지만 영단어가 의미하는 바와 동일한 도시 단위의 통신망을 의미

- WAN (Wide Area Network) : 라우터(도메인 밖) 이후의 네트워크를 의미한다.

 

 - Internet(work) : 무수한 서버들의 집합체

- Intranet(work) : 브라우저로 도메인 내의 리소스를 검색

- Extranet(work) : 브라우저로 도메인 내 / 외의 리소스를 검색

'Network' 카테고리의 다른 글

[Network]STP_Algorithm  (0) 2022.11.11
[Network]FDDI  (0) 2022.11.11
[Network]Ethernet  (0) 2022.11.09
[Network]MAC_Address  (0) 2022.11.09
[Network]OSI_7_Layer  (0) 2022.10.29

+ Recent posts