Categories: Linux

시스템 모니터링 도구 (htop, vmstat)

안녕하세요, 여러분! 오늘은 서버 관리자라면 누구나 궁금해할, 아니 꼭 알아야 할 시스템 모니터링에 대해 이야기해보려고 해요. 혹시 컴퓨터가 갑자기 느려지거나, 왜 이렇게 버벅이는지 답답했던 적 있으신가요? 그럴 때 바로 필요한 게 시스템 모니터링 도구랍니다! 마치 자동차 계기판처럼 시스템의 현재 상태를 훤히 보여주는 도구들이죠. 오늘은 그중에서도 가장 유용한 두 가지, 바로 htopvmstat에 대해 자세히 알아볼 거예요. 이 두 가지 도구를 잘 활용하면 시스템의 속도 저하 원인을 파악하고, 문제를 해결하는 데 큰 도움이 될 거예요. 궁금하시죠? 그럼 지금 바로 시작해 볼까요?

 

 

htop 시작하기

시스템 모니터링! 생각만 해도 머리가 지끈거리시는 분들 많으시죠? ^^; 복잡한 명령어, 알 수 없는 숫자들… 으으… 하지만 걱정 마세요! htop이 있다면 시스템 상황 파악, 이제 어렵지 않아요! 마치 게임처럼 시각적으로 시스템 자원을 보여주는 htop! 한번 써보면 그 매력에 푹 빠지실 거예요.

htop 설치 및 실행

자, 그럼 htop을 어떻게 시작하는지, htop 설치부터 기본적인 사용법까지 차근차근 알아볼까요? 설치는 정말 간단해요! 우분투나 데비안 계열 리눅스를 사용하신다면 터미널에서 `sudo apt-get install htop` 명령어 하나면 끝! 다른 배포판을 사용하신다면 해당 배포판의 패키지 관리자를 이용해 설치할 수 있어요. 설치가 완료되었다면 터미널에서 `htop`이라고 입력하고 엔터! 그럼 알록달록하고 직관적인 htop 인터페이스가 짠! 하고 나타날 거예요. 마치 새로운 세상이 열리는 기분이랄까요? 😀

htop 기본 화면

처음 htop을 실행하면 CPU, 메모리, 스왑, 태스크 등 다양한 정보가 한눈에 펼쳐져요! CPU 사용량은 각 코어별로 막대그래프 형태로 표시되고, 100%에 가까워지면 빨간색으로 변해서 과부하를 직관적으로 알려준답니다. 덕분에 어떤 프로세스가 CPU를 많이 사용하는지 바로 확인할 수 있죠. 메모리와 스왑 영역 역시 사용량을 막대그래프로 보여줘서 현재 시스템 메모리 상태를 한눈에 파악할 수 있어요. 초록색은 사용 중인 메모리, 파란색은 버퍼/캐시, 주황색은 스왑 메모리를 나타낸다는 것, 잊지 마세요! ^^

htop의 인터랙티브 기능

htop의 진짜 매력은 바로 인터랙티브한 기능에 있다는 거 아세요? 단순히 보기만 하는 게 아니라, 원하는 프로세스를 선택하고 `F9` 키를 눌러 kill 신호를 보낼 수도 있어요! 좀비 프로세스 때문에 골치 아팠던 경험… 다들 있으시죠? htop을 사용하면 이런 좀비 프로세스도 간단하게 처리할 수 있답니다! `F7`과 `F8` 키를 이용하면 nice 값을 조정해서 프로세스의 우선순위를 변경할 수도 있어요. 중요한 작업은 우선순위를 높여주고, 덜 중요한 작업은 우선순위를 낮춰서 시스템 자원을 효율적으로 관리할 수 있겠죠?

htop 단축키

