Memory Latency와 LMbench

1.
레이턴시가 여전히 화두입니다. 레이턴시는 컴퓨터구조를 공부하도록 합니다. 레이턴시를 이야기할 때 자주 등장하는 그림입니다.


하드디스크보다는 메모리, 메모리보다는 CPU 캐시를 이용한 어플리케이션이 빠른 이유입니다. 그런데 똑같은 어플리캐이션이라고 하더라도 하드웨어가 다르면 다른 성능을 보입니다. 좀더 좋은 CPU나 TOE를 지원하는 네트워크카드를 선호하는 이유이기도 합니다. ?하드디스크를 대신하여 SSD를 이용하는 것도 같습니다. 그런데 메인메모리는 한번 깊이 생각해보지 않았습니다.

몇 일전 메인메모리를 검토할 기회가 생겼습니다. Netlist사의 HyperStream(지금은 HyperCloud)라는 제품을 받았습니다. 메모리 레이턴시를 대폭 줄인 제품이라고 합니다. 현재 개발서버로 이용하는 장비의 메모리가 12G라서 기쁜 마음으로 48G를 받아서 설치했습니다. ?얼마만큼 레이턴시를 줄인 제품인지 확인을 했습니다.

먼저 어떤 방법론을 적용할지를 결정해야 합니다. 여러 자료를 본 결과 아래의 자료에서 제시한 방법을 선택하였습니다.

Measuring Cacheand Memory Latency and CPU to Memory Bandwidth For use with Intel?Architecture

LMBench라는 벤치마크 도구를 권고하고 있습니다. 사실 이전부터 ?알고 있던 도구이지만 워낙 오래전에 만들어진 것이라 최근 환경에 적합할지 의문을 가졌지만 인텔이 권고하는 방법이라 따라했습니다. LM Bench는 개발자의 사이트에서 받을 수 있지만 컴파일을 하면 장애가 발생합니다. 그래서 Sourceforge에 올라온 버전을 받아서 컴파일하여야 합니다.

LM bench

Memory Latency를 측정하기 위하여 사용할 프로그램은 lat_mem_rd입니다.

2.
시험은 두가지를 하였습니다. 델서버에 설치하였던 제품과 Netlist제품을 각각 하였습니다. 메인메모리의 정보는 다음과 같습니다. 하드웨어 정보는 lshw를 이용하였습니다.

[CentOS] 리눅스 하드웨어 정보 확인

lshw는 하드웨어정보를 확인할 수 있는 명렁어입니다. 별도의 설치를 하여야 합니다. 흔히 /proc밑에 있는 정보를 이용하는 것보다 간편합니다.

이제 앞서 Intel이 권고한 방식으로 시험을 하도록 하겠습니다. 아래와 같이 입력하였습니다.

아래가 Netlist의 메모리를 이용한 결과입니다.

이상을 이해하려면 CPU의 캐시정보를 알아야 합니다. 델서버에 설치한 CPU는 Xeon L5640모델입니다. L1 cache는 32K, L2 Cache는 256K, L3 Cache가 12M입니다. 이를 기준으로 위의 값을 보면 보면 다음과 같습니다. L1 Cache를 접근하는 시간은 1.7나노초, L2 Cache는 4.4나노초, L3 Cach3는 20나노초입니다. 메인메모리는 68.7나노초입니다.

이제 두개의 메인메모리의 측정값입니다. 아래 데이타중 아래가 새로 설치한 제품의 값입니다.

대략 10%정도 좋은 성능을 보입니다. 그런데 DDR3제품의 클락수가 서로 달랐습니다. 단순히 클락의 차이인지 아니면 제품설계 기술력의 차이인지는 별도로 확인을 해야 합니다.

덧붙여 어플리케이션을 이용하여 시험을 해보아야 좀더 정확한 데이타를 얻을 수 있을 듯 합니다. 다만 메모리도 좋은 제품을 쓰면 당연히 성능향상에 도움이 된다는 사실을 변하지 않습니다. (^^)

4 Comments

  1. perftune@gmail.com

    제품명에 오류가 있습니다.
    HyperCloud와 HyperStream은 다른 제품입니다.
    HyperCloud는 bandwidth와 Capacity가 큰 제품이고, HyperStream은 Low latency 제품입니다.
    늘 잘보고 있습니다. 감사합니다.

    Reply
    1. smallake

      제조사 홈페이지에 명확히 나와 있지않던데. 하여튼 알겠습니다.

      Reply
  2. Jun-hee Jany Kang

    리눅스 시스템 정보 dmidecode 로 확인하시면 별도 설치 안해도 됩니다.

    Reply
    1. smallake (Post author)

      제가 사용하는 리눅스서버에서 입력한 결과입니다.
      어디서 lmbench가 제공하는 정보를 얻나요?
      [root@ium zeroaos]# dmidecode --type memory
      # dmidecode 2.11
      SMBIOS 2.6 present.

      Handle 0x005B, DMI type 16, 15 bytes
      Physical Memory Array
      Location: System Board Or Motherboard
      Use: System Memory
      Error Correction Type: None
      Maximum Capacity: 32 GB
      Error Information Handle: 0x005D
      Number Of Devices: 4

      Handle 0x005A, DMI type 17, 28 bytes
      Memory Device
      Array Handle: 0x005B
      Error Information Handle: 0x005E
      Total Width: 64 bits
      Data Width: 64 bits
      Size: 4096 MB
      Form Factor: DIMM
      Set: None
      Locator: ChannelA-DIMM0
      Bank Locator: BANK 0
      Type: DDR3
      Type Detail: Synchronous
      Speed: 1333 MHz
      Manufacturer: Samsung
      Serial Number: 6184BB0A
      Asset Tag: 9876543210
      Part Number: M378B5273DH0-CK0
      Rank: 2

      Handle 0x005F, DMI type 17, 28 bytes
      Memory Device
      Array Handle: 0x005B
      Error Information Handle: No Error
      Total Width: 64 bits
      Data Width: 64 bits
      Size: 4096 MB
      Form Factor: DIMM
      Set: None
      Locator: ChannelA-DIMM1
      Bank Locator: BANK 1
      Type: DDR3
      Type Detail: Synchronous
      Speed: 1333 MHz
      Manufacturer: Samsung
      Serial Number: 6184BB09
      Asset Tag: 9876543210
      Part Number: M378B5273DH0-CK0
      Rank: 2

      Handle 0x0060, DMI type 17, 28 bytes
      Memory Device
      Array Handle: 0x005B
      Error Information Handle: 0x0063
      Total Width: 64 bits
      Data Width: 64 bits
      Size: 4096 MB
      Form Factor: DIMM
      Set: None
      Locator: ChannelB-DIMM0
      Bank Locator: BANK 2
      Type: DDR3
      Type Detail: Synchronous
      Speed: 1333 MHz
      Manufacturer: Samsung
      Serial Number: 117154C6
      Asset Tag: 9876543210
      Part Number: M378B5273DH0-CK0
      Rank: 2

      Handle 0x0065, DMI type 17, 28 bytes
      Memory Device
      Array Handle: 0x005B
      Error Information Handle: No Error
      Total Width: 64 bits
      Data Width: 64 bits
      Size: 4096 MB
      Form Factor: DIMM
      Set: None
      Locator: ChannelB-DIMM1
      Bank Locator: BANK 3
      Type: DDR3
      Type Detail: Synchronous
      Speed: 1333 MHz
      Manufacturer: Samsung
      Serial Number: 985F8D83
      Asset Tag: 9876543210
      Part Number: M378B5273DH0-CK0
      Rank: 2

      Reply

Leave a Comment

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

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