donaricano-btn

직렬/병렬


1. 직렬/병렬이란?    

1) 직렬

- 1차선 도로라고 생각하면됨

2) 병렬

- 다차선 도로

- 다수의 CPU

(발열 문제와 소비전력문제를 해결하기 위해 제조사가 CPU 클럭 속도를 올리는 대신 코어수를 늘림)

- 다수의 서버

2. CPU

1) 병렬화

- 분담할수 있는 처리 CPU 코어를 늘리면 빨라진다

- 처리시간을 1/N 으로 감소할 수있다

2) 직렬화

- 분담할 수 없는 처리는 CPU 코어를 늘려도 빨라지지 않는다

- 하나의 CPU만 사용하므로 처리시간 변화 없다

- CPU클럭 주파수를 올리면 처리 속도 향상

3. Point

1) 직렬 처리로 속도를 올리는 데는 한계가 있다(하드웨어적 한계)

2) 병렬화를 통해 속도는 빨라지지 않지만 단위 시간당 처리량을 늘릴수 있다

- 병렬 처리에서 합류점, 직렬화 구간, 분기점이 병목 지이 됨

- 일을 분담후 다시 집약할 때 오버헤드발생, 오버헤드를 감안해서 효과가 있을 때 병렬화 한다


4. 서버에서 사용

1) 웹 서버

- 다수의 이용자가 접속 하기 때문에 복수의 프로세스가 분담해서 병렬처리

- 1프로세스 1스레도

2) AP 서버

- JVM 프로세스는 하나이지만 복수의 스레드가 병렬로 처리

- 1프로세스 4스레드

3) DB 서버

- 오라클 DB에서 클라이언트 요청을 접수하는 서버 프로세스가 클라이언트 접속 수만큼 생성

- 데이터 파일 생성시에 병목 현상이 발생, 메모리에 캐시된 갱신완료 데이터를 HDD에 기록하는 DBWR 프로세스 수를 늘려서 병렬화가능

4) CPU와 스레드

- CPU 코어를 동시에 사용하는 것은 1스레드 뿐

- 하나의 CPU 코어 밖에 없는데 아파치(웹서버) 프로세스를 아무리 늘려도 동시에 실행 되는 건 1프로세스 뿐이다

- 편의점 계산대는 하나, 직원이 여러명이여도 소용없다

블로그 이미지

리딩리드

,