`F1` 키를 누르면 도움말 화면이 나타나서 다양한 단축키를 확인할 수 있어요. 처음엔 좀 복잡해 보일 수 있지만, 몇 가지 단축키만 익혀두면 htop을 훨씬 더 효율적으로 사용할 수 있을 거예요. 예를 들어, `F2` 키를 누르면 설정 화면으로 이동하는데, 여기서 색상 테마나 표시되는 정보를 원하는 대로 변경할 수 있답니다. 나만의 htop을 만들어보는 재미도 쏠쏠해요! `F3` 키는 검색 기능! 수많은 프로세스 중에서 원하는 프로세스를 빠르게 찾을 수 있어서 정말 편리해요. `F4` 키를 누르면 특정 프로세스를 필터링해서 볼 수도 있고요! `F5`는 트리 보기 기능인데, 프로세스 간의 관계를 한눈에 파악할 수 있어서 시스템 분석에 정말 유용해요. 부모 프로세스와 자식 프로세스의 관계를 트리 구조로 보여주니까 어떤 프로세스가 어떤 프로세스를 생성했는지 쉽게 알 수 있죠.

`F6` 키를 누르면 정렬 기준을 변경할 수 있어요. CPU 사용량, 메모리 사용량, 실행 시간 등 다양한 기준으로 프로세스를 정렬해서 볼 수 있답니다. 예를 들어 CPU 사용량 순으로 정렬하면 어떤 프로세스가 시스템 자원을 가장 많이 사용하고 있는지 바로 확인할 수 있겠죠? `F10` 키는 htop을 종료하는 단축키예요!

htop의 중요성

htop은 단순한 시스템 모니터링 도구를 넘어, 시스템 관리자에게 없어서는 안 될 필수 도구라고 할 수 있어요. 실시간으로 시스템 자원 사용량을 모니터링하고, 필요에 따라 프로세스를 관리할 수 있도록 도와주니까요! htop을 잘 활용하면 시스템 성능을 최적화하고 안정적으로 운영할 수 있을 거예요.

 

vmstat 기본 사용법

자, 이제 htop에 대해서는 어느 정도 감을 잡으셨죠? 그럼 이번에는 또 다른 강력한 시스템 모니터링 도구인 vmstat에 대해 알아볼까요? htop이 시스템의 전체적인 모습을 보여주는 멋진 전경 사진이라면, vmstat은 시스템의 혈액 순환, 즉 자원 사용량의 변화를 시간에 따라 보여주는 정밀한 현미경 사진과 같아요! 마치 의사가 환자의 맥박을 짚어보듯 시스템의 상태를 진단할 수 있게 해준답니다. 궁금하시죠? ^^

vmstat은 Virtual Memory Statistics의 줄임말이에요. 이름에서 알 수 있듯이 가상 메모리, 프로세스, CPU, 입출력, 디스크, 시스템 활동 등 다양한 시스템 정보를 보여주죠. 특히 시간 경과에 따른 변화를 실시간으로 모니터링하기에 최적화되어 있답니다. htop처럼 시각적인 화려함은 없지만, 숫자를 통해 시스템의 숨겨진 이야기를 들려주는 매력이 있어요~?

vmstat 기본 실행

가장 기본적인 vmstat 사용법은 터미널에서 vmstat라고 입력하는 거예요. 간단하죠? 그러면 짠~! 하고 시스템의 현재 상태가 숫자로 쭉~ 표시될 거예요. 처음 보면 뭐가 뭔지 어리둥절할 수 있으니, 각 항목이 무엇을 의미하는지 하나씩 살펴보도록 할게요!

procs 항목

먼저 procs 항목을 볼까요? r실행 대기 중인 프로세스의 개수를 나타내요. 이 값이 계속 높게 유지된다면 CPU가 과부하 상태라는 신호일 수 있으니 주의해야 해요! b입출력을 기다리는 프로세스의 개수를 나타내요. 디스크 병목 현상이 발생하면 이 값이 증가할 수 있답니다.

memory 항목

다음은 memory 항목! swpd스왑 공간 사용량을 kB 단위로 보여줘요. 스왑 공간은 마치 컴퓨터의 비상금 같은 존재인데, 이 값이 너무 높으면 메모리가 부족하다는 뜻이에요. 마치 냉장고에 음식이 부족해서 냉동실에서 꺼내 먹는 것과 같죠. free사용 가능한 메모리의 양을, buff버퍼 캐시에 사용되는 메모리의 양을, cache페이지 캐시에 사용되는 메모리의 양을 나타내요. 버퍼와 캐시는 시스템 성능 향상에 중요한 역할을 한답니다!

