일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- nandtotetris
- performance스키마
- innodb 버퍼풀
- mysql 구조
- 온라인 ddl
- sessionManager
- mysql 엔진
- 도커
- Terraform
- x lock s lock
- 밑바닥부터 구현하는 컴퓨팅 시스템
- innodb구조
- InnoDB
- ix is lock
- mysql 아키텍쳐
- S3 Gateway Endpoint
- 안전하게 테이블 변경
- BastianHost
- S3 private통신
- s3
- 마운트
- ec2
- S3 Interface Endpoint
- s3 sync
- 리눅스
- MySQL
- 운용 시 유용한 쿼리
- 어뎁티브 해시 인덱스
- 필수 스크립트
- SessionManager 터널링
- Today
- Total
목록분류 전체보기 (80)
이것이 점프 투 공작소
리눅스 네임스페이스란? 리눅스에서 프로세스를 격리 시킬 수 있는 가상화 기술입니다. cgroup은 자원의 양을 제한한다면 namespace는 자원의 종류를 제한합니다. 네임스페이스의 종류 종류 설명 PID Process ID를 격리하여, 네임스페이스 외 다른 프로세스에 접근이 불가능하게 합니다. NetWork IP, 포트, 라우팅 테이블 등 네트워크 리소스를 격리합니다. User 프로세스별 UID, GID 정보를 격리합니다. Mount 프로세스별 마운트되는 파일시스템을 격리합니다. 지정된 파일시스템을 루트처럼 생각하여 동작하게됩니다. IPC IPC(프로세스간 통신)를 격리하여, 다른 프로세스의 접근이나 제어를 방지합니다. UTS 호스트명이나 도메인 명을 격리합니다. Time 시간을 격리시킬 수 있습니다...
cgroup이란? 리눅스에서 컨테이너를 구성하는 3가지 주요 기술 중 하나로, 프로세스들이 사용하는 시스템 자원의 사용정보를 수집 및 제한 시키는 커널의 기능입니다. cgroup 사용 가능한 서브시스템 CPU - 스케줄러를 이용해 cgroup에 속한 프로세스의 CPU 사용시간을 제어 Memory - cgroup에 속한 프로세스의 메모리 사용량 제어 freezer - cgroup의 작업을 일시 중지하거나 다시 시작 blkio - cgroup에 블록 장치에 대한 I/O 제한을 설정 net_cls - 트래픽 컨트롤러(tc)가 특정 cgroup 적업에서 발생하는 패킷을 식별하게 하는 네트워크 패킷 태그를 지정 cpuset - 개별 CPU 메모리 노드를 cgroup에 할당 cpuacct - cgoup이 사용한 C..
1. 처리량 초당 전송되는 데이터의 양을 의미합니다. 2. IOPS 초당 IO 요청 개수를 의미합니다. SSD의 경우 최대 I/O크기는 256 KiB, HDD의 경우는 1,024KiB 입니다. 3. 읽기/쓰기 비율 페이지 캐시를 공유합니다, 페이지 캐시 크기가 작을 수록 캐시 미스가 많아집니다. 4. 동기적 쓰기 비율 비동기적인 쓰기에 대하여 성능차이가 매우 크게 나타납니다. 비동기적인 쓰기의 경우 페이지 캐시를 참조합니다. 디스크 접근 유/무의 차이 비동기적 I/O 방식 페이지 캐시란? (읽기 성능 개선) 디스크의 입출력을 최소화 하기 위해 디스크 접근이 필요한 데이터를 물리 메모리(RAM)에 페이지 단위로 저장합니다. 페이지 캐시에 있는 데이터에 대한 접근이 발생하면 디스크에서 처리하지 않고 캐시의 ..
OOM Killer (Out of Memory Killer)란? 메모리가 부족할 경우 운영체제의 설정에 따라 특정 어플리 케이션을 강제로 종료하는 기능입니다. OOM Killer가 동작에 대해서는 /var/log/syslog에 로그가 남게 됩니다. oom_score란? OOM_Killer에서 가지는 종료 기준값으로 가장 높은 oom_score를 먼저 종료시킵니다. score는 0 ~ 1000까지의 범위를 가지게 됩니다. /proc//oom_score 명령어를 통해 해당 프로세스의 oom_score를 조회 할 수 있습니다. 기본적으로 리눅스에서 1번 init프로세스는 0 의 oom_score값을 가집니다. (저는 wsl을 통해 조회해서 666이 나왔습니다.) oom_score의 선정기준 oom_score를..
CSF(Completely Fair Scheduler ) 스케줄러란? 2.6.23커널 버전에서 등장한 리눅스의 일반 프로세스용 스케줄러입니다. 프로세스의 응답시간을 빠르게 하고 시스템 사용률을 최대화 하기 위해 사용됩니다. CFS를 이루는 구성요소(개념) 타임슬라이스(time slice) 프로세스가 부여한 실행 시간입니다. 주어진 타임슬라이스값을 다 사용하면 선점 스케줄링 대상이 되고 이후 문맥교환이 이루어집니다. 시스템 클럭이 한 틱 지날 때 마다 그 틱에 해당하는 시간만큼 타임슬라이스가 줄어듭니다, 0이되면 타임슬라이스가 0보다 큰 프로세스가 해당 프로세스를 선점합니다. 기본값은 1ms입니다. 이 값을 최소 세밀도(minimum granualarity)라고합니다. 프로세스 우선순위(priority) ..
가상메모리란? 프로세스가 바라보는 물리 메모리를 추상화 한 공간입니다. 페이징기법을 통해 관리됩니다. 실행하려는 프로그램의 일부만 실제 메모리에 적재하여 실제 물리 메모리 크기보다 큰 프로세스를 실행 할 수 있게 해줍니다. MMU(Memory Management Unit) MMU(Memory Management Unit)는 가상 메모리를 사용하기 위한 하드웨어 장치입니다. 가상주소(프로세스가 참조하는 주소)를 물리주소(실제 메모리 주소)로 변환해주는 역할을 수행합니다. TLB(Translation Lookaside buffer)는 가상메모리가 사용하는 페이지테이블(paging table)의 캐시를 저장합니다. (perf로 확인 가능합니다.) 논리주소와 물리주소 논리주소 Logical address CPU..
FD(File Descriptor)란? 프로세스에서 열린 파일 목록을 관리하는 테이블의 인덱스입니다. 리눅스, 유닉스 시스템에서는 정규파일, 디렉토리, 소켓, 블록 디바이스 등 모든것을 파일로 취급하여 관리합니다. 시스템에서 프로세스가 파일들에 접근할때 FD를 통해 접근하게 됩니다. FD는 0이 아닌 정수값으로, 프로세스가 실행중에 파일을 open하면 커널은 해당 프로세스의 FD 숫자 중에 사용하지 않는 가장 작은 값을 할당해줍니다. FD의 특징 0이 아닌 정수값을 가집니다. 파일마다 독립적으로 존재하며, 시스템에 따라 다른 구조를 가집니다. 대게 보조기억장치에 저장되어 있다가 파일이 열릴때 주기억장치로 이동합니다. 프로세스 실행시 기본적으로 0(표준입력),1(표준출력),2(표준에러) 의 FD가 할당됩니..
version.tf provider "aws" { region = "ap-northeast-2" } vpc.tf resource "aws_vpc" "vpc" { cidr_block = "10.0.0.0/16" tags = { Name = "asg-vpc" } } vpc를 생성합니다. igw.tf resource "aws_internet_gateway" "IGW" { vpc_id = aws_vpc.vpc.id tags = { "Name" = "IGW" } } 현재 코드에서는 private_subnet에 ec2을 사용하지는 않아 필요없지만 추후에 추가될 인스턴스를 위해 미리 생성했습니다. subnet.tf # subnet.tf resource "aws_subnet" "publicSubnet1" { vpc_i..
리눅스 log저장 방식(flow) 이벤트발생 -> /dev/log -> systemd-journal -> rsyslogd 또는 journalctl -> 로그파일 syslog 전통적인 로그관리 시스템입니다. 기본적으로 로그는 /var/log/syslog에 저장됩니다. syslog설정 /etc/rsyslog.d 에 로그설정 파일들이 존재합니다. 50-default.conf 소스(중요도) - 저장위치 daemon.* /var/log/daemon.log 형식으로 설정되있습니다. 추가설명필요 cloud-init.conf :로그태그값, 조건, 인자, 보낼위치 특정 조건에 맞는 인자가 있다면 특정 위치에 로그를 저장시킬 수 있습니다. journal syslog보다 개선된 방식, 메시지를 효율적으로 수집, 저장 및 검..
Bastian Host 구성목록 VPC provider "aws" { region = "ap-northeast-2" } # vpc resource "aws_vpc" "main" { # IPv4의 CIDR블록을 지정합니다. cidr_block = "10.0.0.0/16" tags = { Name = "OPT-Practice-VPC" } } # IGW resource "aws_internet_gateway" "igw" { vpc_id = aws_vpc.main.id tags = { Name = "IGW" } } #Elastic IP resource "aws_eip" "nat" { #EIP가 VPC내에 있는 경우 true vpc = true } Public Subnet # public subnet resour..