분산 시스템과 병렬 시스템
분산 시스템은 네트워크로 연결된 여러 컴퓨터가 협력하여 작업을 수행하는 시스템이며, 클라우드 컴퓨팅과 P2P 네트워크가 예시입니다. 병렬 시스템은 하나의 작업을 여러 하위 작업으로 나누어 동시에 처리하여 성능을 향상시키는 시스템으로, 다중 코어 CPU와 GPU가 이에 해당합니다.
분산 시스템의 기술로는 하둡, Apache Spark, Kafka, Flink과 같은 데이터 처리 및 스트리밍 프레임워크가 있습니다. NoSQL 데이터베이스로는 Cassandra와 HBase가 대용량 데이터 관리에 활용되며, 클라우드 기반으로는 Google BigQuery, Amazon Redshift, Microsoft Azure HDInsight 등이 데이터 분석을 지원합니다.
병렬 시스템 기술은 여러 작업을 동시에 처리하여 성능을 향상시키는 기술로, 멀티스레딩, 멀티프로세싱, GPU 가속, 클러스터링, 분산 컴퓨팅 등이 포함됩니다. 이러한 기술은 대용량 데이터 처리와 과학적/기술적 계산에서 중요한 역할을 합니다.
로드밸런서 알고리즘
- 라운드 로빈 (Round Robin): 클라이언트 요청을 순서대로 각 서버에 차례대로 할당하는 방식입니다. 서버들 간에 균등한 부하 분산을 도모하지만, 서버의 성능 차이를 고려하지 않기 때문에 부하 분산이 불균형할 수 있습니다.
- 가중 라운드 로빈 (Weighted Round Robin): 각 서버에 가중치를 부여하여 서버의 성능을 반영한 로드 분배를 수행합니다. 성능이 우수한 서버에 더 많은 트래픽을 할당할 수 있어 효율적인 분산을 가능하게 합니다.
- 최소 연결 (Least Connections): 현재 연결된 클라이언트 수가 가장 적은 서버에 클라이언트 요청을 할당하는 방식입니다. 서버의 현재 부하를 고려하여 트래픽을 분산하므로 부하 분산이 상대적으로 균등하게 이루어집니다.
- 가중 최소 연결 (Weighted Least Connections): 서버의 가중치를 고려하여 최소 연결 알고리즘을 확장한 방식으로, 가중치가 높은 서버에 더 많은 연결을 할당합니다.
- 최소 응답 시간 (Least Response Time): 서버들의 응답 시간을 모니터링하고, 가장 빠른 응답 시간을 보이는 서버에 트래픽을 할당합니다. 응답 시간이 빠른 서버에게 더 많은 요청을 보내 부하를 분산합니다.
- IP 해시 (IP Hash): 클라이언트의 IP 주소를 해시하여 얻은 값을 기반으로 서버를 선택하는 방식입니다. 같은 클라이언트는 항상 같은 서버로 연결되므로 세션 일관성을 유지할 수 있습니다.
- 지역성 기반 (Location-Based): 클라이언트의 지리적 위치 정보나 네트워크 근접성을 고려하여 가장 가까운 서버에 트래픽을 보내는 방식입니다. 지역적으로 가까운 서버에 연결함으로써 지연을 최소화할 수 있습니다.
람다 부하테스트
- 콜드 스타트 초기: 초기에는 콜드 스타트로 인해 람다 함수의 응답 시간이 상대적으로 길어질 수 있습니다. 따라서 처리량은 낮을 것으로 예상됩니다. 이 단계에서는 함수의 초기화와 필요한 리소스의 확보 등이 이루어지기 때문입니다.
- 웜 스타트 (Warm Start): 처음 몇 번의 콜드 스타트 후, 람다 함수는 웜 스타트 상태로 전환됩니다. 이때부터는 콜드 스타트의 초기화 작업이 생략되고, 함수가 더 빠르게 응답합니다. 따라서 처리량이 상승하게 됩니다.
- 부하 증가와 콜드 스타트 영향: 부하가 증가하면서 콜드 스타트가 발생하는 경우, 응답 시간이 늘어나고 처리량이 일시적으로 감소할 수 있습니다. 이는 새로운 요청이 들어올 때마다 새로운 인스턴스가 생성되기 때문입니다.
- 웜 스타트 상태에서의 안정성: 웜 스타트 상태에서는 콜드 스타트 영향이 줄어들어 처리량이 안정적으로 유지될 수 있습니다. 더 이상 초기화 지연이 발생하지 않으며, 응답 시간과 처리량이 일정한 수준으로 유지됩니다.
'DevOps BootCamp > CS 면접' 카테고리의 다른 글
Pinpoint (0) | 2023.09.24 |
---|---|
애플리케이션 성능 모니터링(APM) (0) | 2023.09.07 |
웹, 서버, 네트워크, 엔터프라이즈 시스템 (0) | 2023.08.14 |
(stateful, stateless), (L3, L4 브릿지), Git flow, OSI 7계층, shell script(경험) (0) | 2023.08.02 |
자주 물어보는 질문 (0) | 2023.07.26 |