분류 전체보기152 [OS] 스왑 메모리란? – 시스템의 숨겨진 메모리 공간, 친구일까 적일까?"메모리는 부족한데 시스템은 멈추지 않고 돌아간다?"이럴 때 등장하는 비장의 카드가 바로 **스왑(Swap)**입니다.📌 스왑 메모리란?**스왑 메모리(Swap Memory)**는 RAM이 부족할 때 디스크 공간을 임시 메모리처럼 사용하는 영역입니다.즉, 실제 물리 메모리가 꽉 찼을 때, 사용하지 않는 데이터를 디스크로 옮겨 RAM을 확보하는 방식입니다.리눅스/유닉스 계열 시스템에서는 일반적으로 swap partition 또는 swap file을 만들어 사용합니다.🔧 스왑 동작 방식 (간단히)RAM이 부족해짐커널이 사용 빈도가 낮은 메모리 페이지를 Swap 공간으로 이동필요한 경우 다시 디스크에서 RAM으로 재로딩⚙️ 스왑의 종류종류 설명스왑 파티션디.. 2025. 6. 7. [Ansible] Ansible이란 무엇인가? 🔍 Ansible이란?Ansible은 오픈소스로 개발된 IT 자동화 도구입니다.서버 설정, 애플리케이션 배포, 시스템 업데이트, 클라우드 인프라 구성 등을 코드로 작성하고 자동화할 수 있습니다.개발사: Red Hat (2015년 인수)언어: Python 기반방식: 에이전트리스(Agentless) – 대상 서버에 별도 설치 없이 작동실행 방식: SSH 혹은 WinRM✅ Ansible의 핵심 특징기능 설명🧩 Agentless대상 서버에 별도 소프트웨어 설치 필요 없음📦 Idempotent몇 번 실행해도 항상 같은 결과 보장 (변경 사항만 반영)📄 YAML 기반 구성사람이 읽기 쉬운 Playbook 형식🔗 모듈화다양한 OS/서비스/클라우드 모듈 내장 (ex. systemd, yum, docker, a.. 2025. 6. 7. [Kafka] 컨슈머 리밸런싱: 파티션 할당 전략 깊이 있게 이해하기 리밸런싱의 종류1. 적극적 리밸런싱(Eager Rebalance) - '레인지(Range), 라운드 로빈(RoundRobin), 스티키(Sticky)이 사용하는 전략- 리밸런싱이 일어나는 경우 모든 컨슈머가 데이터 수신을 중단하고 파티션 그룹 구성 포기함 이로인해 모든 작업을 멈추는 stop the wolrd 현상 일어남- 리밸런싱 이후에 컨슈머들이 새롭게 파티션을 할당 받는 방식 순서1. 모든 컨슈머는 아파치 카프카로부터 데이터 수신을 중단.2. 자신들이 가지고 있던 파티션의 그룹 구성을 포기 (대기 시간 동안에는 LAG가 급격하게 증가).3. 리밸런싱 이후에는 컨슈머들이 그룹에 다시 참여하고, 새로운 파티션을 할당 받음. 2. 협력적 리밸런싱(Cooperative Rebalance, Incremen.. 2025. 5. 30. Prometheus의 한계를 넘다 – Thanos 완전 정복 가이드 Prometheus는 클라우드 네이티브 환경에서 가장 널리 쓰이는 모니터링 시스템입니다. 하지만 장기 저장이 어렵고, 수평 확장이 어렵고, 전역에서 메트릭을 조회할 수 없는 치명적인 단점이 있죠.바로 이런 문제를 해결하기 위해 등장한 솔루션이 있습니다. 이름부터 강력한 Thanos. 이번 글에서는 Thanos가 어떤 시스템이고, 어떻게 Prometheus를 확장하는지, 어떤 컴포넌트로 구성되는지를 차근차근 살펴보겠습니다.🧠 Thanos란?Thanos는 Prometheus 기반 모니터링 시스템을 클라우드 네이티브 환경에 맞게 ‘확장’하고 ‘장기 저장소’를 제공하는 오픈소스 프로젝트입니다.CNCF(Cloud Native Computing Foundation)의 Incubating 프로젝트로, 대규모 인프라.. 2025. 4. 23. Elasticsearch Data Streams 시계열 데이터를 다루는 많은 엔지니어들이 직면하는 문제가 있습니다. 시간이 지남에 따라 계속 쌓이는 로그, 메트릭, 이벤트 데이터를 어떻게 효율적으로 관리할 것인가? 특히 대규모 환경에서는 이러한 데이터의 저장, 관리, 쿼리가 상당한 도전이 됩니다. Elasticsearch의 Data Streams 기능은 이런 문제를 해결하기 위한 우아한 솔루션을 제공합니다.Data Streams란 무엇인가?Elasticsearch 7.9 버전에서 정식 출시된 Data Streams는 시계열 데이터를 위한 특별한 추상화 계층입니다. 기존에 여러 개의 인덱스를 수동으로 관리하던 방식에서 벗어나, 마치 하나의 인덱스처럼 동작하는 데이터 관리 패러다임을 제공합니다.가장 중요한 점은 Data Streams가 백엔드에서 여러 인.. 2025. 3. 27. [k8s] API Groups 란? Kubernetes API Groups: 체계적인 리소스 관리의 핵심Kubernetes는 대규모 컨테이너화된 애플리케이션을 관리하기 위한 강력한 오케스트레이션 플랫폼입니다. 이러한 복잡한 시스템을 효율적으로 관리하기 위해서는 잘 구성된 API 구조가 필요합니다. Kubernetes의 핵심 개념 중 하나인 API Groups에 대해 자세히 알아보겠습니다.API Groups란 무엇인가?API Groups는 관련된 Kubernetes 리소스를 논리적으로 그룹화한 것입니다. 이것은 Kubernetes API를 구조화하고 확장성을 제공하는 중요한 메커니즘으로, 특히 RBAC(Role-Based Access Control)와 같은 권한 관리 시스템에서 핵심적인 역할을 합니다.Kubernetes가 처음 설계되었을 때.. 2025. 3. 26. [Database] INSERT 작업 최적화: 부하 감소를 위한 실용적인 접근법 데이터베이스는 많은 애플리케이션의 핵심 구성 요소입니다. 특히 대량의 데이터를 처리하는 서비스에서 INSERT 작업은 성능에 상당한 영향을 미칠 수 있습니다. 이 글에서는 데이터베이스 INSERT 작업 시 부하를 줄이는 다양한 방법과 실제 예시를 살펴보겠습니다.1. 효율적인 INSERT 구문 사용하기기본 INSERT vs 특수 INSERT 구문INSERT IGNORE 대신 ON DUPLICATE KEY UPDATE 사용INSERT IGNORE는 충돌이 발생할 경우 오류를 무시하고 작업을 계속합니다. 하지만 이 방식은 모든 경우에 최적이 아닙니다.-- 일반적으로 사용되는 방식INSERT IGNORE INTO users (id, name, email, created_by) VALUES (1, 'John', .. 2025. 3. 20. [MySQL] 중복 데이터 처리하기: INSERT IGNORE, REPLACE INTO, ON DUPLICATE KEY UPDATE 가이드 개요데이터베이스 작업에서 중복 키 처리는 매우 중요한 부분입니다. MySQL은 이러한 중복 상황을 처리하기 위한 여러 방법을 제공하고 있습니다. 이 포스트에서는 INSERT IGNORE, REPLACE INTO, ON DUPLICATE KEY UPDATE 세 가지 방식에 대해 각각의 특징, 장단점, 그리고 적절한 사용 시나리오를 살펴보겠습니다.중복 키란?중복 키(Duplicate Key)는 테이블에 이미 존재하는 고유 값(UNIQUE 또는 PRIMARY KEY)과 동일한 값을 다시 삽입하려 할 때 발생합니다. 기본적으로 MySQL은 중복 키 삽입 시도 시 에러를 발생시키지만, 이를 다양한 방식으로 처리할 수 있습니다.예를 들어, 다음과 같은 users 테이블이 있다고 가정해 보겠습니다:CREATE TAB.. 2025. 3. 20. [Mysql] pt-online-schema-change 로 서비스 중단 없이 데이터베이스 스키마 변경하기 개요이 글에서는 운영 환경에서 스키마 변경이 필요할 경우, 어떻게 무중단 변경을 수행하는지 살펴보고. 관련해서 Mysql Online DDL, pt-online-schema-change 에 대해서 알아봅니다. 상황회사에서 사용하는 프로그램에서 요청 결과를 log 형식으로 데이터베이스에 저장하고 있습니다. 시간이 흘러 데이터가 많이 쌓였고, 자연스레 쿼리 성능이 떨어지기 시작했습니다. 확인해보니 34,977,366개의 데이터가 쌓여있었고 인덱스 개선을 통해 이를 개선해보기 결정했습니다. Mysql 8.0 을 사용 중이기 때문에 Mysql Online DDL(https://mystudylab.tistory.com/207) 을 활용해도 되었지만, 테이블의 크기가 크고 DML 이 자주 일어나는 테이블에 적용하면.. 2025. 3. 17. [Mysql] MySQL Online DDL 개요이 글에서는 Mysql Online DDL에 대해서 알아봅니다.MySQL Online DDLMySQL의 Online DDL은 테이블 구조를 변경하면서도 서비스 중단을 최소화하기 위해 설계되었습니다. 등장 전에는 스키마 변경 시, 무조건 테이블 전체 락이 걸리기 때문에 운영 환경에서 사용하기 어려움이 있었습니다.데이터가 많을 수록 중단 시간은 더 오래걸리기 때문에 다른 전략이 필요헀고, DBA들은 복잡한 우회 방법을 개발해야 했습니다:수동으로 새 테이블 생성 후 데이터 일괄 복사트리거를 사용한 변경 내용 동기화테이블 스왑 및 애플리케이션 재시작MySQL 5.6 버전부터 공식적으로 Online DDL 기능을 도입되었고. 이 기능을 통해 많은 ALTER TABLE 작업을 테이블에 대한 전체 락(lock)을.. 2025. 3. 17. 이전 1 2 3 4 ··· 16 다음