728x90

힉부 연구생을 하며 연구실이 보유한 클러스터 서버 3대를 다룰일이 생겼다.

 

그동안 내가 주로 이용하던 서버는 연구실 내에 위치하여 GUI가 필요한 툴들을 이용할 때는 모니터와 키보드를 연결해 GUI 모드로 이를 이용하곤 했었는데,

이번에 이용할 서버들도 마찬가지로 GUI를 이용해야 하는데 학교 저 멀리 다른 건물에 위치해있었다...ㅎ

내가 관리하는 서버들 (선정리 해야겠다!)

 

맨처음에는 위 사진처럼 GUI 이용해야 할 날을 이틀 정도 잡고, 모니터 키보드 다 챙겨서 서버룸으로 출퇴근하며 작업해볼까 고민해봤지만

방학이어서 사람들도 거의 없는 건물 빈 방에 혼자 쪼그리면서 개발하면 너무 비참해질 것 같아서ㅎ

다른 방안을 생각해보기로 했다.

 

그 중 생각해낸게 SSH + VNC이다.

내 노트북에 SSH로 서버에 접속한 후, VNC를 이용해 해당 서버를 GUI로 띄우는 것이다.

 

다른 블로그를 보며 실행해봤지만, 나 같은 경우 접속은 성공했지만 검은 화면이 떠 이리저리 알아보며 최대한 해결했다.

그리고 내가 이용할 서버는 SSH 연결도 Gateway 서버 하나 거쳐서 진행하기 때문에 아주 조금 더 복잡했다.

이러한 시행착오들을 이번 포스팅에 다 녹여서 설명해보려 한다. 

 

그전에 ssh와 VNC 개념은 알고 계신다는 가정하에 설치 및 세팅 과정만 작성해보려 한다.

 

과거의 내가 보며 같이 서버 세팅한다는 생각으로 단계별로 최대한 자세하게 풀어쓰려 한다.

시작해보자!

 


환경 정의

연결할 서버는 Ubuntu이다. 요즘 Centos랑 Ubuntu 왔다갔다 하느라 정신이 없다

 

우선 내가 사용할 서버는 곧바로 SSH로 연결하지 않는다.

Gateway 서버 한대를 우선 거친 후 연결되는 방식이다.

 

그래서 간략히 표현하자면

노트북 -> Gateway 서버 -> 접속할 서버

방식으로 접속한다,

 

다른 VNC 뷰어 툴들 중 이러한 세팅을 제일 쉽게 지원하는 툴이 MobaXterm이었다.(내 기준)

 

따라서 나의 계획은

내 노트북으로 ssh로 접속 ->  VNC를 이용하기 위한 서버 세팅 ->  MobaXterm을 이용해 GUI 화면 노트북에 띄우기 

이다.

 

만약 다이렉트로 SSH 연결이 가능한 경우엔 오히려 좋다.

해당 과정은 건너뛰기만 하면 된다.

 

MobaXterm 설치

앞에서 말했다 싶이 내가 사용할 툴은 MobaXterm이다.

MobaXterm은 VNC 말고도 굉장히 많은 기능들을 지원한다.

나도 다른 기능들 조금씩 이용해보며 정말 많은 것들을 배웠다. 관심있는 분들은 자세히 공부해보면 좋을것 같다.

 

아래 사이트에 접속해 MobaXterm을 설치해준다.

https://mobaxterm.mobatek.net/download.html

 

 

각자 상황에 맞게 어떤 에디션을 설치해줄 지 고르면 된다.

나 같은 경우는 학교에서 비영리적인 목적으로 이용할 예정이기 때문에 Home Edition을 설치해줬다.

 

 

이를 클릭하면 아래와 같은 화면이 나온다.

 

Portable, Installer 두 가지 옵션이 또 나온다. 이 둘의 차이는 아래와 같다.

 

  • Portable Edition
    • 설치 프로그램 없이 단일 파일
    • USB 같은 외부 저장장치에 복사하여 사용 -> 다른 컴퓨터에도 사용 가능
    • 시스템에 직접 설치되지 않음
  • Installer Edition
    • 사용자 컴퓨터에 직접 설치

 

나 같은 경우 Installer Edition을 설치해주었다.

이를 누르면 압축 파일이 하나 다운로드 되는데, 이를 풀면 .msi 파일이 나온다.

해당 파일을 눌러 설치를 진행해준다. 설치 과정은 별거 없다.

 

설치 후 MobaXterm 아이콘이 생길텐데, 이를 클릭하면 프로그램이 실행될 것이다!

 

 

 

여기서 VNC를 사용하기 전에 서버에 세팅해주어야 할 것이 있다.

이를 먼저 진행하려 한다.

 

 

서버 세팅

gnome, vns server 툴 설치

GUI로 띄우고 싶은 서버에서 작업해줘야 한다.

우분투 기준 아래 툴들을 설치해준다.

 

