728x90

성능 측정은 인프라의 기본입니다.
특히 서버와 네트워크의 성능 측정은 현업에서 자주 요구되는 시험 중 하나입니다. 
다양한 방법의 시험이 있겠지만, 리눅스 환경에서는 iperf라는 걸출한 도구가 있어 시험이 쉽습니다. 
물론 실제 어플리케이션의 성능 측정 등은 nGrinder와 같은 부하 도구를 사용해야 합니다. 


CentOS 환경에 iperf3 설치하기

iperf의 가장 최신 버전은 3 입니다. 
각 리눅스 환경에서 패키지 매니저를 이용하여 쉽게 설치 가능합니다. 
제 경우는 CentOS 환경이라 yum 으로 설치를 진행했습니다. 

$ sudo yum install iperf3
...
...
Dependencies Resolved

======================================================================================================================
 Package                    Arch                       Version                         Repository                Size
======================================================================================================================
Installing:
 iperf3                     x86_64                     3.1.7-2.el7                     base                      79 k

Transaction Summary
======================================================================================================================
Install  1 Package

Total download size: 79 k
...
...
Running transaction
  Installing : iperf3-3.1.7-2.el7.x86_64                                                                          1/1
  Verifying  : iperf3-3.1.7-2.el7.x86_64                                                                          1/1

Installed:
  iperf3.x86_64 0:3.1.7-2.el7

 

기본적인 사용 방법 : 서버와 클라이언트의 구성

iperf3는 서버 역할을 할 데몬과 클라이언트 역할을 할 데몬을 실행함으로써 시험을 수행하게 됩니다. 
성능 측정을 하고자 하는 대상 장비, 인스턴스에서 iperf3를 서버 모드로 실행하고 
다른 장비에서 iperf3를 클라이언트 모드로 실행하여 성능을 측정합니다. 

 

서버 모드로 iperf3 실행하기

iperf3를 서버 모드로 실행하기 위해서는 -s 파라메터를 지정합니다. 
서버의 성능은 대역폭 혹은 전송량으로 표기되는데
-f 파라메터 뒤에 소문자 m, g, t 등을 사용하면 대역폭으로
-f 파라메터 뒤에 대문자 M, G, T 등을 사용하면 전송량으로 표기합니다.

iperf2는 기본적으로 5201 포트로 수신을 합니다만
다른 포트를 사용하기 위해 -p 파라메터와 포트 번호를 지정할 수도 있습니다.

// 서버 모드로 iperf3를 실행
$ iperf3 -s

// 서버 모드로 iperf3를 실행하되 대역폭을 Mbps로 표기
$ iperf3 -s -f m

// 서버 모드로 iperf3를 실행하되 대역폭을 Gbps로 표기
$ iperf3 -s -f g

// 서버 모드로 iperf3를 실행하되 전송량 GB/sec로 표기
$ iperf3 -s -f G

// 기본 포트(5201)가 아닌 지정된 포트로 서버 구동
$ iperf3 -s -f g -p 1234
-----------------------------------------------------------
Server listening on 1234
-----------------------------------------------------------

 

클라이언트 모드로 iperf3 실행하여 시험 수행하기

서버를 구동했다면 이제 클라이언트를 구동할 차례입니다. 
옵션은 서버로 쓸때와 비슷한데요
접속 대상 iperf3 서버 IP를 -c 옵션으로 지정한다는 정도의 차이가 있습니다. 

// 서버 10.20.30.40 으로 시험 패킷을 전송
$ iperf3 -c 10.20.30.40

// 서버 10.20.30.40를 1234번 포트로 연결하여 시험 패킷을 전송
$ iperf3 -c 10.20.30.40 -p 1234

// 시험 패킷을 전송하되 단위를 Mbps로 표기
$ iperf3 -c 10.20.30.40 -p 1234 -f m

// 시험 패킷을 전송하되 단위를 MB/sec로 표기
$ iperf3 -c 10.20.30.40 -p 1234 -f M

 

