[30호]라즈베리 파이 성능 모니터링 하기
서버를 넘어 디바이스를 향해
라즈베리 파이 성능 모니터링 하기
글 | (주)와탭
라즈베리 파이(Raspberry Pi)는 영국의 라즈베리 파이 재단이 만든 컴퓨터 과학 교육용 싱글 보드 컴퓨터이지만 현재는 많은 IT 프로젝트에서 활용되어 전통적인 IT 제품에서 IoT까지 다양한 분야에서 사용되고 있다.
현재는 라즈베리 파이2가 출시되어 있으며 $35 이라는 저렴한 가격에 구입 가능한 디바이스이다. 사양은 900MHz 쿼드코어 ARM A7 CPU에 1G SDRAM이 들어있다. 라즈베리 파이는 다양한 OS를 지원하고 있는데, 가장 많이 사용되는 것은 데비안(Debian) 리눅스 버전의 일종인 라즈비안(Raspbian) 운영체계이다.
라즈베리 파이 모니터링
전통적인 IT 시장에서 모니터링은 매우 중요한 요소이다. 이것은 IoT 환경에서도 마찬가지인데 디바이스의 상태를 실시간으로 모니터링 하는 것이 안정된 운영을 보장하는 유일한 방법이기 때문이다. 라즈베리 파이 모니터링은 디바이스의 CPU / Network / Disk / Process 의 성능을 측정 할 뿐만 아니라 가동 상태를 알려주고 부하에 이상이 발생하면 알려 줄 수도 있다. 특히 온/습도의 변화와 같은 다양한 환경에서 동작하는 라즈베리 파이와 같은 IoT 디바이스는 외부 환경에 의한 다양한 오류가 발생할 수 있는데, 모니터링은 빠르게 문제를 인지하고 원인을 분석하는데 필수적인 요소이다.
다양한 라즈베리 파이 성능 측정 방법
라즈베리파이의 성능을 측정하는 방법은 다양하지만 가장 쉬운 성능 측정은 라즈비안에서 제공하는 명령어를 사용하는 것이다. 아래와 같은 명령어들이 라즈베리 파이 사양 및 성능을 확인할 수 있는 기본 명령어들이다.
■ top: 프로세스 정보를 실시간으로 알려 준다.
■ vmstat: 시스템의 사용 현황을 요약하여 알려 준다.
■ free: 시스템의 실제 메모리와 스왑 메모리의 사용 현황을 알려 준다.
■ cat /proc/version: Linux 버전 정보를 알려 준다.
■ cat /proc/cpuinfo: cpu에 대한 정보를 알려 준다.
■ cat /proc/meminfo: 메모리에 대한 정보를 알려 준다.
위에 명령어들을 사용하며 라즈비안의 버전과 CPU, 메모리 정보 그리고 프로세스 사용률을 알아낼 수 있다. 하지만 개발이나 운영 중에 단말에 들어가서 시스템의 성능을 측정해야 하는 것은 단점이라 할 수 있다.
두 번째로 소개하는 방법은 RaspControl 이다. RaspControl은 웹 기반 성능측정 시스템이기 때문에 언제든지 웹 환경에서 라즈베리 파이의 상태를 확인 할 수 있다. 하지만 RaspControl을 사용하고자 한다면 우선 라즈베리 파이에 웹 서버를 설치해야 한다.
와탭을 통한 라즈베리 파이 모니터링
위에서 소개한 방법들을 사용해 라즈베리 파이를 모니터링 하기에는 몇 가지 문제가 있는데, 라즈베리 파이의 사활 감시가 사실상 불가능 할 뿐만 아니라 시간별 성능 비교를 할 수 없다는 것이다. 하지만 와탭을 통해 라즈베리 파이를 모니터링 하면 디바이스의 CPU / DISK / NETWORK / MEMORY / PROCESS 정보를 실시간으로 제공 할 뿐 아니라 일정 기간 동안의 이력까지 볼 수 있기 때문에 원인 분석이 가능하다. 뿐만 아니라 디바이스에 문제가 발생하면 메일과 모바일 알림를 통해 문제에 대한 정보를 보내준다. 그리고 여기까지 설명한 모든 기능이 무료로 제공되기 때문에 비용에 걱정 없이 모니터링 할 수 있다.
와탭으로 모니터링 시작하기
와탭 모니터링은 에이전트 기반의 서비스이다. 때문에 와탭(www.whatap.io)에 가입하고 나오는 첫 화면은 와탭의 에이전트 설치 화면이며 모니터링 대상 디바이스에 단계별 스크립트를 실행하면 모니터링을 시작하게 된다. 와탭은 최초 가입 후 모니터링까지 5분을 넘기지 않도록 설계되어 있다.
와탭 디바이스 목록 정보
디바이스에 에이전트를 설치하면 와탭 디바이스 목록 화면으로 이동하게 된다. 디바이스 목록 화면을 통해 디바이스 별 요약 정보를 한눈에 볼 수 있다. 확인 가능한 정보는 디바이스의 상태, 디바이스 이름, 사용률(CPU, 메모리, 디스크) 및 사양정보(운영체제, CPU, RAM) 이다. 목록 화면을 탭 하면 해당 디바이스에 대한 요약 정보 및 항목별 정보를 자세하게 볼 수 있다.
라즈베리파이 CPU 항목 정보
목록 정보를 탭 하면 아래와 같은 CPU 항목에 대한 상세 정보를 볼 수 있다.
■ 사용자 CPU 사용량
■ 시스템 CPU 사용량
■ CPU 유휴시간
■ CPU를 사용하는 프로세스 목록
라즈베리파이 메모리 항목 정보
메모리 항목은 다음과 같은 내용을 보여준다.
■ 메모리 사용량
■ 스왑 메모리 사용량
■ 시스템 메모리 버퍼 사용량
■ 시스템 메모리 캐시 사용량
■ 메모리를 사용하는 프로세스 목록
라즈베리파이 모니터링 측정 항목
와탭이 무료 라즈베리 파이 모니터링 서비스를 지원한다고 해서 기능이 부족할 거라고 생각해서는 안 된다. 무료로 제공되는 측정 항목들을 정리해보면 다음과 같다.
■ CPU / Memory / Disk 사양 정보
■ CPU 사용률
■ Memory 사용률
■ Disk 사용률
■ Network 트래픽
■ Process별 CPU 사용률
■ Process별 Memory 사용률
위 항목을 통해 개발자는 라즈베리 파이의 세밀한 운영 정보들을 알아낼 수 있다. 예를 들어 CPU 사용률과 해당 시간대의 프로세스 항목을 조사한다면 부하를 많이 일으키는 어플리케이션을 알아내는 것도 가능하다. 뿐만 아니라 부하가 발생하는 패턴을 분석하여 서비스 사용 패턴을 알아낼 수도 있다.
라즈베리 파이 모니터링 기능
라즈베리 파이 모니터링이 단지 항목 측정만을 하는 것은 아니다. 오히려 모니터링의 핵심 기능은 사용률 측정보다 상태에 따른 알림 기능이라고 할 수 있다. 라즈베리 파이 모니터링을 기능으로 분리하면 다음과 같다.
■ 가동 상태 감시
■ 부하 감시
■ 가동 정지 상태 알림
■ 부하 이상 상태 알림
일반적으로 라즈베리 파이 모니터링은 디바이스에서 동작하는 서비스의 이상 징후를 발견하고 확인하는 용도로 사용한다. 라즈베리 파이가 가동 정지 또는 부하 이상 상태가 되면 모니터링 서비스가 알림을 발생시키고 관리자는 알림을 받으면 상태 감시를 통해 원인을 파악하고 시스템을 정상적으로 운영하는 것이 목적이다.
사용자가 설정한 알림 상태에 따라 메일과 모바일로 알림을 받을 수 있다.
와탭 라즈베리 파이 모니터링의 서비스 환경
모니터링을 언제든지 할 수 있게 하려면 지원되는 서비스 환경 또한 다양해야 한다. 와탭은 다양한 웹 브라우저뿐 아니라 아이폰과 안드로이드 앱을 통해 모바일을 지원하여 언제 어디서든 모니터링이 가능하다. 아래는 와탭이 지원하는 서비스 환경이다.
■ Chrome
■ Fire Fox
■ Internet Explorer (버전 9.0 이상)
■ Safari
■ Opera
■ iOS(버전 7.0 이상)
■ Android(버전 4.0 이상)
아래는 iOS를 지원하는 와탭의 디바이스 장해 알림이 애플워치로 전달된 화면이다.
마무리
점점 많은 프로젝트들이 라즈베리 파이를 통해 세상에 나오고 있으며 상용화 되고 있다. 그에 따라 라즈베리 파이에 대한 모니터링 이슈도 늘어나고 있지만 아직까지 제대로 된 디바이스 모니터링 서비스가 존재하지 않았다. 국내에서 가장 많은 가입자를 가지고 있는 모니터링 서비스 와탭이 최근 내놓은 라즈베리 파이 디바이스 모니터링 서비스가 국내 라즈베리 파이 개발자들에게 많은 도움이 되길 바란다.