# 이거 설치 안해줘서 VNC 뷰어에서 검은 화면이 떴다
apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal -y

# TIGER VNS 관련 패키지
apt-get install tigervnc-standalone-server tigervnc-xorg-extension -y

 

 

설치를 완료했으면 비밀번호를 설정해줘야 한다.

sudo vncpasswd

 

해당 비밀번호는 추후에 MobaXterm이 localhost 비밀번호 물어볼 때 입력할 것이므로 절대 잊으면 안된다.

(그리고 아래 사진과 달리, 루트 사용자가 아닌 경우 꼭 sudo를 붙이도록 한다.)

 

 

이때 'Would you like to enter a view-only password' 라는 질문엔 n을 입력해줬다.

이는 사용자가 읽기 전용 비밀번호를 설정할 지의 여부를 묻는 메시지다.

나는 VNC 사용자로 들어가 파일들을 조작할 예정이기 때문에 n을 입력한 것이다.

 

 

xstartup 파일 생성

 아래 경로로 xstartup이라는 파일을 새로 만들어 준다.

# xstartup은 기존에 존재하지 않는 파일이다. 새로 만들어주기
vim ~/.vnc/xstartup

 

이후 해당 파일에 아래와 같은 메시지를 복사 붙여넣기 한다.

맨 밑 4줄은 다른 블로그들엔 없는 내용인데, 이를 추가해주지 않으면 나같은 경우 검은 화면만 떠서 추가해줬다.

#!/bin/sh
# Start Gnome 3 Desktop 
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &

# 기존 다른 블로그엔 없던 부분.. 따로 추가
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &

 

그 후 파일 권한을 설정해준다.

# 권한 조정
chmod u+x ~/.vnc/xstartup

 

Xauthourity 파일 생성

# root에 Xauthority 파일 자동 생성
sudo .Xauthority

 

 

서버 실행

서버의 모든 세팅은 다 끝났다.

이제 vnc를 실행시켜주도록 하자.

이때 나 같은 경우 root 권한으로 실행해야 GUI가 제대로 떴다. 루트 권한 아닌 경우 sudo 꼭 넣어준다.

# 서버 실행
sudo vncserver -localhost no

 

여기서 끝에 no는 외부 접속을 허용하기 위한 옵션이다.

이를 주지 않으면 localhost로의 접근만 가능하기 때문에 반드시 넣어줘야 한다.

명령어를 실행해주면 아래와 같이 비밀번호 한번 더 입력하는 안내가 나온다.

똑같이 비밀번호 입력하면 된다.

 

 

 

xxx:1 라는 프로세스가 생성되었다.

끝자리가 1이면 5901, 2면 5902, 3이면 5903 번 포트를 이용해 VNC에 접근한다.

프로세스 리스트를 자세히 확인해보자

 

# VNC 프로세스 리스트
# root 권한으로 반드시!
sudo vncserver -list

 

 

1번 프로세스가 생성되었으므로 포트번호는 5903번이 배정되었음을 확인할 수 있다.

만약 이를 kill하고 싶다면 아래 명령어를 이용하면 된다.

 

# xxx:3 vnc 프로세스 kill
sudo vncserver -kill :1

 

 

 

MobaXterm 실행

서버 세팅은 완료했다. 이제 노트북으로 가서 MobaXterm을 실행시켜본다.

 

 

좌상단에 빨간색 박스 Session을 클릭한다.

그다음 우리가 이용할 VNC를 클릭해준다.

 

이를 클릭하면 아래와 같은 창이 뜨는데,

Basic Vnc Setting 칸에 세팅한 서버의 IP 주소를 입력해준 후 포트 번호를 맞춰주면 된다.

앞서 살펴봤을 때 나와 같은 경우 5901번 포트를 써야 한다는 것을 알기 때문에 5901번으로 맞춰준다.

 

 

자 여기서 갈리는 부분이 있다.

내 서버 같은 경우는 SSH 접속시 노트북에서 서버로 곧바로 연결되는 것이 아니라, Gateway 서버 한대를 거쳐간다.

나와 같은 환경이신 분은 아래 과정을 따라가면 되고, 아닌 분들은 넘어가면 된다.

 

 

Network settings 클릭

 

 

빨간색 네모 클릭

 

 

여기서 각자 환경에 맞는 게이트웨이 서버 설정을 입력해주면 된다.

 

OK 버튼을 누르면 루트 권한으로 VNC 서버 실행하신 분들은 바로 GUI 창이 뜰 것이고,

아닌 분들은 localhost 비밀번호 묻는 화면이 뜰 것이다.

그런 경우 앞서 vncserver passwd 단계에서 설정했던 비밀번호를 입력해주면 된다.

 

실행 결과

 

짜잔~ GUI로 띄우기 성공했다!

이제 내 자리에서 저 멀리 있는 서버들 이용해 GUI 툴들 이용할 수 있다

 

