에서 이 컨텍스트 (예산 소비자 기어), Optane 꽤 명확하게 그냥에게 매우 높은 쓰기 내구성을 제공, (대신 NAND 플래시의) 3D XPoint 메모리를 사용하여 소형 / 고속의 NVMe 연결된 SSD를 참조한다. (스왑 공간으로 사용하면 마모되지 않습니다).
DRAM 액세스 (캐시 미스)의 경우 최대 70 나노초에 도달하는 데 여전히 페이지 오류와 많은 마이크로 초가 걸리기 때문에 여전히 많은 워크로드에서 문제가 될 것입니다 . CPU 메모리 버스에서 직접 메모리 매핑되지는 않습니다. 또한 비 순차적 실행 / HW 프리 페치 / 기타 메모리 병렬 처리는 물리적 코어 당 최대 10 개의 캐시 미스를 유지하지만 페이지 오류는 직렬화 됩니다. OS가 페이지 오류를 처리하는 동안 유용한 작업 (이 스레드에서)이 발생할 수 없으므로 OoO exec가 하드 페이지 오류 대기 시간을 숨길 수 없습니다. (그러나 70ns조차도 완전히 감추기에는 너무 길다. 그럼에도 불구하고, 다른 라인으로 여러 번의 미스가 발생하면 일부 워크로드에서이를 완화시키는 데 먼 길을 가고있다.)
엄청나게 적은 양의 RAM을 사용하고 스왑 공간 / 페이지 파일에 빠른 SSD에 의존하는 것이 이러한 종류의 Optane의 유일한 사용 사례는 아닙니다. (아마도 좋은 사용 사례는 아닙니다). https://www.tweaktown.com/articles/8119/intel-optane-memory-matters/index.html에서 설명 했듯이 주요 사용 사례는 마그네틱 하드 드라이브의 투명 캐시입니다. 인텔은이를 위해 Windows 드라이버를 제공한다고 생각합니다. 디스크의 자주 액세스하는 부분을위한 버퍼 / 캐시로 일부 플래시가 내장 된 회전식 자기 저장 장치가있는 SATA 하드 드라이브를 구입할 수 있습니다. Optane HW + 드라이버는 모든 디스크에 대해이 작업을 수행 할 수 있습니다.
Optane NVMe는 낮은 대기열 깊이에서 임의의 읽기 성능이 매우 우수합니다 (다른 읽기를 시작하기 전에 하나의 읽기가 완료 될 때까지 기다리십시오. 불행히도 프로그램은 블록을 읽어야 할 경우 다음에 수행 할 작업을 알아낼 수 있으며 소프트웨어 프리 페칭은 도움이되지 않습니다). 따라서 프로그램 시작 시간과 부팅 속도를 높여야합니다.
큰 파일을 연속해서 대량으로 쓰는 경우에는 특히 놀랍지 않습니다. 드라이버 소프트웨어가 Optane 캐시를 우회하고 기본 자기 디스크로 바로 이동하는 것을 알고 있기를 바랍니다. 인텔의 기본 Optane 페이지 는 https://www.intel.ca/content/www/ca/en/products/memory-storage/optane-memory/optane-16gb-m-2-80mm.html에 연결되며 16GB M .2 Optane의 900MB / s 순차 읽기는 있지만 145MB / s의 순차 쓰기 만 가능합니다. 32GB 버전은 1350MB / s 읽기, 290MB / s 쓰기 속도가 더 빠릅니다. 그러나 다시 한 번, 옵 테인이 가장 좋은 것은 아닙니다. 순차 및 랜덤 읽기 IOPS는 모두 240k IOPS이며 읽기 대기 시간은 7µs입니다.
인텔에는 IMDT (Intel Memory Drive Technology) 라는 것이 있습니다이것은 운영 체제를위한 더 큰 주 메모리 주소 공간의 환상을 만드는 하이퍼 바이저입니다. 일부 페이지는 실제 DRAM 주 메모리에 매핑되고 다른 페이지는 SSD 메모리에 매핑됩니다. SSD에 매핑 된 페이지에 액세스하면 IMDT에서 페이지 오류가 발생하여 페이지가 SSD에서 기본 메모리로 가져옵니다 (페이지를 메모리에서 SSD로 제거 할 수 있음). IMDT는 SSD의 대역폭과 지연 시간을 줄이기 위해 페이지를 DRAM으로 프리 페치하려고 시도합니다. 또한 가장 적은 페이지로 최소한의 페널티로 액세스 할 수 있도록 가장 인기있는 페이지를 기본 메모리에 유지하려고 시도합니다 (가상화로 인해 추가 페이징 계층에서 유일한 페널티가 발생할 수 있습니다). OS는 대부분이 매핑에 대해 잘 모르며 정상적으로 작동합니다. 이러한 종류의 메모리 시스템을 소프트웨어 정의 메모리 (SDM)라고합니다. 좋은"과학 응용 프로그램에 대한 인텔 메모리 드라이브 기술 성능 평가"라는 제목의 논문 은 IMDT의 성능 평가를 제공하고 동일한 양의 DRAM 주 메모리를 가진 시스템과 비교합니다. 필자는이 논문을 자세히 읽지 않았지만 IMDT는 NUMA 노드간에 페이지를 마이그레이션하여 대부분 필요한 노드에 더 가까이 갈 수있는 것으로 보입니다.
즉, IMDT는 서버급 Intel 프로세서에서만 지원됩니다. 성능에 미치는 영향이 적은 비용 효율적이고 전력 효율적인 서버를 만들려고합니다.
http://www.lmdb.tech/bench/optanessd/imdt.html 에는 Optane DC P4800X SSD와 일부 벤치 마크가 있습니다. (소비자 대상이 아닌 고급 데이터 센터 버전. 훨씬 높은 지속 쓰기 기능.)
나는 이것을 조사하지 않았으므로 Windows가 소비자 Optane SSD를 활용할 수있는 방법과 관련이 있는지 확실하지 않습니다.
Optane 브랜드 이름은 (좀 더 혼란스럽게도) 훨씬 더 흥미로운 이국적인 것에 사용됩니다.
"Optane DC Persistent Memory"라고도하는 3D XPoint 비 휘발성 DIMM . https://www.anandtech.com/show/12828/intel-launches-optane-dimms-up-to-512gb-apache-pass-is-here . Apache Pass는 1 세대 Optane DC PM의 이름입니다. 미래 세대에 대한 정보는 이것을 참조하십시오 .
인텔에는 여기에 대한 대부분의 마케팅 페이지가 있으며 여기 에는 기술 세부 정보에 대한 링크가 있습니다. "DC"는 분명히 데이터 중심을 나타냅니다.
이것은 비 휘발성 스토리지로 DDR4 DIMM 슬롯에 연결되며 실제 물리적 메모리로 나타납니다. 분명히 차세대 Xeon (현재 Skylake-X 일명 Skylake Scalable Processor 시리즈는 아님)에서만 완벽하게 지원됩니다.
NVDIMM에는 배터리 지원 일반 DRAM (옵션으로 장기 전원을 끄기 위해 데이터를 덤프하는 플래시가 있으므로 화학 배터리 대신 슈퍼 커패시터 만 필요)과 같은 다른 종류의 NVDIMM이 있습니다. https://en.wikipedia.org/wiki/NVDIMM 에 자세한 내용이 있습니다.
https://www.electronicdesign.com/industrial-automation/why-are-nvdimms-suddenly-hot 은 NVDIMM (및 JEDEC 표준화 및 OS + 애플리케이션이 애플리케이션과 직접 대화 할 수 있도록하는 방법)에 대한 일반적인 정보를 제공합니다. 커밋 순서 등을 보장하는 메모리 영역이 NV 스토리지에 매핑 됨). 요점은 실제로 RAM과 스토리지 사이의 경계를 허물어 놓는 것입니다 (컴퓨터 아키텍처의 의미에서 4 + 16GB의 주장하는기만적인 랩톱 광고의 마케팅 방식이 아닙니다).
OS는 프로세스가이 비 휘발성 물리적 메모리를 고유 한 가상 주소 공간에 매핑 할 수 있도록하여 사용자 공간로드를 통해 스토리지에 직접 액세스 하고 시스템 호출없이 메모리 주소에 저장함으로써 CPU 하드웨어를 계속 사용할 수 있도록합니다. 미해결 읽기 / 쓰기가있는 동안 주문 실행 . ( flush()
데이터가 실제로 영구 스토리지에 기록되도록 하는 기능을 포함하여 개발자가이를 활용할 수 있도록하는 소프트웨어 라이브러리가 있습니다 .
이 매핑은 쓰기 가능 캐시 가능할 수 있으므로 데이터를 다시 쓸 때까지 (수정 된 경우) L3 / L2 / L1d 캐시의 데이터 사용에 따른 이점이 있습니다. 대부분의 데이터에서 이러한 종류의 Optane은 실제로 4 + 16GB의 RAM이라고 할 수 있습니다. (물론 Optane NVDIMM의 현재 데이터 센터 사용 사례는 512GB와 같은 훨씬 더 큰 DIMM을 사용 합니다.)
( mmap
일반적인 디스크에있는 ed 파일 과는 다르며, 파일에 대한 OS의 페이지 캐시를 맵핑하기 만하면 OS는 백그라운드에서 I / O를 수행하여 더티 RAM 페이지를 저장 장치와 동기화합니다.)
파일 시스템이나 데이터베이스 저널과 같은 응급 복구를 허용하기 위해 일부 데이터가 실제로 NV 스토리지에 도달했는지 확인하는 것이 필수적입니다. 시스템 호출, 이것은 당신이 POSIX 사용하십시오 곳이다 fsync
또는 fdatasync
. 그러나 응용 프로그램에 실제로 메모리 매핑 된 저장소가 있기 때문에 라이브러리 함수 호출이 발생합니다.
x86 asm에서는 일반로드 / 스토어를 사용하여 스토리지에 액세스하고 있지만 데이터가 다른 코어에 표시되거나 캐시 일관성있는 DMA에 표시되지 않을 때 실제로 데이터가 NVDIMM에 다시 기록되는 시점 (전력 손실로부터 안전한 시점)에 관심이 있습니다. (저장소 버퍼에서 L1d 캐시로 커밋하자마자) x86의 일반적인 메모리 순서 규칙이 모든 것을 완전히 처리하지는 않습니다. CPU 캐시에서 선택된 캐시 라인을 플러시하기위한 특별한 지침이 필요합니다. NV 스토리지 라이브러리에서 사용합니다.
clflush
ASM 명령은 잠시 동안 존재했지만, NV 스토리지는 인텔이 추가 된 이유는 주요 이유는 clflushopt
스카이 레이크에 (이것은 다른 사용 사례도를 가지고 있지만), 그리고 추가하고 clwb
얼음 호수 (퇴거하지 않고 다시 쓰기)에서.
댄 LUU 흥미로운 기사를 쓴 , 스토리지에 액세스하기위한 방법에서 OS를내어 그 시점에서 인텔의 계획을 자세히의 이점에 대해 얼마 전에 clflush
/ clwb
과 메모리 주문 의미. 인텔은 여전히라는 명령을 필요로 계획하는 동안이 기록 된 pcommit
이 과정의 일환으로 (지속 커밋)하지만, 인텔은 나중에 명령을 제거하기로 결정 PCOMMIT 명령에 대한 지원을 중단하는 일이 후드에서 작동하는 이유 및 방법에 대한 몇 가지 흥미로운 정보를 가지고를 .
(이것은 x86 NV 스토리지 하위 레벨 세부 정보에 대한 주제를 벗어났습니다.이 섹션의 대부분을 게시 할 다른 곳을 찾아야하지만 생각합니다)
PCIe x4 카드 또는 2.5 "와 같은 Optane DC SSD 도 있습니다 . 750GB 버전은 최대 2500MB / s 순차 읽기, 2200MB / s 순차 쓰기 및 550000 IOPS 랜덤 읽기 또는 쓰기를 수행합니다. 읽기 대기 시간은 10µs에서 M.2 NVMe.
이것은 데이터베이스 서버 또는 NVDIMM을 사용할 수없는 경우에 원하는 것이지만 4GB 랩톱은 16GB 옵 테인보다 16GB 옵 테인보다 훨씬 빠르지는 않습니다 (대부분의 일반적인 사용 사례). 스왑 공간 스 래싱 (swap space thrashing)은 페이지 결함 코드가 다음에 수행 할 작업을 계속하기 전에 페이지를 페이징하고 액세스해야하기 때문에 종종 많은 종속 읽기를 생성합니다. 메모리가 실제로 부족한 경우 OS에 적극적으로 프리 페치 할 여분의 페이지가 없으므로 소비자 Optane에 최적화 된 대기열 깊이가 낮을 것으로 예상됩니다. (낮은 대기 시간)
인텔 Optane SSD는 뛰어난 성능과 전력 비용의 균형을 제공합니다. SSD는 기본적으로 액세스하지 않을 때 전력을 소비하지 않습니다. 반대로 DRAM 칩의 정적 전력 소비 (대부분 새로 고침으로 인한)는 중요합니다. 따라서 시스템의 DRAM 양은 일반적인 작업 부하의 작업 세트와 이상적으로 일치해야합니다. 구입 한 시스템은 약 4GB 이하의 기본 메모리가 필요한 일반적인 워크로드를 위해 설계되었습니다. 이 경우 시스템에 주 메모리가 8GB 인 경우 더 많은 전력을 소비하지 않으므로 배터리 수명이 줄어 듭니다. 그러나 Optane SSD를 사용하면 성능 저하를 최소화하면서 (NAND 기반 SSD 또는 HDD에 비해) 약간 더 많은 주 메모리가 필요한 워크로드를 가끔 실행할 수 있습니다.
DRAM 메모리는 현재 1GB 당 약 4.5 달러이며 Intel Optane SSD는 1GB 당 약 2 달러입니다. 따라서 16GB Optane SSD는 4GB DRAM 모듈보다 비싸지 만 8GB DRAM 모듈보다 저렴합니다. 따라서 Optane SSD를 꺼내고 4GB 더 많은 메모리를 추가하면 더 저렴한 시스템을 얻을 수 있으며 4GB보다 큰 작업 세트를 가진 일반적인 워크로드에 대해서도 평균이 더 빠릅니다. 그러나 하드 페이지 오류 처리, 페이지 프리 페치 및 페이지 스와핑은 HDD에서 느려집니다. 일반적인 워크로드에 4GB 미만의 메모리가 필요한 경우 8GB 시스템이 4GB DRAM + 16GB Optane SSD 시스템보다 느릴 수 있습니다.
인터넷 검색이나 텍스트 편집에 노트북을 사용하려는 경우 랩톱이 좋습니다. Optane SSD는 부팅 시간을 지원하고 가장 자주 액세스하는 파일에 빠르게 액세스 할 수 있으며 추가 보조 스토리지로 사용할 수 있습니다. 따라서 4GB의 DRAM보다 16GB의 Optane SSD를 더 많이 지불하고 있지만 그에 대한 고유하고 확실한 이점을 얻을 수 있습니다. 그러나 RStudio와 같이 언급 한 다른 응용 프로그램 중 일부 에는 최소 4GB 메모리가 필요 합니다. 일반적으로 브라우저와 RStudio를 동시에 사용하거나 다른 앱을 사용하는 경우 메모리가 8GB 이상인 시스템을 확보해야합니다. 그래도 옵 테인 SSD는 그다지 좋을 것입니다.