swap 항목

swap 항목의 siso는 각각 스왑 공간으로 들어가고 나오는 데이터의 양을 kB/s 단위로 보여줘요. 이 값들이 크다는 건 메모리와 스왑 공간 사이에서 잦은 데이터 이동이 발생하고 있다는 뜻이에요. 마치 냉장고와 냉동실 사이를 바쁘게 왔다 갔다 하는 것과 같죠. 효율적이지 못하겠죠?!

io 항목

io 항목은 입출력 관련 정보를 보여줘요. bi블록 장치에서 읽어온 데이터의 양을, bo블록 장치에 쓴 데이터의 양을 kB/s 단위로 나타내요. 디스크 I/O 성능을 확인할 때 유용하답니다.

system 항목

system 항목의 in초당 인터럽트 발생 횟수를, cs초당 컨텍스트 스위칭 횟수를 나타내요. 컨텍스트 스위칭은 CPU가 여러 프로세스를 처리하기 위해 작업을 전환하는 것을 말해요. 너무 잦은 컨텍스트 스위칭은 오히려 성능 저하를 가져올 수 있답니다.

cpu 항목

마지막으로 cpu 항목! us사용자 프로세스가 CPU를 사용한 비율을, sy시스템 프로세스가 CPU를 사용한 비율을, idCPU가 유휴 상태였던 비율을, wa입출력 대기로 인해 CPU가 대기한 비율을, st가상 머신에서 하이퍼바이저가 CPU를 사용한 비율(가상 머신 환경에서만 표시)을 나타내요. CPU 사용량을 분석할 때 꼭 확인해야 하는 중요한 지표들이죠!

vmstat 활용법

자, 이렇게 vmstat의 기본적인 사용법과 각 항목의 의미에 대해 알아봤어요. 어때요? 처음 봤을 때보다는 훨씬 친숙하게 느껴지시나요? ^^ 하지만 이건 시작에 불과해요! vmstat은 다양한 옵션을 제공해서 더욱 자세하고 유용한 정보를 얻을 수 있답니다. 예를 들어 vmstat 1처럼 숫자를 붙여서 실행하면 1초 간격으로 시스템 상태를 업데이트해서 보여줘요! 마치 시스템의 심장 박동을 실시간으로 모니터링하는 것 같죠? vmstat 2 5처럼 두 개의 숫자를 입력하면 2초 간격으로 5번만 정보를 표시해요. 필요에 따라 적절한 옵션을 사용하면 시스템 모니터링을 더욱 효과적으로 할 수 있답니다! 다음에는 vmstat의 다양한 옵션과 활용법에 대해 더 자세히 알아보도록 할게요. 기대해 주세요!

 

두 도구의 장단점 비교

자, 이제 htopvmstat, 요 두 녀석의 장단점을 한번 꼼꼼하게 비교해 볼까요? 둘 다 시스템 모니터링계의 터줏대감이지만, 각자의 개성이 뚜렷해서 상황에 따라 훨씬 유용한 쪽이 갈린답니다! 마치 액션 영화와 로맨틱 코미디처럼 말이죠~? ^^

htop의 장점

htop은 터미널에서 바로 실행해서 CPU, 메모리, 스왑, 프로세스 등 다양한 정보를 실시간으로 보여주는 게 강점이에요. vmstat보다 시각적으로 훨씬 직관적이라서, 현재 시스템 상황을 한눈에 파악하기 좋죠. 컬러풀한 인터페이스는 덤! 마치 화려한 불꽃놀이를 보는 것 같아요! 게다가 프로세스 관리 기능까지 탑재하고 있어서, 터미널 안에서 프로세스 kill, nice 값 조정, 트리 보기 등등 여러 가지 작업을 바로바로 처리할 수 있다는 것도 큰 장점이죠!

htop의 단점

