ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스토리지 프로토콜 별 실제 성능 (쓰루풋)
    스토리지 지식 2021. 1. 23. 23:52

    스토리지 프로토콜 별 최대 전송률의 이론적인 최대 쓰루풋과 실제로 낼 수 있는 최대 쓰루풋에 대해 알아본다.

     

     

    Virtual Machines per Host Based on Storage Protocol

     

    * 출처 : Storage Considerations for VMware® View™

     

    FC Protocol은 4Gb/s, 8Gb/s, 16Gb/s, 최근에는 32Gb/s의 전송률이 채택되고 있다.

    4Gb/s 기준으로 최대 쓰루풋은 512MB/s이다. 4Gb를 Mb로 변환 후 MB로 환산하기 위해 8bit로 나누어준 결과이다. (4*1024/8) 그러나, 실제로는 Fiber Channel 오버헤드를 고려하면 약 20% 낮은 410MB/s가 최대 성능이다.

     

    iSCSI는 Native SCSI command를 이더넷 패킷에 캡슐화하여 IP 네트워크를 통해 전송한다. 그래서 기 구축되어 있는 Ethernet LAN을 이용하므로 추가 인프라 구축에 대한 부담이 없는 장점이 있다.

    1Gb/s 기준으로 이론적으로는 128MB/s의 전송률이 가능하나, 실제로는 이론 수치의 80%가량의 성능을 낼 수 있다. NFS 역시 이더넷 통신을 하므로 동일하다.

     

    10GbE (fiber)는 이론적인 수치의 약 78%, 10GbE (copper)는 약 64%의 성능을 나타낸다. 이 둘의 편차는 물리적인 미디어 특성이 다르므로 나타난 것이다.

     

    이렇게 실제 성능이 이론적인 수치에 못 미치는 결과가 나타나는 이유는, 데이터 전송에 있어 부가적으로 따르는 오버헤드 (Overhead) 때문이다. 간단히 TCP/IP를 예로 들어 설명해본다.

     

     

    TCP/IP는 데이터 통신을 위해 순수 사용자 데이터에 송신에 필요한 정보 (Header)를 붙여서 다음 계층으로 보내는 데이터 캡슐화 (Encapsulation)를 수행하고, 수신 측에서는 이더넷 드라이버에서 수신된 데이터를 어느 쪽 (ARP, IP, RARP)으로 보낼지 이더넷 헤더의 프레임 타입을 확인해서 결정하고, IP에서는 IP 헤더의 프로토콜 정보를 보고 TCP 또는 UDP로 보낼지를 결정하고, 전송 계층에서는 각각의 포트번호를 확인하면서 헤더를 제거하는 역캡슐화 (Decapsulation)를 통해 데이터를 처리하게 된다. 

     

     

     

     

    TCP는 통신을 위해 사전에 3-way handshaking을 통해 연결을 설정해놓고, 수신 측 버퍼 오버플로우를 방지하기 위한 Flow Control부터 Sequence number, ACK message, Timer를 활용하여 데이터가 순서대로 정확하게 전달하도록 한다. 또한, Congestion Control을 통해 네트워크 내 패킷이 과도하게 증가하는 것을 방지하고, 전송된 패킷에 대한 응답이 일정 시간이 지나도 없으면 재전송하기도 한다. 

     

    이처럼, TCP의 다양한 제어 기능을 수행하기 위해서 TCP 헤더에는 여러 가지 정보가 필요하고, 연결의 성립이나 확인 응답에 대한 프로세스가 필요하다. 이렇게 신뢰성 있는 데이터 전송을 수행하기 위해 필요한 정보와 처리과정을 통틀어 오버헤드 (Overhead)라고 부른다. 이러한 오버헤드로 인해 실제 데이터 전송 속도는 이론적인 수치보다 낮게 나타난다.

     

     

    댓글

Designed by Tistory.