어플리케이션이 메시지를 얼마나 빠르게 카프카 가져가고 있는지를 측정하고 있었다.
kafka를 리눅스 쉘에서 확인하면 current-offset 필드를 확인할 수 있는데,
같은 토픽의 모든 파티션 offset을 더하였다.
그리고 1분 후에 offset을 더한 결과와 비교하는 방식으로 대략적인 분당 트래픽 처리량을 계산하였다.
파티션이 적었을 땐 offset을 일일히 더해줘도 큰 문제가 없었다.
받는 데이터가 많아지면서 파티션을 몇 배나 증설하니 슬슬 수동으로 더하기 귀찮아졌다.
offset은 항상 같은 컬럼에 있다는 규칙성이 있으니 한 번의 명령어로 해결하고자 하였다.
아는 명령어를 하나씩 파이프로 이어보고 모르는건 구글링을 해본 결과 아래처럼 입력하여 원하는 결과를 도출할 수 있었다.
ls -l | tail -n +2 | tr -s ' ' | cut -d ' ' -f2 | awk '{sum+=$1} END {print sum}'
하나씩 분석해보자.
- ls -l
- ls -l의 두 번째 필드는 링크 파일의 개수이다. 이 개수를 더하려고 한다.
- ls -l은 예시일 뿐이다. 원하는 명령어를 여기에 입력한다. 카프카 토픽 확인 명령어를 이 위치에 입력했다.
- tail -n +2
- ls -l의 첫 번째 줄은 total이고 두 번째 줄부터 파일 목록이 출력된다.
- 불필요한 줄은 무시하고 출력하기 위한 옵션이다.
- tr -s ' '
- 각 필드마다 탭으로 구분이 되어 있다. 탭 대신 스페이스바 한 칸으로 구분하도록 변경한다.
- 다음 명령어인 cut에서 구분자를 인식하기 위해 변경했다.
- cut -d ' ' -f2
- cut은 필드를 뽑아내는 명령어이다.
- -d는 구분자를 정하는 옵션으로, 기본값은 탭이다. 하지만 -d 없이 원하는 결과가 나오지 않아 tr 명령어를 먼저 사용했다.
- -f2는 구분자를 기준으로 2번째 필드만을 뽑아낸다. 각 줄마다 파일의 링크 개수가 뽑혀나온다.
- awk '{sum+=$1} END {print sum}'
- awk 명령어를 활용하여 덧셈 및 출력을 하게 만들었다.
아래 사진은 mac에서 /bin 디렉토리에 있는 파일들의 용량을 합한 결과이다.
다양한 방법으로 활용할 수가 있는데, 조금 변형하여 function으로 지정한 뒤 Kafka lag 남은 개수를 본다던가 하는 방법이 있다.
'Infra & Dev tools > Mac, Linux' 카테고리의 다른 글
mac IntelliJ에서 창 전환 단축키가 안될 때 (0) | 2021.04.21 |
---|---|
Mac/리눅스에서 특정 포트 사용 여부를 쉽게 확인하는 방법 (0) | 2021.03.06 |