반응형
개요
Kafka는 대용량 메시지 처리를 상정하고 개발 된 시스템이다.
Kafka는 토픽으로 전송 받은 메시지를 로그 형식으로 저장하고 있으며, 이를 압축하는 기능을 제공한다.
3가지 압축방식을 지원하는데 압축에 따라서 메시징 성능에 영향을 끼친다.
압축 방식
Snappy
Google에서 C++을 사용해 개발한 압축 라이브러리
적정 수준의 압축률에 빠른 압축 및 해제를 목표로 개발됨
일반적으로 초당 250MB 압축
CPU 사용률이 상대적으로 적고 빠름
압축률은 상대적으로 낮음
Gzip
UNIX 시스템에서 쓰이던 압축 프로그램을 대체하기 위해 개발됨
무손실 압축 지원
ZIP과 같은 DEFLATE 알고리즘 사용
여러 파일 압축을 지원 안해서 tar와 같이 사용됨
Lz4
빠른 무손실 압축 및 해제 속도를 목표로 개발된 알고리즘
DEFLATE 알고리즘에 비해 압축률은 낮음
속도는 일반적으로 CPU 코어 당 500MB/s
압축 속도를 동적으로 조정 가능
성능평가
서버사양
측정 지표
결과
결론 및 평가
Gzip의 압축률이 가장 우수
Gzip은 CPU 사용률이 메시지에 따라서 편차를 보임, 그 외에는 일관된 사용율을 보임
속도관련 측정이 없음
CPU 코어에 따른 측정이 없음
테스트 케이스가 부족함
테스트 케이스에 대한 정보도 없음
REFERENCE
- 데이터 압축 방식에 따른 대용량 분산 메시징 시스템 성능 분석, [2021년 한국컴퓨터종합학숙대회 논문집] - 황윤영, 이필원, 신용태
반응형
'개발 일지' 카테고리의 다른 글
Flutter & Dart 개발환경 구성 (feat. IntelliJ) (0) | 2023.04.16 |
---|---|
MSA Transaction 전략 (LLTs) - SAGA 패턴 (0) | 2023.04.16 |
Arthas 란 (2) | 2022.11.25 |
자동화 공격이란 (0) | 2022.11.25 |
DID 란 (0) | 2022.11.25 |