셋업보다 글쓰기가 더 오래 걸린 것 같은 느낌ㅎ

그래도 이 글로 인해 누군가가 도움이 되었다면 난 그걸로 됐다!

728x90
728x90

이번 포스팅에서는 Bmon의 설치 및 실행을 진행해본 후 주요 옵션에는 무엇이 있는지 알아볼 것이다.

또한 Bmon을 실행한 상태에서 네트워크 송수신량 변화를 알아보기 위해 간단한 실험도 진행해볼 것이다.

 

Bmon외에 다른 모니터링 툴에는 Sysstat과 Nmon이 있다.

이와 관련한 포스팅도 이전에 작성해놓았으니 궁금하신 분들은 아래에 링크 올려놓았으니, 참고해보면 좋을 것 같다.

 

Syssta 시리즈

https://jaehhhk.tistory.com/35

 

Sysstat (1)_설치 및 sar 명령어 알아보기

이번 시리즈는 Nmon에 이어 Sysstat의 설치 및 활용법을 총 2부작으로 나누어 진행할 예정이다. 이번 포스팅은 Syssta 패키지의 설치와 간단한 sar 명령어 및 옵션을 알아보도록 하고, 2탄에서는 실험

jaehhhk.tistory.com

https://jaehhhk.tistory.com/36

 

Sysstat (2)_sar 명령어로 모니터링 결과 시각화 해보기

https://jaehhhk.tistory.com/35 Sysstat (1)_설치 및 sar 명령어 알아보기 이번 시리즈는 Nmon에 이어 Sysstat의 설치 및 활용법을 총 2부작으로 나누어 진행할 예정이다. 이번 포스팅은 Syssta 패키지의 설치와 간

jaehhhk.tistory.com

 

Nmon 시리즈

https://jaehhhk.tistory.com/33

 

Nmon (1)_ 설치 후 이용해보기

이번 포스팅에서는 시스템 성능 모니터링 도구인 Nmon을 설치해보고 이용해보기로 하겠다. 총 2부작으로 이루어질 예정이고, 두 번째 포스팅에서는 실험 환경을 가정해 Nmon Visualizer을 통해 결과

jaehhhk.tistory.com

https://jaehhhk.tistory.com/34

 

Nmon (2)_ Nmon Visualizer 이용해 시각화하기

https://jaehhhk.tistory.com/33 Nmon (1)_ 설치 후 이용해보기 이번 포스팅에서는 시스템 성능 모니터링 도구인 Nmon을 설치해보고 이용해보기로 하겠다. 총 2부작으로 이루어질 예정이고, 두 번째 포스팅에

jaehhhk.tistory.com

 


Bmon이란?

Unix 계열 시스템을 위한 간단하지만 강력한 텍스트 기반 네트워크 모니터링 및 디버깅 도구이다.

 

앞서 링크로 올려놓은 Nmon같은 경우엔 네트워크 뿐만아니라 CPU, RAM, DISK 등의 자원들도 모니터링 할 수 있다.

Bmon은 네트워크에 보다 더 강점이 있는 도구라고 알고 있으면 될 것 같다.

 

 

설치 및 실행

나는 이번엔 Ubuntu에서 설치를 진행했다.

설치 및 실행은 간단하다.

// bmon 설치
sudo apt-get install bmon

// 실행
bmon

 

 

실행은 nmon과 마찬가지로 터미널에 bmon이라 입력하면 아래와 같이 실행 페이지가 나온다.

 

 

주요 옵션

실행을 하였다면, 아래와 같이 여러 알파벳을 입력해보며 다양한 옵션을 이용해볼 수 있다.

  • g : 그래프 표시
  • d : 자세한 대역폭 통계
  • i : 추가 정보
  • < or > : 그래프를 추가하거나 제거

 

g를 입력하여 그래프를 표시해보면, 아래와 같이 실시간으로 네트워크 장비별 RX와 TX에 대한 통신량을 알아볼 수 있다.

 

  • lo: 시스템이 자기 자신과의 통신을 하기 위한 가상 이더넷 장치. ‘loop back’을 의미하며 자기 자신에게 보내는 데이터를 처리하기 위한 가상 인터페이스 장치명.
  • ens33: 네트워크 장비명
  • RX: 각 인터페이스에 수신 된 초당 패킷 수
  • TX: 각 인터페이스에 전송 된 초당 패킷 수

 

실험

Bmon을 실행시킨 상태에서 유튜브 2시간 분량의 영상 5개 정도를 띄어놓고 실험을 진행해볼 것이다.

 

영상 재생 전

RX

 

TX

 

영상을 재생하기 전 RX와 TX엔 유의미한 변화가 나타나지 않는 것을 볼 수 있다.

 

영상 재생 시작 직후

RX

 

TX

 

수신, 전송된 패킷의 수가 유튜브 영상 재생을 시작하자 증가하기 시작한다.

 

 

