일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- linuxmaster
- it
- DB서버
- OS
- 리눅스사용자파일
- 센토스
- 서버
- 운영체제
- 리눅스사용자관리
- 리눅스도움말명령어
- 리눅스재부팅
- 병렬처리
- 인프라
- IT인프라구조
- IT인프라기초
- centos자동로그인
- root막기
- 리눅스자동로그인
- 센트
- 리눅스사용자생성
- CentOS
- linux
- 물리서버
- 리눅스마스터
- 리눅스명령어
- 웹서버
- it인프라
- 리눅스
- 인프라구조
- 리눅스vi
- Today
- Total
목록IT Infra (16)
Thinking Out Loud
# 고정 길이 / 가변 길이 고정 길이 (Fixed-length) 가변 길이 (Variable-length) 특징 - 크기 고정 - 미리 크기가 정해져있는 경우 - 컴퓨터 내부 메모리, 디스크 등 HW 데이터 처리 형태 - 크기 변경 가능 - 미리 크기가 정해져있지 않은 경우 예시 - 분류별로 정해져있는 칸막이 책꽂이 - 책 칸막이가 움직이면서 분류 조절 장점 - 성능↑ : 정리가 되어있어 원하는 것에 쉽게 액세스 가능 - 데이터를 꽉 채워 담을 수 있음 → 공간 절약 및 유용한 활용 가능 단점 - 각 칸의 길이를 자유롭게 조정 불가 - 남는 공간이 생겨 공간의 효율적 사용 ↓ - 성능↓ : 정리가 안되어있어 원하는 것을 찾으려면 시간↑ - 재이용률↓ ⇒ 데이터 편중 # 고정 길이 / 가변 길이 사용되는..

# Stateful / Stateless 상태 저장 (Stateful) 상태 비저장 (Stateless) 특징 상태 정보를 가짐 과거에 부여한 '정보'를 저장해서 계속 활용 상태 고려 O 상태 전이를 의식해서 처리 과거 경위를 이해한 상태에서 응답 상태 정보를 가지지 않음 과거 정보를 알 수 X 상태 고려 X 매번 신규 요청이 생성 장점 세분화된 제어가 가능 복잡한 처리 가능 자신의 상태를 이해 → 요청 내용 최소화 가능 (요청/응답) 구조 간단 성능 · 안정성 측면 우수 단점 구조/시스템 복잡 고기능 X 복잡한 처리가 어려움 예시 ex) ssh 프로토콜, 병원진료 ex) http 프로토콜, 슈퍼마켓 # Stateful / Stateless 사용되는 곳 1. 컴퓨터 내부 구조 - CPU의 프로세스 처리 ..
# 배타적 제어 - 여러 사람이 한 물건을 공유하는 상황에서 발생 - 다른 것을 배제하는 제어 for 성능 - 여러 사람이 공유하는 물건일 경우, 누군가 그 물건을 사용하고 있으면 다른 사람은 사용 불가 (동시 사용 시 고장) - ex) 회의실 사용중/공실 표기 → 다른 사람의 이용에 영향 # 배타적 제어가 필요한 경우 = 병렬 처리 - 병렬 처리에서 배타적 제어가 필요한 이유 - 병렬 처리 → 공유 데이터 이용 - 부분적으로 직렬 처리를 사용해야만 되는 경우 문제 발생 多 # 배타적 제어의 특징 - 복수의 처리가 공유 자원(CPU, 메모리, 디스크 등)에 동시에 액세스(주로 갱신) → 불일치 발생 가능성 보호 - 특정 처리가 공유 자원을 이용하고 있는 동안 다른 처리가 이용할 수 없게 함 - ex) 3..
# 큐 (Queue) - 대기 행렬 - 동작 원리 : FIFO (First In First Out. 선입선출) # 큐가 사용되는 곳 - CPU 처리를 기라리고 있는 프로세스/스레드 행렬 - 하드디스크 등의 저장소 읽기 처리를 기다리고 있는 I/O 요구 행렬 - 네트워크 접속 성립을 기다리고 있는 접속 요구 행렬 # 런큐 (Run-queue) - CPU를 기다리고 있는 프로세스 행렬 - (런큐에 쌓인 프로세스 수) ÷ (코어 수) = 1 : 문제 없음 - CPU에서 처리중인 프로세스를 런큐로 인식할지는 OS 종류마다 다름 - 리눅스 : 런큐로 인식 - 런큐 관리 (행렬 정리) : OS 커널의 프로세스 스케줄러 기능 # CPU 처리를 기다리는 프로세스/스레드 수 확인 방법 - 유닉스 계열 OS : vmsta..
# 동기/비동기 동기 비동기 특징 - 누군가에게 일을 부탁한 후 그 일이 끝날 때까지 아무것도 하지 않고 기다리는 것 - 누군가에게 일을 부탁한 후 그 일이 끝날 때까지 기다리지 않고 다른 일을 하는 것 장점 - 의뢰한 처리가 끝났는지 여부를 확실하게 확인 가능 → 구조 간단 → 구현 난이도 낮음 - 의뢰한 처리가 진행되고 있는 동안 시간을 효율적으로 사용 ⇒ 병행 처리 가능 단점 - 의뢰한 처리가 끝나기까지 기다려야 함 → 대기 시간 활용 불가 ⇒ 병행 처리 불가능 - 의뢰한 일이 끝났는지 모름 → 확인하고 싶으면 별도의 방법을 이용해야함 (불필요한 확인 처리가 늘어남) - 구조 복잡 → 구현 난이도 높음 # 비동기 처리 사용 시 주의할 점 (병렬화 주의점과 동일+a) - 비동기로 요구한 처리가 끝나지..
# CPU 수가 늘어난 배경 - 소비 전력 & 발열 문제 → CPU 제조사가 클럭(Clock) 속도를 올리는 대신 코어 수를 늘려서 문제를 해결하려고 방침 전환 # 직렬/병렬 1. 직렬 - 일직선으로 나열 - 직렬 처리로 속도 향상에 한계 有 2. 병렬 - 두 줄 이상으로 나열 - 속도는 빨라지지 않더라도, 단위 시간당 처리량은 늘릴 수 있음 - 병렬화 ≠ 성능 향상 1) 병목지점 - 분기점, 합류점, 직렬화 구간이 병목지점이 되기 쉬움 - 병목지점에서 혼잡도↑, 사고 발생↑ 2) 오버헤드 - 오버헤드 : 병렬화하여 일을 분담해서 처리한 후 다시 한 곳에 모으는 직렬 처리 시 발생하는 속도 저하 현상 - 오버헤드 예상 필요 - 오버헤드를 감안하더라도 효과가 있을 경우 병렬화 3. 장단점 직렬 병렬 장점 ..

