ZeroM과 Solace의 성능 비교

(*)ZeroM을 담당하는 파트너와 협력관계를 청산하면서 ZeroM을 사용하지 않습니다.

1.
레이턴시를 이야기할 때 가장 중요한 문제가 “어떻게 측정했는가”입니다. A라는 제품은 한자리 마이크로초라고 합니다. B라는 제품은 한자리이하의 마이크로초라고 합니다. 그러면 A라는 제품이 B라는 제품보다 휠씬 높은 성능을 보장한다고 할 수 있나요? 모릅니다. 실제로 어플리케이션을 운용하는 환경이 어떤가에 따라 많은 차이가 발생합니다.

이럴 때 해결하는 방식은? 물론 BMT를 하면 가능합니다. 얼마전 외산제품을 파는 분이 찾아왔습니다. 모증권사에서 입찰을 하면서 BMT를 했다고 합니다. 세개의 통신장비 회사가 참여했다고 합니다. 장비는 설치해놓고 측정을 하면 간단하지만 소프트웨어는? 작지 않은 비용이 발생합니다. 그렇다고 개발사가 제공한 자료를 믿고 선택을 할 수 없습니다. 아마 이때문에 의사결정에서 레퍼런스가 중요한가 봅니다. 어제 증권사 설명회중 “레퍼런스가 있냐”는 질문도 받았습니다. 같은 이유가 아닐까 합니다.

미국자료를 보다보면 재미있는 회사를 자주 접합니다. STAC= The Securities Technology Analysis Center라고 합니다. 증권산업과 관련된 대부분의 제품을 시험하고 결과보고서를 만들어 줍니다. 일종의 표준시험기관이라고 할 수 있습니다. STAC가 메시징제품을 시험할 때 사용하는 방법론이 있습니다.M2라고 합니다만 마켓데이타를 시험하는 방법입니다. 사실 증권산업에 메시징을 주로 사용하는 곳이 마켓데이타이기때문입니다.

STAC-M2 is for testing market data distribution solutions. Such solutions take a number of normalized market data sources (such as feed?handlers or internal publishing applications) and distribute the data to multiple applications under various scenarios.
An overview of the STAC-M2 specs and Test Harness

2.
현재 ZeroM은 시험을 하고 있습니다. 10G RNIC를 설치한 장비에서 시험을 하고 있습니다. 1G NIC과 10G RNIC을 설치한 장비에서 시험을 하면 다른 결과가 나왔습니다. 그래서 10G를 기본으로 하여 성능향상을 하고 있습니다.

개발 및 시험장비는 Dell 서버입니다. 환경은 이렇습니다.OS는 RedHat 5.5, CPU는 Xeon 2.95GHz Quad-Core제품입니다. IPC Messaging을 결과를 얼마 전에 받았습니다. 방법은 이러합니다.

위의 시험장비에서 Pub/Sub가 아닌 Peer2Peer방식으로 1,024bytes크기의 message를 천만건을 송신하고 수신하도록 하여 결과를 측정하였습니다.

Performance result ——————–
data count:10000000 msg / 14.982224 sec
Latency ? :0.000001 (0.000000-0.000442) sec
speed ? ? :714285 msg/sec ( 10.18 Gbps)
——————————————-
from ? ? ? ? to ?? count
range:01 > ? 0.000000-? 0.000044: 9957935
range:02 > ? 0.000044-? 0.000088: ? 32657
range:03 > ? 0.000088-? 0.000133: ?? 6092
range:04 > ? 0.000133-? 0.000177: ?? 1790
range:05 > ? 0.000177-? 0.000221: ? ? 283
range:06 > ? 0.000221-? 0.000265: ? ? 225
range:07 > ? 0.000265-? 0.000309: ? ? 269
range:08 > ? 0.000309-? 0.000354: ? ? 263
range:09 > ? 0.000354-? 0.000398: ? ? 232
range:10 > ? 0.000398-? 0.000442: ? ? 254
-max data count’s range ———————-
range:01 > ? 0.000000-? 0.000004: 9838856
range:02 > ? 0.000004-? 0.000009: ? 26958
range:03 > ? 0.000009-? 0.000013: ? 18239
range:04 > ? 0.000013-? 0.000018: ? 12401
range:05 > ? 0.000018-? 0.000022: ? 13899
range:06 > ? 0.000022-? 0.000027: ? 11709
range:07 > ? 0.000027-? 0.000031: ?? 9624
range:08 > ? 0.000031-? 0.000035: ? 10890
range:09 > ? 0.000035-? 0.000040: ?? 7326
range:10 > ? 0.000040-? 0.000044: ?? 8033
under avg:8771351? over avg:1228649

위의 자료를 보시면 아시겠지만 평균레이턴시가 1 마이크로초입니다. 전체데이타중 98.3%가 4 마이크로초아래에 있습니다. 87.7%의 데이타가 1마이크로이하입니다.

3.
직접적으로 비교하기 힘들지만 개발사가 만든 자료중 가장 빠르다고 하는 Solace와 비교해보도록 하겠습니다.출처는 아래와 같습니다.

Solace IPC Messaging

우선 시험환경은 아래와 같습니다.

Solace’s IPC solution was tested in several scenarios running on a single quad-core 3GHz Intel Xeon E5450 with two pairs? of 6MB L2 cache, and 4 GB of memory. The operating system was Linux 2.6.9-55.ELsmp #1 SMP.

CPU Clock과 Cache Size가? 약간 차이를 보이고 다른 부분이 같습니다.? 시험방법은 ZeroM방식과 비슷합니다.


두개의 결과가 나온 것은 Cache Memory를 어떤 조건으로 사용했냐에 따른 결과입니다. ZeroM과 비교를 해보겠습니다.

우선 ZeroM은 초당 700K msgs/Sec입니다. 사실 비슷한 데이타가 없습니다만 두번째 그림중 500K와 1M사이의 값이 아닐까 합니다. 1.17에서 1.34까지 범위의 마이크로초입니다. ZeroM은 Average Latency 1.00입니다.

더 낮은 레이턴시죠? 영업적으로는 이렇게 주장해야 하지만 시험환경과 방법이 동일하지 않으므로 참고자료일 뿐입니다.? 그래도 ZeroM이 외산과 비교하여 떨어지지 않는다는 점만 밝혀두고 싶습니다.

자기 자랑을 한 팔불출이었습니다.(^^)

4 Comments

  1. 오스카

    IPC 메시징이라고 하셨는데, 그러면 물리적으로 동일 시스템 내에서 Shared Memory 등을 사용하여 메시지 Request/Response 타임을 측정하신건가요?

    Reply
    1. smallake

      그렇습니다. Request/Response는 아니고 보내고 받는 시간을 측정하였습니다. 다만 Sending Peer과 Receiving Peer는 각각 다른 Core로 할당해서 시험한 결과입니다.

      Reply
  2. yosnoop

    저희도 solace분들 데려다가 개발 했었는데 여러가지로 맘에 들지않아 프로젝트 초반에 그만둔적이 있습니다. 결국엔 29west로 했었죠.

    Reply
    1. smallake

      제품보다는 제품을 팔고 있는 한국쪽의 능력이 더 문제죠. 29West나 Tibco FTL이나 NYSE나 다 마찬가지라는 생각입니다.

      Reply

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.