시험 심화 : UDP 시험

기본적으로 iperf3는 TCP 시험을 수행합니다.
그런데 UDP 도 널리 쓰이고 있기 때문에 시험이 필요할 수 있습니다.
이때는 다음과 같이 -u 옵션을 사용하면 됩니다. 
서버는 -u 옵션을 사용하지 않아도 되고, 클라이언트에서만 -u 옵션을 사용하면 됩니다.

$ iperf3 -c 10.20.30.40 -p 1234 -f M -u
Connecting to host 10.20.30.40, port 1234
[  4] local 10.20.30.50 port 32888 connected to 10.20.30.40 port 1234
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.00   sec   116 KBytes  0.11 MBytes/sec  82
[  4]   1.00-2.00   sec   129 KBytes  0.13 MBytes/sec  91
[  4]   2.00-3.00   sec   127 KBytes  0.12 MBytes/sec  90
[  4]   3.00-4.00   sec   129 KBytes  0.13 MBytes/sec  91
[  4]   4.00-5.00   sec   127 KBytes  0.12 MBytes/sec  90
[  4]   5.00-6.00   sec   129 KBytes  0.13 MBytes/sec  91
[  4]   6.00-7.00   sec   127 KBytes  0.12 MBytes/sec  90
[  4]   7.00-8.00   sec   129 KBytes  0.13 MBytes/sec  91
[  4]   8.00-9.00   sec   127 KBytes  0.12 MBytes/sec  90
[  4]   9.00-10.00  sec   129 KBytes  0.13 MBytes/sec  91
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-10.00  sec  1.24 MBytes  0.12 MBytes/sec  0.006 ms  0/897 (0%)
[  4] Sent 897 datagrams

iperf Done.

 

시험 심화 : 다중 TCP 연결 시험

현실의 서버들은 단일 TCP 연결이 아니라 다중 TCP 연결을 쓰게 됩니다. 
iperf3는 이런 상황을 대비하여 다중 스트림을 쏠 수 있는 기능도 제공합니다.
-t 옵션을 사용하면서 뒤에 스트림 숫자를 지정해 주면 됩니다. 

$  iperf3 -c 10.20.30.40 -p 1234 -f m -P 20

 


소개한 옵션들은 사실 기본적인 옵션들입니다. 
각자의 상황에 필요한 옵션은 공식 문서를 통해 찾아 보는게 좋겠습니다!

https://github.com/esnet/iperf

 

GitHub - esnet/iperf: iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool

iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool - GitHub - esnet/iperf: iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool

github.com

 

728x90
728x90

앞선 글에서 계속 이어집니다.
별 내용은 없습니다만, 앞의 글은 아래 링크로 보실 수 있습니다. 

 

SRE와 DevOps의 차이는 무엇일까? #1 (부제 - SRE는 무엇을 해야 하는가)

구글이 NEXT 2018의 IO116 세션으로 발표했던 Improving Reliability with Error Budgets, Metrics and Tracing in Stackdriver를 읽으면서 일부 내용을 요약해 봤습니다. 내용을 읽으면서 한번 요약을 해보고 이..

ondemand.tistory.com

 


 

  • 증상을 모니터링해야 한다, 원인이 아니라...
  • 너무 많은 알람은 도움이 되지 않는다

 

  • 에러 버짓이 너무 빨리 줄어들면 -> 예산이 소진되기 전에 응답해야 한다
  • 에러 버짓이 너무 천천히 줄어들면 -> 장기 개선 과제를 통해 펄스 알람을 피해야 한다

 

  • 꼭 Stackdriver를 써야 하는 것은 아님
  • SLO 모니터링은 어떻게 정의하는 가
    • 지연과 가용성중 어느 것을 기준으로 삼을 것인지 결정
    • SLI 임계치를 설정
    • 모니터링 윈도우(=컴플라이언스 기간) 정의
    • 요청수를 기준으로 할지 정상/비정상 시간을 기준으로 할지 결정
    • 결국 에러 버짓이 떨어질 때 알람을 발생시켜야 함

 