영상 재생 1분 후

RX

 

TX

 

수신 되고 전송된 패킷의 수가 전체적으로 일정하게 증가하게 된 것을 볼 수 있다.

 


 

지금까지 Bmon을 활용하여 네트워크 모니터링을 진행해보았다.

 

학부연구생을 하며 실험 결과를 알아보거나, 혹은 내가 사용하는 다른 클러스터링 툴들이 제대로 활용되고 있는지 확인할 때

혹은 클러스터링이 됐음에도 불구하고 예측된 성능이 나오지 않을 때 자동으로 Nmon과 Bmon을 사용해 체크해봐야 하는 상황이 많은 것 같다.

 

무작정 안된다거나, 오류가 난다고 해맬 것이 아니라 이러한 모니터링 툴을 활용하여 애초에 프로그램이 정상적으로 잘 돌아가고 있는지 확인해보면 결과 도출에 많은 도움이 될 것 같다! 

728x90
728x90

https://jaehhhk.tistory.com/35

 

Sysstat (1)_설치 및 sar 명령어 알아보기

이번 시리즈는 Nmon에 이어 Sysstat의 설치 및 활용법을 총 2부작으로 나누어 진행할 예정이다. 이번 포스팅은 Syssta 패키지의 설치와 간단한 sar 명령어 및 옵션을 알아보도록 하고, 2탄에서는 실험

jaehhhk.tistory.com

 

1탄에서 sysstat 패키지 설치 후 간단한 sar 명령어에 대해 알아보았다면,

 

이번 포스팅에는 런타임 2시간 정도 되는 유튜브 영상 5개를 동시 재생한 후 4개의 리소스(네트워크, 메모리, 디스크, CPU) 모니터링을 실시해보았다.

 

sar 명령어의 옵션에 대해 알고 싶다면 위 링크를 들어가 확인해보면 좋을 것 같다.

 

이때 결과값들은 텍스트 파일로 받아주었으며,

간단한 파이썬 코드를 활용하여 전처리해준 후 matplotlib으로 시각화해주었다.

 


실험 환경 정의

실험 환경은 이전 Nmon Visualizer로 시각화 해봤을 때와 같은 환경이다.

유튜브에 들어가 런타임 2시간 정도 되는 영상 5개를 동시에 재생한 후 각 시스템 지표들의 변화 양상을 알아본다. 

 

https://jaehhhk.tistory.com/34

 

Nmon (2)_ Nmon Visualizer 이용해 시각화하기

https://jaehhhk.tistory.com/33 Nmon (1)_ 설치 후 이용해보기 이번 포스팅에서는 시스템 성능 모니터링 도구인 Nmon을 설치해보고 이용해보기로 하겠다. 총 2부작으로 이루어질 예정이고, 두 번째 포스팅에

jaehhhk.tistory.com

 

 

1. sar –n DEV 1

네트워크 리소스의 변화 양상이다.

# 명령어 수행 결과 network.txt 파일에 저장
sar -n DEV 1 > network.txt

# 저장 내용 출력
cat network.txt

 

sar –n DEV 1 > network.txt를 실행시킨 상태에서 유튜브 영상을 실행해보았다.

 

 

출력 결과 유튜브 스트리밍을 시작한 부근에 rxpck과 rxKB/s값이 급격히 늘어났다.

 

결과값을 전처리해준 후 시각화 해보면 다음과 같다.

 

 

2. sar –r 1

메모리 리소스의 변화 양상이다.

# 명령어 수행 결과 memory.txt 파일에 저장
sar -r 1 > memory.txt

# 저장 내용 출력
cat memory.tx

 

sar –r 1 > memory.txt를 실행시킨 상태에서 유튜브 영상을 실행해보았다.

 

 

실행 결과 영상을 재생하는 개수가 늘어날수록 memused 지표가 증가함을 볼 수 있다.

 

결과값을 전처리해준 후 시각화 해보면 다음과 같다.

 

 

유튜브를 실행했을 때 %memused 지표의 크기가 증가한 것을 볼 수 있었다. 또한 추가로 분석해 본 mbmemused 지표도 1500mb에서 시작하여 3000mb까지 증가했음을 볼 수 있다.

 

 

3. sar –d –p 1

디스크 리소스의 변화 양상이다.

# 명령어 수행 결과 disk.txt 파일에 저장
sar -d -p 1 > disk.txt

# 저장 내용 출력
cat disk.txt

 

sar -d -p 1 > disk.txt를 실행시킨 상태에서 마찬가지로 유튜브 영상을 재생해보았다.

 

지표들이 0을 유튜브 영상을 재생하니 디바이스 사용량이 눈에 띄게 늘어났음을 볼 수 있다.

디바이스명 sdb에서 초당 입출력 전체 IOSP가 131로 증가했고, 초당 디스크가 write한 크기도 2072KB로 늘어났다.