하지만, 이런 화려함(?)에는 대가가 따르는 법! htopvmstat에 비해 시스템 자원을 좀 더 많이 사용한답니다. 특히 모니터링 대상 시스템의 부하가 높은 상황에서는 이 차이가 더 커질 수 있어요. 그리고, htop은 기본적으로 대화형으로 작동하기 때문에 스크립트에 넣어서 자동화하기에는 vmstat보다 조금 불편할 수도 있어요.

vmstat의 장점

vmstathtop과는 다르게 시스템 자원 사용량이 매우 적어요. 그래서 부하가 높은 시스템에서도 가볍게 돌릴 수 있죠. 게다가 출력 형식이 간결하고, 각 항목이 명확하게 정의되어 있어서 스크립트와 함께 사용하기에 딱! 좋아요. 쉘 스크립트로 특정 수치를 모니터링하고, 임계값을 넘어가면 알림을 보내는 등 자동화된 시스템 관리에 찰떡궁합이죠!

vmstat의 단점

하지만, vmstathtop처럼 시각적인 인터페이스가 없어서 직관성이 좀 떨어져요. 정보를 보여주는 방식도 다소 딱딱해서 처음에는 각 항목이 무엇을 의미하는지 이해하는 데 시간이 좀 걸릴 수도 있답니다. 예를 들어, ‘procs’ 항목의 ‘r’ 값이 실행 대기 중인 프로세스의 개수를 나타내고, ‘b’ 값이 인터럽트를 기다리는 프로세스의 개수를 나타낸다는 것을 바로 알기는 쉽지 않잖아요? 또, htop처럼 프로세스를 직접 관리하는 기능도 없어서, 프로세스 관리를 위해서는 다른 도구를 사용해야 한다는 점도 조금 아쉬워요.

표로 정리한 htop과 vmstat 비교

| 기능 | htop | vmstat |
|—|—|—|
| 시각적 인터페이스 | 👍 | 👎 |
| 자원 사용량 | 좀 더 높음 | 매우 낮음 |
| 프로세스 관리 기능 | 👍 | 👎 |
| 스크립트 활용성 | 좀 더 낮음 | 👍 |
| 직관성 | 👍 | 👎 |
| 정보량 | 매우 풍부함 | 간결함 |
| 실시간 모니터링 | 👍 | 👍 |
| 역사 | 비교적 최근 | 오래됨 |

htop과 vmstat의 성능 차이

자, 그럼 이제 두 도구의 성능 차이를 좀 더 구체적으로 살펴볼까요? htop은 ncurses 라이브러리를 사용해서 터미널에 시각적인 인터페이스를 구현하기 때문에, vmstat보다 CPU와 메모리 사용량이 조금 더 높아요. 특히 프로세스가 많이 실행 중인 시스템에서는 이 차이가 더 커질 수 있죠. 실제로 프로세스가 500개 정도 실행 중인 시스템에서 htop을 실행하면 CPU 사용량이 2~3% 정도 증가하는 것을 확인할 수 있어요. 반면 vmstat는 같은 상황에서 CPU 사용량 증가가 거의 없답니다. 메모리 사용량도 htopvmstat보다 10~20MB 정도 더 많이 사용해요. 물론, 요즘 시스템에서는 이 정도 차이는 크게 문제가 되지 않지만, 자원이 제한적인 임베디드 시스템에서는 vmstat가 더 적합할 수 있죠!

스크립트 활용성 비교

스크립트 활용성 측면에서는 vmstathtop보다 훨씬 강력해요. vmstat는 출력 형식이 정해져 있어서, 스크립트를 통해 특정 항목의 값을 쉽게 추출하고 활용할 수 있어요. 예를 들어, CPU 사용량이 90%를 넘으면 관리자에게 알림을 보내는 스크립트를 작성하는 경우, vmstat의 출력을 파싱해서 CPU 사용량 값을 가져오는 것이 매우 간단해요. 반면 htop은 대화형으로 작동하기 때문에 스크립트와 연동하려면 추가적인 설정이 필요하고, 출력 파싱도 복잡해질 수 있어요.

htop과 vmstat 선택 기준

