일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- it인프라
- 리눅스vi
- 리눅스사용자생성
- 리눅스도움말명령어
- 인프라구조
- linuxmaster
- CentOS
- OS
- 리눅스재부팅
- 리눅스마스터
- root막기
- 병렬처리
- centos자동로그인
- 서버
- it
- 물리서버
- DB서버
- 리눅스사용자파일
- 리눅스자동로그인
- 리눅스사용자관리
- IT인프라기초
- linux
- 운영체제
- 센토스
- 리눅스
- IT인프라구조
- 센트
- 웹서버
- 리눅스명령어
- 인프라
- Today
- Total
Thinking Out Loud
[IT Infra 기초] 직렬/병렬 본문
# CPU 수가 늘어난 배경
- 소비 전력 & 발열 문제
→ CPU 제조사가 클럭(Clock) 속도를 올리는 대신 코어 수를 늘려서 문제를 해결하려고 방침 전환
# 직렬/병렬
1. 직렬
- 일직선으로 나열
- 직렬 처리로 속도 향상에 한계 有
2. 병렬
- 두 줄 이상으로 나열
- 속도는 빨라지지 않더라도, 단위 시간당 처리량은 늘릴 수 있음
- 병렬화 ≠ 성능 향상
1) 병목지점
- 분기점, 합류점, 직렬화 구간이 병목지점이 되기 쉬움
- 병목지점에서 혼잡도↑, 사고 발생↑
2) 오버헤드
- 오버헤드 : 병렬화하여 일을 분담해서 처리한 후 다시 한 곳에 모으는 직렬 처리 시 발생하는 속도 저하 현상
- 오버헤드 예상 필요
- 오버헤드를 감안하더라도 효과가 있을 경우 병렬화
3. 장단점
직렬 | 병렬 | |
장점 | - 구조가 간단 → 설계 · 구현 난이도↓ | - 복수의 리소스(컴퓨터나 프로세서 등)를 유용하게 이용 가능 - 직렬에 비해 동일 시간당 처리 가능양 多 - 일부 고장나도 처리 계속 가능 |
단점 | - 복수의 리소스(컴퓨터나 프로세서 등)를 유용하게 이용 불가 | - 처리 분기 · 합류를 위한 오버헤드 발생 - 배타적 제어 등 고려 필요 - 구조가 복잡 → 설계 · 구현 난이도↑ |
⇒ 병렬화의 단점 이상의 효과를 얻을 수 있을 경우 병렬화해야함
# CPU 코어 수 또는 클럭 주파수
- HW(CPU, HDD 등) 성능은 제품에 따라 차이가 있지만 처리할 수 있는 양이 정해져있음
- 분담할 수 있는 처리 : CPU 코어를 늘리면 빨라짐 (병렬화 의미 O)
- 분담할 수 없는 처리 : CPU 코어를 늘려도 빨라지지 X → CPU 클럭 주파수를 올리면 빨라짐 (병렬화 의미 X)
⇒ 처리 특성에 따라 병렬화 가능/불가능
# 직렬/병렬 사용되는 곳
1. 웹 서버, AP 서버
1) 웹 서버 : 멀티프로세스
- 복수의 프로세스로 병렬화 (1프로세스 1스레드)
- 다수의 이용자가 접속 ⇒ 복수의 프로세스가 분담해서 병렬처리
2) AP 서버 : 멀티스레드
- 프로세스는 하나, 복수의 스레드를 이용해서 병렬화 (1프로세스 4스레드)
* Apache HTTP Server
- 하이브리드형 : 멀티프로세스 + 멀티스레드
- JVM 프로세스를 복수 가동
* 하나의 CPU 코어를 동시에 사용 가능한 것 = 1스레드
하나의 CPU 코어밖에 없는 서버에서는 아파치 프로세스를 아무리 늘려도 동시 실행 가능한 것 = 1프로세스
⇒ 프로세스 · 스레드 수 조정 시 CPU 코어 수도 함께 고려 필요
2. DB 서버
1) 서버 프로세스
- 클라이언트 요청을 처리하는 프로세스
- 멀티프로세스로 병렬화
→ 클라이언트 접속 수만큼 생성됨
ex) 클라이언트 10 접속 = 서버 프로세스 수 10개 생성 (전용 서버인 경우)
- 하이브리드형(멀티프로세스+멀티스레드)도 有 (공유 서버형)
2) DBWR 프로세스
- 디스크에 읽기/쓰기 처리하는 프로세스 (메모리에 캐시된 갱신 완료된 데이터를 HDD에 기록하는 프로세스)
- 데이터 파일 생성 시 병목현상이 발생하는 경우
① 멀티프로세스로 병렬화
② 비동기 I/O 사용 → OS측에서의 쓰기 처리를 병렬화
참고 : 야마자키 야스시 외 3, 「그림으로 공부하는 IT 인프라 구조」, 제이펍
'IT Infra' 카테고리의 다른 글
[IT Infra 기초] 큐(Queue) (0) | 2021.10.19 |
---|---|
[IT Infra 기초] 동기/비동기 (0) | 2021.10.19 |
[IT Infra 기초] 가상화 (OS, 가상머신, 컨테이너, 도커) (0) | 2021.10.12 |
[IT Infra 기초] 웹 데이터 흐름 (0) | 2021.10.12 |
[IT Infra 기초] OS 커널 (0) | 2021.10.12 |