# 가상화 1. OS 2. 가상머신 3. 컨테이너 4. 도커 5. 클라우드 ··· (나중) # 가상화 - 컴퓨터 시스템에서 물리 리소스를 추상화하는 것 (물리 리소스 : 서버, 네트워크, 저장소 등) - Virtual, 가상 → '실제로 존재하는 것과 같다', '사실과 거의 같다' 1. OS - 하드웨어를 의식하지 않고 애플리케이션을 실행할 수 있는 운영체제 - 가상화 기술 중 하나 OS 등장 이전 OS 등장 이후 - 하드웨어를 의식한 프로그래밍 필요, 매우 복잡한 작업 - HW의 사양을 고려해서 프로그램 작성 필요 - 메모리 관리, 멀티 태스크, 파일시스템 등도 별도 구현 필요 - 하나의 프로그램에서 발생한 오류가 컴퓨터 전체를 정지시킬 가능성 有 - HW 추상화 → 컴퓨터에 연결된 기억 장치나 NW를..
# 웹 데이터 흐름 1. 클라이언트 PC → 웹 서버 2. 웹 서버 → AP 서버 3. AP 서버 → DB 서버 4. AP 서버 → 웹 서버 5. 웹 서버 → 클라이언트 PC 1. 클라이언트 PC → 웹 서버 # 흐름 (클라이언트 PC → 웹 서버 → AP 서버 질의) 1) 웹 브라우저가 요청을 발행 - 특정 인터넷 사이트에 요청을 보냄 2) 이름 해석 - 해당 사이트가 어디에 있는지 이름을 해석한 후 결과를 가지고 웹 서버에 요청을 보냄 3) 웹 서버가 요청 접수 - 웹 서버의 httpd 프로세스가 요청을 접수 4) 웹 서버가 정적 콘텐츠인지 동적 콘텐츠인지 판단 - httpd가 받은 요청 내용을 분석 5) 필요한 경로로 데이터에 액세스 - 정적인 정보 → 디스크로부터 읽는다. - 동적인 정보 → 네트..
# 커널 - OS의 심장 · 뇌 · 척수 - OS의 본질 - 커널 자체 = OS의 '인프라' - 역할 : 뒤에서 무슨 일이 벌어지는지 은폐하면서도 편리한 인터페이스를 제공하는 것 - 커널 때문에 개발자는 하드웨어나 다른 애플리케이션에 끼치는 영향을 의식하지 않고 개발할 수 있음 - 커널을 통해 OS 처리가 이루어짐 # 커널의 6가지 역할 1) 시스템 콜 인터페이스 - 프로세스나 스레드로부터 명령을 받는 인터페이스 2) 프로세스 관리 - 가동되고 있는 프로세스 관리, CPU 이용 우선순위 등을 '스케줄'함 3) 메모리 관리 - 서버상의 메모리를 단위 크기의 블록으로 분할해서 프로세스에 분할 4) 네트워크 스택 - (나중) 5) 파일시스템 관리 6) 장치 드라이버 - NIC, HBA, 디스크 등의 물리 장치..
# 프로세스 · 스레드 ≒ 프로그램 시작 시 뜨는 창들 # 프로그램 시작 시 발생하는 일 - 프로그램이 서버 내부의 디스크 상에 설치됨 - 시작 의뢰가 있으면 커널이 프로세스를 작성. 또한, 요청 분량만큼만 메모리 공간 할당 - OS 상에서 프로세스가 시작되어 사용자 요청을 받을 수 있게 됨 - 프로그램 실행 파일 자체 (X) - OS 상에서 실행되어 어느 정도 독립성을 가지고 동작하는 것 - 프로세스 · 스레드가 시작되는 것 ≒ 사람이 숨을 쉬기 시작하면서 활동하는 것 - 프로세스 · 스레드가 활동하려면 메모리 공간이 필요 → 프로세스 시작 시 커널에 의해 메모리 상에 공간이 확보됨 프로세스 · 스레드가 자신을 위해서 소유하는 공간(개인 공간) 다양한 처리를 하면서 데이터를 주고 받기 위해 이 공간을 ..