Stackdriver를 비롯하여 사용가능한 도구가 다르기 때문에... 장표 막 넘기고 4컷으로 요약

일단 알러팅이 정확해야 지치지 않는다

하나씩 레이어를 치우면서 원인을 찾아보자

서로 다른 도메인의 데이터를 관계시켜 원인을 찾아보자

추적 데이터, 높은 빈도로 출현하는 데이터의 조합?
이를 바탕으로 가설을 세우고 시험해 보는 것은 빠른 원인 판단에 도움이 됨

 

728x90
728x90

구글이 NEXT 2018의 IO116 세션으로 발표했던
Improving Reliability with Error Budgets, Metrics and Tracing in Stackdriver를 읽으면서  일부 내용을 요약해 봤습니다. 

내용을 읽으면서 한번 요약을 해보고
이후에는 제가 생각하는 SRE의 R&R에 대해서 
이야기 해볼까 합니다. 


 

Agile이 동작하는 구간은 Business to Development 의 구간 
DevOps는 Development to Operations 구간에서 동작

 

DevOps = Practices, Guidelines, Culture
Site Reliability Engineering = Practices, Beliefs for Practices, Job role

SRE가 Operation을 대하는 자세는 
- 자동화에 큰 관심과 노력을 기울여야 하고 
- sysadmin 들이 보통 해오던 일들과 도구를 통해 같은 역할을 수행 
- 신뢰성 있는, 운영하기 좋은 서비스 아키텍쳐를 from the scratch 로 디자인

SRE = 시스템 엔지니어링과 소프트웨어 개발의 교차로

 

SRE가 신경써야 하는 Practices들.
오너십의 분산, 에러 예산 내에서의 에러 수용 -> 실패 비용 줄이기, 자동화, 측정

 

 

인터렉션은 어떻게 정의해야 하는가?
분산되어 있는 서비스 전반에 걸쳐 요청과 응답이 문제 없는가?

 

결국 이런것, 즉 정상 여부를 판별할 수 있는 기준이 필요하고
SLI (Service Level Indicator) = 좋은 상태인지 구분할 수 있는 측정치
SLO (Service Level Objective) = SLI가 도달해야 하는 최상단 목표 수치
SLA (Service Level Agreement) = SLO 추구의 결과
의 3종 셋트를 정의할 수 있어야 한다.

(To be continued...)

728x90
728x90

IT 분야에서 근 2~3년 동안 가장 뜨거운 화두는 역시 쿠버네티스 Kubernetes 입니다. 
그동안 리눅스에 대한 지식이 DevOps, Infrastructure Engineer의 기본 소양이었다면
이제는 쿠버네티스에 대한 지식이 가장 뜨거운 화두입니다.

쿠버네티스를 실전에서 써볼 환경이 되지 않는다면 
역시 자격증 공부를 통해서 지식을 쌓는 것이 좋습니다. 
다만 쿠버네티스 자격시험은 랩 중심의 시험이기 때문에 
단순히 암기하고 답을 찾는 시험이 아니라서 준비가 쉽지는 않다고 합니다. 


CKAD 강의 추천 - 뭄샤드 형님의 Udemy 강의!

CKAD는 Certified Kubernetes Application Developer 의 약자로
개발자가 쿠버네티스 환경에서 동작하는 어플리케이션을 설계, 개발할 때 필요한 
쿠버네티스 기본 지식과 클라우드 네이티브 환경에 대한 지식을 테스트 하는 시험입니다. 

CKAD 일타강사, 뭄샤드 형님

유데미 Udemy 에서 가장 많은 수강생을 갖고 있는 강의가
바로 쿠버네티스 강의 계의 아이돌, 뭄샤드 형님의 CKAD 강의입니다. 
연초라 그런지 할인중이라 12,000원에 Unlimited 강의 수강이 가능합니다. 