결국 htopvmstat 중 어떤 도구를 선택할지는 모니터링 목적과 시스템 환경에 따라 달라져요. 시스템의 전반적인 상태를 빠르게 파악하고 싶고, 시스템 자원에 여유가 있다면 htop이 좋은 선택이 될 수 있어요. 반면 시스템 자원 사용량을 최소화해야 하거나 스크립트를 통해 자동화된 모니터링을 구축해야 한다면 vmstat가 더 적합할 수 있죠. 두 도구의 특징을 잘 이해하고 상황에 맞게 적절한 도구를 선택하는 것이 중요해요! 마치 날씨에 따라 옷을 골라 입는 것처럼 말이죠! ^^

 

실제 활용 사례

자, 이제 htop과 vmstat, 요 두 녀석들을 실제로 어떻게 활용하는지 살펴볼까요? 이론만으론 감이 잘 안 잡히셨을 수도 있으니, 이제 실제 상황에서 어떻게 써먹는지 흥미진진한 이야기들을 풀어놓겠습니다! 두 눈 크게 뜨고 따라오세요!

사례 1: 느려터진 웹 서버, 범인은 누구?!

웹 서버가 마치 거북이처럼 느려졌다고 가정해 봅시다. 고객들은 답답함에 발을 동동 구르고 있고, 개발팀은 원인을 찾느라 야근이 코앞이에요! 이럴 때 htop이 해결사로 등장합니다! htop을 실행해 CPU 사용량을 확인해 보니, mysqld 프로세스가 CPU의 90%를 점유하고 있는 것을 발견했어요! 범인은 바로 너였구나! CPU 사용량이 높다는 것은 데이터베이스 쿼리가 비효율적이거나, 아니면 쿼리량이 폭증했다는 것을 의미할 수 있어요. vmstat로 메모리 상황을 확인하니 swap 사용량도 꽤 높네요?! 쿼리 최적화가 시급해 보입니다! 이렇게 htop과 vmstat의 콜라보로 문제의 원인을 빠르게 파악하고, 적절한 해결책을 제시할 수 있답니다!

사례 2: 메모리 누수, 꼼짝 마!

자바 애플리케이션 서버에서 메모리 누수가 의심되는 상황입니다. 서버가 시간이 지날수록 점점 느려지고, 결국엔 다운되는 현상이 반복되고 있어요. htop을 실행해서 메모리 사용량을 살펴보니, 특정 자바 프로세스가 메모리를 계속해서 잡아먹고 있는 것을 발견했습니다! 마치 블랙홀처럼 말이죠. vmstat을 통해 swpd 영역의 증가 추세를 확인하니, 메모리 누수가 확실해 보입니다! 이럴 땐, 해당 자바 애플리케이션의 힙 덤프를 분석해서 메모리 누수의 원인을 찾아내야 합니다. 범인을 잡고 나면, 코드 수정을 통해 메모리 누수를 막고 서버 안정성을 되찾을 수 있겠죠?

사례 3: 과도한 I/O, 디스크를 쉬게 해 줘!

MySQL 서버의 응답 속도가 급격히 느려졌습니다. htop을 실행해서 CPU와 메모리 사용량을 확인해 보니, 딱히 문제가 될 만한 부분은 없어 보입니다. 흠, 그렇다면 범인은 I/O에 있을 가능성이 높아요! vmstat의 bibo 값을 확인해 보니 디스크 I/O가 매우 높게 나타납니다. 디스크가 쉴 새 없이 읽고 쓰기를 반복하고 있는 거죠. 이럴 땐, 느린 쿼리를 찾아 최적화하거나, RAID 구성을 통해 디스크 I/O 성능을 개선할 수 있습니다. 또한, SSD로 교체하는 것도 좋은 방법이 될 수 있겠죠?

사례 4: 갑작스러운 트래픽 폭주, 당황하지 않고!