디바이스에 발생하는 요청의 평균 길이가 15.82로 늘어났고, 입출력의 평균 처리 시간은 0.33로, 디스크 IDLE의 한계 지표도 3.6으로 증가했음을 알 수 있다.

 

결과값을 전처리해준 후 시각화 해보면 다음과 같다.

 

 

Disk 장치 사용률이 0%대에서 시작하여 유튜브 영상을 재생하니 최대 약 20%까지 사용률이 증가한 것을 볼 수 있다.

 

 

4. sar –u –P ALL

CPU 자원의 변화 양상이다.

# 명령어 수행 결과 cpu.txt 파일에 저장
sar -u -P ALL 1 > cpu.txt

# 저장 내용 출력
cat cpu.txt

 

sar -u -P ALL 1 > CPU.txt를 실행시킨 상태에서 유튜브 영상을 실행시켜보았다.

 

마찬가지로 유튜브 영상을 실행하니 %user 지표와 %system 지표는 급격히 증가하고,

%idle 지표는 감소했음을 볼 수 있다.

 

이때 IDLE이란 ‘프로세스가 실행되고 있지 않은 상태’이다.

CPU 프로세스가 실행 중이지 않은 상태일수록 100%에 가까워져야 하는 것이다.

이를 미루어 보았을 때 %idle이 감소하는 것은 당연하다.

 

이를 시각화 해보면 아래와 같다.

영상들이 로딩되는 10초간 idle 지표가 약 20%까지 낮아졌다가 로딩이 완료되고 다시 약 80%로 증가했다.

로딩 완료 후 광고 영상이 5초~15초간 재생되어 idle 지표가 0%대까지 낮아졌고,

광고 재생 후 대기 시간을 거쳐 본 영상이 재생되어 다시 idle 지표가 잠시 높아졌다 다시 낮아졌음을 볼 수 있다.

 

 


마무리

지금까지 총 2편에 걸쳐 Sysstat 패키지 중 sar 명령어를 활용하여 리소스들을 모니터링해보는 시간을 가졌다.

 

시스템 모니터링 툴 카테고리에서 다음 포스팅은 아마 다른 시스템 모니터링 툴 중 Bmon에 대해 이야기해 볼 것이다.

728x90
728x90

이번 시리즈는 Nmon에 이어 Sysstat의 설치 및 활용법을 총 2부작으로 나누어 진행할 예정이다.

 

이번 포스팅은 Syssta 패키지의 설치와 간단한 sar 명령어 및 옵션을 알아보도록 하고,

2탄에서는 실험 환경을 가정한 후, 시각화해보는 시간을 가져볼 것이다.

 


Sysstat이란?

Sysstat 패키지란 리눅스용 성능 모니터링 도구 모음 패키지이다.

성능 분석을 하기 위해 여러 가지 툴을 제공하는데, 지원하는 대표적인 툴(명령어)은 총 5개이다.

  1. Sar : CPU, 메모리, 네트워크, Disk I/O 등의 정보를 수집하여 실시간으로 지표를 보여줌
  2. Iostat : Disk I/O 성능 측정
  3. Tapestat : tape driver I/O의 성능 측정
  4. mptat : Disk CPU 성능 측정
  5. Pidstat: 특정 프로세스의 CPU 및 스레드 정보 측정

이 중 이번 포스팅에서 알아볼 툴은 Sar 명령어이다.

 

 

패키지 설치

Sar을 이용하기 위해 우선 sysstat 패키지를 리눅스 환경에서 설치해주어야 한다.

apt-get install sysstat

 

간단하다! 설치는 여기서 끝난 것이다.

 

 

Sar 명령어 옵션 알아보기

Sysstat 패키지를 성공적으로 설치했다면 sar 명령어를 이용할 수 있다!

Sar 명령어는 역할에 따라 다양한 옵션을 갖고, 이러한 옵션들은 ‘sar~’로 시작하는 명령어를 이용해 지정해주어 사용할 수 있다.

 

대표적인 sar 명령어의 옵션 및 사용 예시들을 소개하면 다음과 같다.

  • sar  a  b
    • a초마다 b회 CPU 정보 출력
  • -o
    • 실행 결과를 파일로 저장
  • -f
    • 결과물 파일을 출력
  • -r
    • 메모리의 사용량 정보를 출력
  • -n
    • 네트워크 사용 정보 출력
  • -d
    • 디바이스 사용량 정보 출력
  • -u
    • CPU Utility에 대한 정보 출력
  • -p
    • 특정 프로세스에 대한 정보만 출력

이 기능들을 적절히 활용해 과제에서 구체적으로 제시한 활동들을 수행할 것이다.

 

 

리소스 모니터링 수행

위에서 소개한 옵션들을 활용해 간단한 명령어를 작성하여 모니터링을 수행해보겠다.

 

1. sar -n DEV 1

# 명령어 수행 결과 network.txt 파일에 저장
sar -n DEV 1 > network.txt