뭄샤드 형님은 따로 Kode Kloud 라는 본인의 서비스도 운영중이며 
유데미 강의 수강자들을 대상으로 Kode Kloud 에서 랩을 무료로 참여할 수 있도록
각 강의에서 리딤 코드도 제공하고 있습니다. 

이론 강의는 유데미에서 듣고 Kode Kloud에서 무료로
랩 실습까지 해볼 수 있는데 가격이 참 착하죠?
연초라 할인이 많이 들어가 있는 느낌입니다!

=> 뭄샤드의 CKAD 유데미 강의 살펴보기 [바로가기]

 

CKA 강의 추천 - 역시, 뭄샤드 형님의 Udemy 강의!

CKA는 Certified Kuberneted Administrator 의 약자로 
DevOps 엔지니어나 Infra Engineer를 위한 Administrator 역량 시험이라 보면 되겠습니다. 
클라우드 네이티브 환경에서의 개발 보다는 아케텍쳐 설계와 운영, 관리에 촛점이 맞춰져 있습니다. 

CKA도 일타강사는 뭄샤드 형님!

2만원 정도로 할인 판매할 때 샀던 강의인데
역시 연초라 12,000원에 Unlimited 강의 수강이 열려 있습니다.
CKAD 와 마찬가지로 Kode Kloud 강의가 같이 제공됩니다.

=> 뭄샤드의 CKA 유데미 강의 살펴보기 [바로가기]

 

새해 맞이 유데미 신년 스타터 팩 보너스도 받자!

유데미는 온라인 강의로 유명한 곳인데요,
2022년 신년을 맞이하여 여러가지 프로모션이 진행중입니다. 
개별 강의 할인과 더불어 "신년 스타터 팩 보너스"가 제공되고 있습니다. 

 

1월 6일까지 어떤 강의든 구매하는 분들에게 제공된다고 하니
기왕 2022년 새로운 공부를 시작하기로 마음 먹었다면
지금 바로 강의를 구매하고 신년 스타터 팩 보너스도 받아 보세요!

참고로 유데미는 30일 무상환불제도를 시행하고 있습니다. 
구매한 강의가 생각보다 별로라고 생각되면 30일 이내에 리펀드 요청도 가능하니
싸다고 사는게 아닌, 나한테 진짜 필요한 강의를 찾아
부담 없이 지식을 늘려나가 보시기 바랍니다!

=> 유데미 2022년 할인 강의 자세히 살펴보기 [바로가기]


2021년 마지막 날까지 열심히 CKA 강의를 들었습니다. 
진도율 100% 채우고 이제 Kode Kloud 에서
랩 실습과 함께 모의 시험을 가지고 연습하는 중입니다. 

1월중으로 CKA를 먼저 취득하고 
곧 CKAD 까지 2월내에 취득해 보도록 해야겠습니다!

 

 

(추가. 2022.09)
참고로, 추천해드린 뭄샤드 형님의 CKA 강의를 듣고 2022년 9월 시험에 합격했습니다. 시험 합격 후기와 시험 꿀팁, 가상 시험 환경에 대한 이야기는 다음의 포스팅에서 간략하게 정리를 해보았습니다. 시험을 준비하고 계시다면 조금이나마 도움이 될 것 같습니다!

 

따끈따끈한 CKA(Certified Kubenetes Administrator) 2022 버전 자격 취득 후기(2022.09월)

참 오래걸렸습니다. 처음 CKA 자격증을 취득해 보자고 생각했던 것이 작년 이맘때이니 정확히 1년되는 시점에 자격증을 취득했습니다. 이걸 정확히 기억하는 이유가, 시험 응시를 계획하던 시점

ondemand.tistory.com

 

 

본 포스팅은 제휴마케팅을 통해 일정 수수료를 지급 받을 수 있습니다. 
다만 실제 CKA 강의를 수강하면서 감명받아
자발적인 홍보를 하고 있다는 점 참고하시기 바랍니다!

728x90

+ Recent posts