donaricano-btn

큐(queue)

- 대기행렬이라 한다

- 하드웨어, OS, 데이터 베이스, 애플리케이션 등 모든 곳에서 사용

- FIFO(First In First Out) 선입선출


1. 어디에 사용되나

1_1 웹 서버


0) 상황설명

- CPU에 코어가 두개 있으며 아파치 프로세스는 네개이다

1) 처리중 상태

- 프로세스 두개는 CPU의 (각각)코어에 의하여 처리 중에 있다

2) 처리 대기

- 프로세스 두개는 CPU 처리를 기다리고 있다

- 런큐에 두개의 프로세스가 있다

런큐(run-queue)

- CPU를 기다리는 프로세스 행렬을 런큐라고 한다

- 런큐에 쌓인 프로세스 수 / 코어 수 = 1 = 문제 없다

- 리눅스 : CPU에 처리 중인 프로세스도 런큐로 인식(앞에 상황에서 런큐는 4)

- OS 커널에 프로세스 스케출러 기능이 있어서 런큐를 관리한다

- CPU 처리를 기다리는 프로세스나 스레드 확인

a. 유닉스 계열 : vmstat 5(5초 간격의 리눅스 데이터) 명령어 입력

- 현재는 런큐가 0이다

- 만약 10이고 1CPU의 2코어라면 1코어당 네개의 프로세스 또는 스레드가 대기중 상태(처리지연 가능성)

b. window : 검색에 performance monitoring

- 1CPU 2코어에서 1코어당 16개의 프로세스 혹은 스레드가 대기중이다


1_2. 데이터베이스의 디스크 I/O

- 프로세스의 처리 대상이 CPU가 아닌 HDD 라는 점이 다르다

- vmstat 5의 b 열로 대기중인 프로세스가 스레드 수를 확인가능 하다



블로그 이미지

리딩리드

,