# 저장 내용 출력
cat network.txt

 

네트워크 사용량 정보에서 1초마다 디바이스별 정보를 출력한다.

명령어의 실행 결과를 network.txt파일에 저장하여 출력해보면 다음과 같다.

 

결과 대한 설명을 진행해보도록 하겠다.

00시 00분 00초 옆 열은 네트워크 인터페이스 명(IFACE)이고, 1행에 장비 명에 따른 수치이다.

 

우선 네트워크 장비명에 대한 설명을 하자면

  • lo
    • loop back을 의미하며, 자기 자신에게 보내는 데이터를 처리하기 위한 가상 인터페이스 장치명이다.
  • ens33
    • 내가 실제로 사용하고 있는 이더넷 명(dell이 ens33으로 쓰이는 것으로 알고 있다.)

 

다음으로 각 수치명에 대해 알아보면 아래와 같다.

  • rxpck/s
    • 초당 rx 수
  • txpck/s
    • 초당 tx 수
  • rxkB/s
    • 초당 rx한 크기
  • txkB/s 
    • 초당 tx한 크기
  • rxcmp/s
    • 압축된 패킷의 초당 rx 수
  • txcmp/s
    • 압축된 패킷의 초당 tx 수
  • rxmcst/s
    • 초당 rx한 다중 패킷
  • %ifutil
    • NIC에서 사용 가능한 네트워크 대역폭

 

현재 아무 작업을 하지 않은 상태에서 성능측정을 하여서 그런지 출력 값은 전부 0으로 출력이 되었다.

 

 

2. sar -r 1

# 명령어 수행 결과 memory.txt 파일에 저장
sar -r 1 > memory.txt

# 저장 내용 출력
cat memory.txt

 

1초마다 메모리 사용량 정보를 출력한다

 

지표에 대한 설명은 아래와 같다.

  • kbmemfree
    • free 상태에서의 메모리 크기
  • kbavail
    • 스왑 없이 새로운 프로세스를 시작할 때 사용할 수 있는 메모리 양
  • kbmemused
    • 유저에서 사용 중인 메모리
  • %memused
    • 사용 중인 메모리의 점유율
  • kbbuffers
    • 버퍼 캐시의 메모리 크기
  • kbcached
    • 페이지 캐시의 메모리 크기
  • kbcommit
    • 현재 시스템에 할당된 메모리 크기
  • %commit
    • kbcommit의 메모리 점유율
  • kbactive
    • 사용 중인 메모리에서 최근에 사용된 메모리 정보
    • 메모리 부족으로 여유 메모리를 확보하고자 할 때 후순위
  • kbinact
    • 사용 중인 메모리에서 최근에 사용되지 않은 메모리의 크기
  • kbdirty
    • 디스크에 write 하기 위해 대기 중인 크기

현재 메모리는 free 상태에서 약 11.8GB이며, 현재 사용중인 메모리는 약 1.8 GB임을 알 수 있다.

이는 전체 메모리의 13.2%에 해당하는 양임을 알 수 있다.

캐시의 경우 버퍼 캐시는 약 40MB, 페이지 캐시는 약 1.1GB인 것을 알 수 있다.

뿐만 아니라 현재 시스템에 할당된 메모리는 약 2.8GB이며 이는 전체 메모리의 15.86%에 해당하는 크기임을 알 수 있다.

 

 

3. sar -d -p 1

# 명령어 수행 결과 disk.txt 파일에 저장
sar -d -p 1 > disk.txt

# 저장 내용 출력
cat disk.txt

 

1초마다 프로세스에서 이용하는 디바이스 사용량 정보 출력한다.

 

 

지표에 대한 설명은 아래와 같다.

  • DEV 
    • 디바이스
  • tps 
    • 초당 입출력 전체의 IOPS
  • rKB/s 
    • 초당 디스크가 read 한 크기
  • wKB/s 
    • 초당 디스크가 write 한 크기
  • areq-sz 
    • 디바이스에 발생되는 요청의 평균 길이
  • aqu-sz 
    • 디바이스에 발생되는 요청의 큐 길이
  • await 
    • 입출력의 평균 처리 시간
  • %util 
    • 디스크의 idle 한계 지표

현재 아무 작업을 하지 않은 상태에서 성능측정을 해서 그런지 출력 값은 전부 0이 출력되었다.

 

 

3. sar -u -P ALL 1

# 명령어 수행 결과 cpu.txt 파일에 저장
sar -u -P ALL 1 > cpu.txt

# 저장 내용 출력
cat cpu.txt

 

1초마다 프로세스의 모든 CPU Utility 정보를 출력한다.

 

 

