리눅스에서는 top을 제공합니다. 어떤 프로세스가 메모리를 얼마나 먹는지, cpu를 얼마나 먹는지 등을 모니터링 하기 위해서 쓰이곤 합니다.

 

 UI를 보면, 단순히 흑백으로만 되어 있어요. CPU가 50.2%이고, 272개의 Task가 있고, 3개가 running 중이고 269개가 sleeping 상태인 것을 볼 수 있어요. 메모리는 1400 메가가 free인 상태를 볼 수 있는데요. 이게 어느 정도인지 쉽게 감이 오지는 않습니다.

 

 

 밑에를 보시면, PID와 USER, COMMAND 등이 있고, cpu%와 mem%가 있어요. 각각 cpu를 얼마나 쓰는지와 메모리를 얼마나 쓰는지를 나타냅니다. git이 상당히 많은 cpu를 쓰고 있는 것만 볼 수 있어요. 이 정도만 얻을 수 있다고 보면 될까요? 그런데, 조금 더 편하게 정보를 얻을 수 있는 방법이 없을까요?

 

 

 

 리눅스에서는 htop을 제공하니, 그것을 깔아보도록 하겠습니다. top과 마찬가지로, 모니터링을 할 수 있는 툴입니다. 우분투에서는 apt-get install htop으로 간단하게 설치할 수 있습니다.

 


 먼저 재부팅을 하였습니다. 그리고 apt-get install htop 명령을 입력하였습니다. 순식간에 깔렸는데요. top과 비교해서 어떤 점이 바뀌었는지 보도록 하겠습니다.

 

 먼저 cpu와 메모리 사용량입니다. top은 단지 글로만 표현이 되어 있었는데요. 텍스트 그림으로 각각의 cpu 코어? 쓰레드들이 어떤 상황인지 볼 수 있습니다. 1번은 4.6%, 2번은 11.2%, 3번은 2%, 4번은 7.2%임을 알 수 있어요. 아까와는 다르게 메모리와 cpu의 상황을 파악하기가 매우 쉬워졌습니다.

 

 

 다음에, 이 부분은 프로세스들을 나타냅니다. 각각의 프로세스들의 cpu가 몇 %를 먹고 있고, 메모리를 몇 %나 먹고 있는지를 나타내 주고 있어요. 이 부분은 top과 크게 다를 바가 없는데요. 밑에 메뉴를 보면, 이야기가 달라집니다. SortBy가 있는데요. 정렬 기준을 의미합니다.

 

 PERCENT_CPU를 기준으로 정렬해 봅시다.

 

 

 그러면, git이 굉장히 많이 메모리를 먹고 있음을 볼 수 있어요. 심지어 메모리도 많이 먹고 있음을 알 수 있는데요. 이것은 나중에 이야기 해 보도록 합시다. 제 노트북에 깔린 git은 gitlab을 의미하는데요. 7775번 포트로 접속해 보았습니다.

 

 

 접속이 되네요. 생각보다 gitlab이 무겁다는 것을 파악할 수 있었습니다.

 


 Tree 메뉴, F5를 눌러보겠습니다.

 

 그러면 이런 식으로 트리 형태의 무언가가 그려지는데요.

 

 pstree랑 비슷하다고 보시면 됩니다. 부모 프로세스와 자식 프로세스를 한눈에 파악할 수 있어요. 예를 들어서, 1584의 부모 프로세스는 1567입니다. 그리고, 1601의 부모는 1584입니다. gitlab-pr이라고 적혀 있는데요. 이는 gitlab의 프로메테우스를 의미합니다.

 

 

 필터링 기능도 있습니다. F4를 누르면 되는데요. mysql이라고 입력하면, mysql이 있는 열만 가지고 오게 됩니다. 사실, ps와 grep을 같이 써서 필터링 하고, top으로 조회해도 될 거 같긴 하지만. 여간 귀찮은 게 아닙니다. 이에 비하면 확실히 편합니다.

 

 

 

 작업 관리자는 보통, 프로세스를 종료하기 위해서 많이 씁니다. htop에도 있는데요. 리눅스에서는 9번 신호를 보내면 됩니다.

 

 

 F9를 누르면, 신호를 보낼 수 있습니다. send signal이라고 되어 있는데요. 9번은 무시할 수 없는 시그널입니다. 무조건 종료를 의미해요. pid가 1567인 프로세스에 9번을 보내면, 종료가 되어버립니다. 이 외에도 여러 기능이 있으니, F1을 눌러서 어떤 기능이 있는지 보시면 좋을 듯 싶습니다.