리눅스에서는 아래 그림의 왼쪽과 같이 파일 처리를 위해 다양한 캐시를 사용하고 있다. 빠른 메인 메모리를 캐시로 사용함으로써 느린 저장 장치 사용으로 인해 발생하는 성능 손실을 보완하여 왔다. 메인메모리와 같은 빠 저장 장치를 사용할 경우에는 이러한 페이지 캐시의 사용이 오히려 성능을 떨어뜨리는 요인으로 작용을 한다. 따라서 본 연구에서는 오른쪽과 같이 페이지 캐시를 사용하지 않는 경로 사용을 제안한다.
페이지 캐시를 사용할 경우 아래 그림의 왼쪽과 같이 페이지 캐시에 기록 될 때와 저장 장치에 기록 될 때 각각 복사 과정이 필요하다. 느린 저장 장치를 사용할 경우에는 이러한 기법을 적절하게 사용함으로써 빠른 저장 장치를 사용하는 것과 같은 효과를 통해 시스템 성능을 개선시킬 수 있지만, 메인메모리와 동등한 성능을 같는 NVDIMM과 같은 저장 장치를 사용할 경우에는 불필요한 복제 과정으로 인해 오히려 성능을 떨어뜨리는 요인이 된다. 따라서 오른쪽 그림과 같이 캐싱 과정을 거치지 않고 직접 저장 장치 접근을 통해 파일 처리를 하는 것이 성능상 유리하다.
코어 개수 변화에 큰 영향을 받지 않음 - 아래의 실험 결과는 페이지 캐시를 사용하지 않는 조건에서의 실험 결과 이며, SATA버스를 통해 연결되는 SSD의 하드웨어 경로와 저장 장치 특성에 의해 코어 개수가 증가하여도 성능의 변화가 관찰되지 않았다.
코어 증가에 따라 성능도 증가하는 모습 - 빠른 메인메모리를 저장 장치로 활용하는 기법 중 하나인 ramdisk를 이용하고 페이지 캐시를 사용하여 실험하였을 경우 아래 그림과 같이 코어 증가에 따라 성능 변화가 관찰되었다. 읽기 실험에서 성능이 떨어지는 부분은 NUMA구조의 시스템에서 메인메모리를 저장 장치로 사용하였기 때문에 나타나는 현상이다.
페이지 캐시를 사용하는 경우 보다 성능이 높게 관찰됨 - ramdisk를 사용하여 직접 저장 장치에 읽고 쓰기 실험을 하였을 경우 페이지 캐시를 사용하였을 때보다 높은 성능을 보여주는 것이 확인 되었다. 또한 임의로 읽고 쓰기에서 확인된 높은 성능은 저장 장치 특성을 잘 설명해 주고 있다.
가장 높은 성능이 관찰됨 - 빠른 메모리를 저장공간으로 사용하는 기법 중의 하나인 tmpfs의 경우, 페이지 캐시에 파일을 저장하고 최종 저장 장치에 기록하는 과정이 없다. 위의 실험 결과와 비교할 때, 복잡한 블록 입출력 과정이 제거된 것으로 기초 실험 중 가장 높은 성능 결과를 보여 주었다.
※아래 그림의 번호와 같이 각 노드의 활성화 코어 개수를 동일하게 하여 전체 코어 개수가 증가하게 하여 실험을 실시-노드별 활성화 된 코어 개수를 동일하게 한 실험으로, 노드 증가에 따른 NUMA효과를 최소화 하기 위한 실험 구성이다.
레코드 크기가 4KB일 경우 확장성이 관찰되지만, 최고 성능은 512KB에서 관찰됨 - 4KB 단위로 파일을 읽을 경우 하드웨어의 최고 성능에 도달하지 않아 120코어를 모두 사용하였어도 최고치에 비해 성능 차이가 많지 않았다. 그러나 512KB단위로 파일을 읽을 경우 최고치 도달이후 자원 경쟁으로 인한 락 문제로 인해 성능이 떨어졌으나, 최고치 성능은 가장 높았다. 16MB단위 실험에서는 가장 낮은 성능 결과를 관찰 하였는데, 이는 CPU 캐시 미스율 증가로 인해 발생하였다.
레코드 크기가 4KB일 경우와 512KB일 경우 확장성이 관찰되고 성능은 512KB일 때가 더 높게 관찰됨 - ramdisk를 사용하였을 때에 비해 최고 성능는 높았으나, 비슷한 패턴의 결과를 보여주었다.
How to Emulate Persistent Memory on an Intel® Architecture Server
인텔의 Persistent Memory Emulation Platform(PMEP)를 사용하여, 메타데이터와 파일데이터를 직접 비휘발성 메모리 저장장치에 쓰거나 읽음
fio를 사용하여 실험한 결과 1mb미만 크기 단위로 읽을 때는 기존의 tmpfs, ramfs 보다 높은 성능(녹색의 nv2nvmm)을 얻을 수 있었고 단일 노드에서는 확장성도 훨씬 좋은 것으로 확인되었다.
기존의 HDD나 SSD와 같은 느린 저장 장치를 사용하고 페이지 캐시를 사용하는 파일시스템에서는 저장 장치의 위치와 파일을 접근하는 프로세스가 위치한 노드간에 상관관계가 관찰되지 않았으나 메인메모리 버스에 연결된 빠른 저장장치를 사용하고 페이지 캐시를 사용하지 않는 제안하는 파일시스템의 경우 저장 장치의 위치가 파일 처리 성능의 주요 요인이 되는 것을 실험 결과를 통해 확인할 수 있었다.
기존 파일시스템은 저장 공간에 파일 데이터를 저장하는데 주목 하였고, 파일 처리 성능은 페이지 캐시를 통해 개선하려고 하는 것이 주된 연구 방향이었다. 본 연구에서는 빠른 메모리 저장장치를 NUMA시스템에서 사용할 때, 메인 메모리 버스에 연결된 빠른 메모리 저장장치와 프로세스의 위치가 성능 결정의 주요 요소가 되는 것을 여러 실험 분석을 통해 확인할 수 있었고, 이를 바탕으로 새로운 파일시스템 프로토타입 구현을 통해 tmpfs에 비해 확장성 있는 파일 처리가 가능함을 실험 결과를 통해 확인 가능 하였다.
(위의 그림에서 가로축은 사용하는 코어 개수를 의미하며, 실험에 사용한 시스템은 15core의 CPU가 8개 있는 NUMA구조의 서버임)