지표에 대한 설명은 아래와 같다.

  • %user 
    • application level에서 실행 중일 때 CPU 사용률     
  • %nice 
    • application level에서 nice 가중치를 주었을 때 CPU 사용률     
  • %system 
    • 커널에서 실행 중일 때의 CPU 사용률     
  • %iowait 
    • 디스크의 입출력이 늦어져 해당 프로세스가 idle 상태가 되는 경우의 비율     
  • %steal 
    • virtual CPU에 의해 뜻하지 않는 대기 시간이 생기게 되는 비율

프로그램을 아무것도 사용하지 않은 상태에서 측정해 본 결과 User의 CPU 사용률은 0.99%임을 알 수 있다.

 


마무리

sysstat 패키지의 설치와 sar 명령어에 대해 알아본 후

간단한 4가지 명령어를 통해 네트워크, 디스크, 메모리, cpu 자원의 모니터링을 수행해보았다.

 

다음 2탄에는 유튜브 영상을 실행한 상태에서의 리소스 모니터링을 수행한 후

결과를 시각화해보도록 하겠다.

728x90
728x90

https://jaehhhk.tistory.com/33

 

Nmon (1)_ 설치 후 이용해보기

이번 포스팅에서는 시스템 성능 모니터링 도구인 Nmon을 설치해보고 이용해보기로 하겠다. 총 2부작으로 이루어질 예정이고, 두 번째 포스팅에서는 실험 환경을 가정해 Nmon Visualizer을 통해 결과

jaehhhk.tistory.com

 

이전 포스팅에서는 Nmon을 설치하고 CPU, Memory, Disk, Network 자원의 모니터링을 수행해보는 방법을 설명했다.

 

이번에는 Nmon의 마지막 시리즈로 Nmon Visualizer를 이용해 시각화해보는 방법에 대해 실험 환경을 가정해 설명해보도록 하겠다.

 


Nmon Visualizer 설치

설치 링크

https://github.com/nmonvisualizer/nmonvisualizer/releases

 

Releases · nmonvisualizer/nmonvisualizer

A Java GUI tool for analyzing NMON and other system stats files - nmonvisualizer/nmonvisualizer

github.com

 

우선 위 링크에서 .jar 파일을 다운로드 받아준다.

 

이후 java를 설치해주어야 한다. 이미 깔려있는 경우는 넘어가도록 하자.

// 설치 가능 리스트 업데이트
apt-get update

// JDK install 해주기
sudo apt-get install openjdk-8-jdk

// java 버전 체크
java -version

 

 

이후 다운받은 Nmon Visualizer 디렉터리로 이동해 jar 파일을 실행해주도록 한다.

java -jar NMONVisualizer_2021-04-04.jar

 

실행을 완료하면 위와 같이 Nmon Visualizer 화면이 뜰 것이다.

이 화면이 뜨면 정상적으로 설치된 것이다.

 

 

실험 환경 정의

Nmon Visualizer을 정상적으로 설치해주었다면, 시각화를 해보기 전 어떤 실험을 할 것인지 환경을 정의해볼 것이다.

 

유튜브에 들어가 런타임 2시간 정도 되는 영상 5개를 동시에 재생한 후 각 시스템 지표들의 변화 양상을 알아본다. 

 

 

 

Nmon 명령어 활용하기

실험 환경까지 정의 완료했다면, 이제는 Nmon 명령어를 이용하여 시각화를 진행해보도록 하겠다.

우선 Nmon 명령어는 아래와 같은 양식으로 이용한다.

// nmon이라는 디렉토리 만듦
mkdir nmon


// 수집 결과를 파일로 저장하는데, 1초에 한번 씩 60번. 즉 1분동안 1초간격으로 데이터수집
// 이때 결과 피일은 nmon이라는 디렉토리에 저장
nmon -f -s 1 -c 60 -m nmon

 

Nmon 명령어 옵션 설명은 아래와 같다.

  • -f  : 파일로 저장
  • -s : Seconds, 몇초 주기로 데이터를 수집할 것인지 설정
  • -c : Number, 지정한 시간동안 몇 번 데이터를 수집할 것인지 설정
  • -m : 파일을 저장할 디렉터리 명

 

명령어를 수행해준 후 지정한 시간 후에 

아까 만들어준 nmon 디렉터리에 가보면 결과 파일이 성공적으로 생성된 것을 볼 수 있다.

 

참고로, 나는 현재 VMware 가상머신에서 실험을 진행해서 아래와 같이 GUI 버전으로 파일을 확인한다.

 

 


결과 확인

이제부터 해당 파일에 들어가 각 자원별 양상을 모니터링한 후 시각화한 결과를 보도록 하겠다.

 

1. CPU

 

가로축은 시간, 세로축은 이용률(%)이다.

 

CPU는 동영상을 재생하기 시작한 9초 지점부터 이용률이 급격히 증가하는 것을 볼 수 있다.

이후 29초 부근에 이용률이 급격히 감소하다가 다시 급격히 증가한다.

 

이는 중간 유튜브 광고의 영향이지 않을까? 싶다.

 