쇼핑몰에서 갑자기 트래픽이 폭주하기 시작했습니다! 서버가 과부하 상태에 빠지면서 서비스가 마비될 위기에 처했어요. 이럴 때 htop과 vmstat은 마치 슈퍼히어로처럼 등장합니다! htop을 통해 CPU 사용량이 100%에 육박하는 것을 확인하고, vmstat으로 메모리와 swap 사용량을 모니터링하면서 시스템의 상태를 실시간으로 파악할 수 있죠. 이 정보를 바탕으로 로드 밸런싱을 통해 트래픽을 분산시키거나, 서버를 스케일 아웃하는 등의 조치를 취할 수 있습니다. 위기 상황에서도 침착하게 대응할 수 있도록 도와주는 든든한 지원군, 바로 htop과 vmstat입니다!

사례 5: 좀비 프로세스, 너는 내 손바닥 안이야!

시스템에 좀비 프로세스가 너무 많이 생겼습니다. 좀비 프로세스는 시스템 자원을 낭비하고, 심한 경우 시스템 불안정을 초래할 수 있기 때문에 반드시 처리해야 합니다. htop에서 Z 상태로 표시되는 좀비 프로세스들을 찾아내고, 해당 프로세스의 부모 프로세스를 확인합니다. 그리고 kill 명령어를 사용하여 부모 프로세스를 종료시키면 좀비 프로세스들을 제거할 수 있습니다. htop은 좀비 프로세스를 찾아내는 데 매우 유용한 도구입니다.

자, 어떠셨나요? htop과 vmstat을 활용한 다양한 실제 사례들을 통해 이 두 도구가 얼마나 강력한지 느끼셨을 거라 생각합니다. 이제 여러분도 시스템 관리의 달인이 될 준비가 되었어요! 실제로 활용해 보면서 여러분만의 노하우를 쌓아가 보세요!

 

자, 이제 htop과 vmstat 탐험, 어떠셨나요? 처음엔 조금 낯설었을 수도 있지만, 이 친구들 덕분에 시스템 속사정을 훨씬 잘 이해하게 되었을 거예요. 마치 몸속을 들여다보는 내시경처럼 말이죠! htop은 화려한 비주얼로 직관적인 정보를 제공해주고, vmstat은 간결한 숫자들로 시스템의 숨은 메시지를 전달해준답니다. 둘 다 각자의 매력이 넘치죠? 어떤 도구를 선택하든, 이젠 여러분도 시스템 관리 전문가처럼 성능 문제를 진단하고 해결할 수 있을 거예요. 꾸준히 사용하다 보면 더욱 깊은 통찰력을 얻을 수 있을 거라고 생각해요. 앞으로 여러분의 서버 관리 여정에 htop과 vmstat이 든든한 동반자가 되어줄 거예요!

 

Itlearner

Share
Published by
Itlearner

Recent Posts

리눅스에서 FTP 서버 설정

안녕하세요! 오늘은 저와 함께 리눅스에서 FTP 서버를 구축하는 방법을 알아보도록 할 거예요! 파일 공유가 필요한…

2시간 ago

리눅스에서 VPN 설정하는 방법

안녕하세요, 여러분! 요즘 온라인 보안 중요하다는 거 다들 아시죠? 내 정보를 꽁꽁 싸매고 싶은데 어떻게…

6시간 ago

방화벽 설정 및 관리 (ufw, firewalld)

안녕하세요! 오늘은 우리가 소중하게 구축한 시스템의 안전을 책임지는 든든한 보디가드, 바로 방화벽에 대해 이야기해보려고 해요.…

10시간 ago

SSH 원격 접속 설정

안녕하세요! 오늘은 저와 함께 SSH 원격 접속 설정에 대해 알아보는 시간을 가져보려고 해요. 마치 마법처럼…

13시간 ago

리눅스 IP 설정 방법

안녕하세요! 오늘은 리눅스에서 IP 설정하는 방법에 대해 같이 알아보려고 해요. 리눅스 서버를 운영하다 보면 IP…

17시간 ago

리눅스 프로세스 관리 (ps, top, kill)

안녕하세요, 여러분! 오늘은 리눅스 시스템을 다루는 데 꼭 필요한 프로세스 관리에 대해 알아보는 시간을 가져보려고…

1일 ago

This website uses cookies.