분류 전체보기
-
[flink-conf.yaml] jobmanager 메모리 설정 알아보기 ( JVM, Heap, Off-Heap, Overhead )Flink 2024. 7. 11. 05:55
- 목차 들어가며.Apache Flink 의 flink-conf.yaml 파일은 Flink 클러스터의 전반적인 동작과 리소스 관리를 설정하는 설정 파일입니다. 이번 글에서는 flink-conf.yaml 에서 JobManager 메모리를 설정하는 방법과 이를 최적화하는 방법에 대해 알아보겠습니다. jobmanager.memory.process.sizejobmanager.memory.process.size 는 JobManager 라는 하나의 프로세스가 사용할 수 있는 메모리의 총량이라고 생각하시면 됩니다. 사실 일반적인 Process 는 가상 메모리 방식을 사용하기 때문에 그 내부적으로 메모리 제한이 특별히 존재하진 않습니다. 그럼 어떠한 방식으로 Process 에 Memory 제한을 둘 수 있을까요 ? ..
-
[Docker] Docker Container 와 veth ( Virtual Ethernet Network Interface ) 알아보기Docker 2024. 6. 20. 07:24
- 목차 들어가며.이번 글에서는 Docker Container 와 Network Namespace 격리에 대해서 알아보려고 합니다.Docker Container 는 Linux 의 Network Namespace 를 활용하여 Network 를 격리합니다.그 외에 PID, UTS, MOUNT 등의 Namespace 를 통해서 하나의 격리된 Container 를 생성하게 되는데요.이번 글에선 특히 Network Namespace 를 통한 Network Isolation 에 대해서 알아보도록 하겠습니다. veth 이란 ?Linux 의 Network Interface 를 여러 가지 Type 이 존재합니다.Loopback, Dummy, Ethernet, Virtual Ethernet, Bridge 등이 존재합니다...
-
[Linux] cgroup cpu.max 설정 알아보기System 2024. 6. 20. 07:23
- 목차 들어가며.이번 글에서는 Docker 와 Container 가상화 기술의 근간이 되는 cgroup 과 cpu.max 설정에 대해서 알아보도록 하겠습니다.cgroup 은 Control Group 의 약자로 리눅스 커널에서 프로세스들의 리소스 사용을 제한, 추적, 관리하는 기능을 제공합니다.cgroup 을 사용하면 시스템의 CPU, 메모리, I/O 등을 프로세스 그룹 단위로 제한할 수 있으며, 이를 통해 서버 리소스를 효율적으로 분배하고 과도한 리소스 소비를 방지할 수 있습니다. cgroup은 기본적으로 cgroup v1과 cgroup v2 두 가지 버전으로 나뉩니다.cgroup v2는 구조가 단순하고 더 강력한 기능을 제공하는 방식으로 최신 리눅스 배포판에서 기본적으로 사용됩니다. /sys/fs/c..
-
[Linux] unshare 과 PID Namespace 격리 알아보기System 2024. 6. 19. 07:03
- 목차 들어가며.이번 글에서는 Docker 와 같은 Container 가상화 기술의 근간이 되는 PID Namespace 에 대해서 알아봅니다.PID Namespace 격리는 unshare 명령어를 통해서 구현할 수 있습니다.기본적으로 Root Level 의 PID Namespace 가 존재합니다. 아래와 같이 PID 가 1번인 Root Process 를 포함하여 9 ~ 15번에 해당하는 여러 Process 가 생성될 수 있습니다.UID PID PPID C STIME TTY TIME CMDroot 1 0 0 23:58 pts/0 00:00:00 bashroot 9 1 0 23:58 pts/0 00:00:00 sle..
-
[MySQL] innodb_rollback_on_timeout 알아보기 (Lock wait timeout exceeded; try restarting transaction)Database/MySQL 2024. 6. 19. 07:02
- 목차 들어가며.innodb_rollback_on_timeout 은 MySQL InnoDB 스토리지 엔진에서 트랜잭션이 잠금 대기 시간 초과(lock wait timeout) 에 도달했을 때, 해당 트랜잭션을 롤백하는 방식을 결정하는 시스템 변수입니다.innodb_rollback_on_timeout 설정값은 OFF 또는 ON 을 가집니다.기본값은 OFF 입니다. innodb_rollback_on_timeout 이 ON 으로 설정되었을 때에,SQL Session 이 Lock 을 획득하기 위한 대기 시간이 innodb_lock_wait_time 으로 설정된 시간을 초과한다면,SQL Session 이 Rollback 되며 Transaction 이 종료됩니다. 반면에 innodb_rollback_on_time..
-
Debezium Connector 실습 환경 구축하기Kafka/kafka Connect 2024. 6. 19. 07:02
본 글에서는 Debezium Connector 의 실습 환경을 세팅하기 위해서 docker-compose.yaml 을 세팅합니다.3개의 Kafka Broker 와 3개의 Kafka Connect Worker 들로 구성된 클러스터를 구축합니다.그리고 kafka-ui 와 kafka-connect-ui 라는 Kafka 와 관련된 관리자 Web UI 를 함께 실행합니다. 참고로 Kafka Connector Worker 의 경우에는 Debezium Connector Plugin 을 추가한 Docker Image 를 사용하였습니다. docker network create kafkacat /tmp/docker-compose.yamlversion: '3.8'services: kafka1: image: conf..
-
[Kafka Connect] JdbcSourceConnector Bulk Mode 알아보기Kafka/kafka Connect 2024. 6. 18. 05:59
- 목차 들어가며.이번 글에서는 JdbcSourceConnector 의 Bulk Mode 에 대해서 알아보도록 하겠습니다.JdbcSourceConnector 는 크게 두가지 모드로 동작합니다.한가지 방식인 incrementing 모드이고 다른 하나는 bulk 모드입니다.incrementing 모드는 특정 Table 의 모든 Row 들을 하나씩 추출하게 됩니다.만약 Table 의 Primary Key 를 기준으로 incrementing 모드로 데이터 추출을 하게 된다면,Primary Key 1번부터 Row by Row 방식으로 데이터를 처리하게 되죠.아래의 두 링크에서 incrementing 방식의 JdbcSourceConnector 의 동작을 확인할 수 있습니다. https://westlife0615.t..
-
[Kafka Connect] JdbcSourceConnector table.whitelist 알아보기Kafka/kafka Connect 2024. 6. 18. 05:59
- 목차 들어가며.이번 글에서는 JdbcSourceConnector 의 table.whitelist 속성에 대해서 알아보도록 하겠습니다.JdbcSourceConnector 는 Kafka Connect 의 Source Connector 로써 외부 저장소로부터 데이터를 추출하는 작업을 수행합니다.이름처럼 Jdbc Driver 와 호환되는 모든 SQL 기반의 데이터베이스를 그 대상으로 삼습니다.MySQL 과 같은 SQL 기반 데이터베이스를 Table 이라는 논리적은 규격을 정의하고, 그 규격대로 데이터를 생성합니다.JdbcSourceConnector 의 table.whitelist 속성은 JdbcSourceConnector 가 획득해야하는 모든 테이블을의 이름을 작성합니다.이렇게 table.whitelist ..
-
[Kafka Connect] JdbcSourceConnector 구현해보기 (1)Kafka/kafka Connect 2024. 6. 17. 05:59
- 목차 들어가며.이번 글에서는 Kafka Connect 의 JdbcSourceConnector 에 대해서 간단히 알아보는 시간을 가지겠습니다.JdbcSourceConnector 를 실행하기 위해서 Kafka Broker, Zookeeper, Connect Worker 와 MySQL 등 여러가지 요소들이 실행되어야 합니다.또한 Kafka Connect Worker 내부에 JdbcSourceConnector Plugin 도 추가되어야 하는데요.이번 글에선 Docker 환경을 활용해서 JdbcSourceConnector 를 실행해보는 간단한 실습을 진행해보려고 합니다. Kafka Broker 와 Zookeeper 실행하기.먼저 Kafka Broker 와 Zookeeper 를 Docker 를 통해서 실행해보도..
-
[Etcd] Watch 기능 알아보기 ( HTTP2, WatchCreateRequest )Etcd 2024. 6. 17. 05:59
- 목차 들어가며.Etcd 는 Distributed Application 의 상태를 저장하는 저장소로써 동작합니다.일반적인 분산 시스템은 네트워크적으로 떨어져 존재하는데요.하지만 이들은 마치 한 몸처럼 동작해야만 합니다.대표적인 분산 시스템의 예시로써 Kafka 가 존재합니다.보통 3개 이상의 Kafka 서버는 네트워크적으로 떨어져있지만 Kafka Client 는 Kafka Broker 들이 마치 하나의 시스템인 것처럼 보여집니다.즉, 분산 시스템은 멀리 떨어져 있지만 한 몸처럼 동작해야한 하는 것이죠. Kafka 는 Etcd 가 아닌 Zookeeper 를 사용하긴 하지만 Etcd, Zookeepr, Consul 등 이들은 분산 시스템의 상태를 저장하기 위한 저장소로써 동일한 목적을 가집니다.그리고 이러..