각 지표별 설명은 아래와 같다.

  • %user : application level에서 실행 중일 때 CPU 사용률
  • %sys : 커널에서 실행 중일 때의 CPU 사용률
  • %wait : 디스크의 입출력이 늦어져 해당 프로세스가 idle 상태가 되는 경우의 비율
  • %steal : virtual CPU에 의해 뜻하지 않는 대기 시간이 생기게 되는 비율
  • %busy : %Busy CPU = ("Total CPU time" from Time Model Statistics) / "BUSY_TIME" from Operating System Statistics)

 

2. Memory

 

memfree 지표를 보면 동영상을 재생하기 시작한 8초 부근부터 free 지표가 낮아졌다가, 동영상을 종료 시킨 50초 부근에서 급격히 상승하는 것을 볼 수 있다.

 

각 지표별 설명은 아래와 같다.

  • memfree : free 상태에서 메모리 크기
  • avail : 스왑 없이 새로운 프로세스를 시작할 때 사용할 수 있는 메모리 양
  • cached : 페이지 캐시의 메모리 크기
  • active : 사용 중인 메모리에서 최근에 사용된 메모리 정보 -> 메모리 부족으로 여유 메모리를 확보하고자 할 때 후순위
  • inactive : 사용 중인 메모리에서 최근에 사용되지 않은 메모리의 크기
  • free : total에서 used와 buff/cahce를 뺀 실제 사용 가능한 여유 있는 메모리량 / 사용되지 않은 스왑 크기

 

3. Disk

 

디스크 장비도 마찬가지로 전반적으로 동영상 재생을 시작한 8초 부근부터 %busy가 늘어난 것을 볼 수 있다.

  • %busy : 특정 단위시간(deltams)당 디스크 I/O 처리 시간의 비율

 


 

이렇게 해서 Nmon 시리즈는 마무리하도록 하겠다.

 

다음 포스팅은 아마 시스템 모니터링 툴 중 남은 Sysstat이 되지 않을까? 싶다.

728x90
728x90

이번 포스팅에서는 시스템 성능 모니터링 도구인 Nmon을 설치해보고 이용해보기로 하겠다.

 

총 2부작으로 이루어질 예정이고,

두 번째 포스팅에서는 실험 환경을 가정해 Nmon Visualizer을 통해 결과를 시각화해보도록 하겠다.

 

 


Nmon이란?

Nmon은 AIX(IBM에서 만든 유닉스 시스템)과 리눅스의 성능 모니터링 도구이다.

 

대화형이며, 옵션을 활용하여 성능 측정 결과를 별도의 파일로 레코드 할 수 있다.

 

출력 가능한 자원 목록

  • CPU
  • Memory
  • Network
  • Disk
  • File System
  • NFS
  • Top Process
    • 시스템에서 실행 중인 상위 프로세스에 대한 통계
  • Resources
    • 다양한 리소스에 대한 정보

 

설치 및 실행

Centos 환경에서 yum install로 다운받아줄 수 있다.

 yum install epel-release
 yum install nmon

 

다운을 완료했으면 아래와 같이 nmon을 입력하면 바로 실행이 된다.

nmon

 

 

 

여기서 h를 입력하면 사용 가능한 옵션이 출력된다.

 

 

모니터링 시행

1. CPU

c(소문자)를 입력하면 CPU의 성능을 수집할 수 있고, C(대문자)를 입력하면 Wide View를 볼 수 있다.

 

이때 여러 지표들이 나타나게 되는데 이에 대한 설명은 아래와 같다.

  • User% : application level에서 실행 중일 때 CPU 사용률
  • Sys% : 커널에서 실행 중일 때의 CPU 사용률
  • Wait%: 디스크의 입출력이 늦어져 해당 프로세스가 idle 상태 가 되는 경우의 비율
  • Idle: 프로세스가 실행되고 있지 않은 상태

 

2. Memory

m(소문자)를 입력하여 메모리의 사용 양상을 확인해볼 수 있다.

  • PageSize : 이때 페이지는 가상 메모리를 일정한 크기로 나눈 블록이다.
  • Ram-Memory : 물리적 메모리
  • Swap-Space

 

3. Disk

d(소문자)를 입력하여 디스크 사용량을 볼 수 있다.

 

 

4. Network

n(소문자)을 입력하여 네트워크 사용량을 확인해볼 수 있다.

 

이때 lo는 loop back이고

실제로 체크해봐야 할 것은 ens33이다.

이는 사용자가 사용하고 있는 이더넷 인터페이스로, 이름은 사용자마다 환경에 따라 다를 수 있다.

 

 


이렇게 해서 Nmon의 설치와 간단한 사용방법을 알아보았다.

 

다음 포스팅에서는 실험 환경을 가정한 후,

Nmon Visualizer을 추가로 설치하여 결과를 시각화하여 저장하는 방법을 알아보도록 하겠다.

728x90

+ Recent posts