전체 글
-
[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 제한을 둘 수 있을까요 ? ..
-
[Kubernetes] kube-proxy 와 iptables 알아보기Kubernetes 2024. 6. 22. 07:49
- 목차 들어가며.이번 글에서는 Kubernetes 에서 kube-proxy 의 역할과 Network Iptables 에 대해서 알아보려고 합니다.kube-proxy 는 Kubernetes 의 DaemonSet 으로 생성됩니다.그래서 모든 Node 는 각각 1개의 kube-proxy 를 내장하고 있습니다.아래의 명령어는 현재 실행 중인 kube-proxy Daemonset 을 확인하는 명령어이구요.저의 경우에는 5개의 Node 들이 실행 중이기 때문에 kube-proxy 의 Pod 갯수는 5개로 출력되고 있습니다. kubectl get daemonset --all-namespaces --field-selector metadata.name=kube-proxyNAMESPACE NAME ..
-
[Docker] Docker Container 와 PID Namespace 알아보기Docker 2024. 6. 21. 07:24
- 목차 들어가며.Docker Container 는 내부적으로 Linux Namespace 를 통한 Isolation 이 적용됩니다.그래서 Docker Container 는 Host 관점에서 볼 때에 하나의 Linux Process 에 지나지 않습니다.예를 들어, 아래와 같이 3개의 Docker Container 들이 존재하는 상황에서 ps 명령어를 통해 실행 중인 Process 를 확인해봅니다. docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESfb9170705bfa busybox "sleep 10000000" 3 hours ago Up 3 hours ..
-
[Docker] Docker Network 와 Bridge Type Network Interface 알아보기 ( ip link )Docker 2024. 6. 21. 07:18
- 목차 들어가며.이번 글에서는 Docker Network 와 Linux 의 Bridge Type 의 Network Interface 에 대해서 알아보도록 하겠습니다.흔히 사용되는 "docker network create XX" 와 같은 도커 명령어는 Bridge Type 의 Docker Network 를 생성합니다. docker network lsNETWORK ID NAME DRIVER SCOPE54bd3df3a059 bridge bridge local8e98086700d8 host host local6235cc583642 none null local 위의 명령어는 기본적으로 제공되는 Docker Network 의 목록입니다..
-
[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..