본문 바로가기
공부/Database

[Database] 데이터 전송 연산 시간 계산

by 웅대 2022. 11. 22.
728x90
반응형

데이터 전송 연산 시간은 다음과 같이 계산된다.

 

  1. 탐구 시간 (seek  time) : 헤드를 가지고 있는 암이 해당 실린더에 이동하는 시간
  2. 헤드 활동 개시 시간(head activation time) : 헤드가 활동을 시작하는 시간
  3. 회전 지연 시간(rotational latency) : 헤드가 트랙에서 해당 블록까지 가는 시간
  4. 전송 시간(transfer time) : 블록 안의 섹터 사이를 통과하는데 걸리는 시간
대랑 전송 (Bulk transfer)

대랑 전송은 문자 그대로 여러 블록을 전송한다는 뜻이다.

 

여기서 탐구 시간과 회전 지연 시간의 경우 첫 블록에 도달할 때만 시간이 걸리고 그 다음 연속된 블록에 도달할 때는 걸리는 시간이 0이다.

 

그렇기에 연속된 블록을 디스크에 배치시키는 것이 중요하다.

 

디스크에서 데이터 접근 효율을 높이는 방법
  1. cpu와 hdd의 속도 차이를 관리한다.
  2. 데이터를 연속된 블록으로 저장한다.
  3. 엘리베이터 알고리즘처럼 입출력의 효율성을 늘린다.
  4. 로그 디스크나 로그 파일을 사용한다.
  5. ssd 또는 플래시 메모리를 사용하여 ssd 버퍼에 기록하고 업데이트 한다.

 

Q. 20개의 기록면, 500트랙/면, 0.5KB/섹터, 40섹터/트랙, 갭 0.125KB
분당 회전 속도 : 6000rpm 탐구 시간 : 20ms
(20개의 기록면이라는 것은 양면으로 기록 가능한 디스크 원판이 10개 있다는 뜻이다.)

1. 한 트랙의 총 용량 : 섹터 개수 * (섹터 용량 + 갭 용량) = 40 * (0.5+0.125)KB = 25KB 
2. 한 트랙의 유효 용량 : 40 * 0.5KB = 20KB (갭의 용량은 제외한다.)
3. 한 실린더의 총 용량 : 기록면 * 섹터 개수 * (섹터 용량 + 갭 용량) = 20 * 40 *(0.5+0.125)KB = 500KB
4. 한 실린더의 유효 용량 : 20 * 40 * 0.5KB = 400KB (갭의 용량은 제외한다.)
5. 디스크가 한 번 도는데 걸리는 시간 : 6000/1분 = 6000/60초 = 6000/60000msec = 1/10msec 이므로 10msec이다
6. 전송률 (transfer rate) : 한 트랙의 총 용량 / 한 번 도는데 걸리는 시간 = 25KB/10msec = 2.5KB/msec

7. 평균 회전 지연시간(rd) : 한 번 도는데 걸리는 시간은 10msec이다. 평균 회전 지연 시간은 2로 나눈 5msec이다.
8. 블록 전송 시간(btt) : B/tr =  한 블록 유효 용량 / 전송률 = 0.5KB/(2.5KB/msec) = 0.2msec 
9. 대량 전송률 (btr) : tr * (B/B+G) = 2.5KB/msec * 0.8 = 2KB/msec
10. 하나의 섹터를 찾아서 읽는 시간 : 탐구 시간(seek time) + 회전 지연시간(rd) + 블록 전송 시간(btt) = 25.2msec
11. 10개의 임의의 섹터를 전송하는 시간 : 임의의 섹터이므로 탐구 시간 회전 지연 시간이 포함된다.
      = 10 * (seek time + rd + btt ) = 252msec
12. 10개의 연속된 섹터를 전송하는 시간 : 연속되어 있다면 seek time과 rd는 첫 섹터를 찾을 때만 소요된다.
      seek time + rd + 10 * btt = 27msec
      더 정확한 시간은 seek time + rd + 10 * (B/btr) = 27.5msec 이다.

 

728x90
반응형

댓글