NUMA(Non-Uniform Memory Access)란 무엇입니까?

Last Updated: 2022-08-02
4.8
(73)
Summary: NUMA는 Non-Unified Memory Access의 약자로 다중 처리를 위한 컴퓨터 메모리 설계입니다. NUMA에 대한 전체 소개를 보려면 여기를 참조하십시오.

Definition

NUMA는 메모리가 단단하고 먼 저장소로 분할되는 다중 처리 아키텍처이며 메모리 액세스 시간은 프로세서에 대한 메모리 위치에 따라 다릅니다.

NUMA에서 프로세서는 로컬이 아닌 메모리보다 빠르게 로컬 메모리에 액세스합니다. NUMA의 이점은 특정 작업 부하, 특히 데이터가 일반적으로 특정 작업 또는 사용자와 밀접하게 연결된 서버에서 제한됩니다.

비균일 메모리 액세스 시스템은 다중 시스템 버스가 있는 고급 서버 플랫폼입니다. 이러한 플랫폼은 단일 보드에서 여러 프로세서를 사용할 수 있으며 모든 프로세서는 마더보드의 모든 메모리에 액세스할 수 있습니다.

NUMA 아키텍처는 논리적으로 SMP(Symmetric Multiprocessing) 아키텍처의 확장을 따릅니다. SMP와 비교하여 NUMA 아키텍처는 더 많은 수의 CPU로 확장됩니다.

기본 사상

Modern CPUs run much faster than the main memory they use. In the early stages of computing and data processing, the CPU typically runs slower than its memory. The limiting memory access number is the key to extracting high performance from modern computers.

그러나 운영 체제의 크기와 운영 체제에서 실행되는 응용 프로그램의 급격한 증가는 이러한 캐시 처리 개선 사항을 압도하는 경우가 많습니다. NUMA가 없는 다중 프로세서 시스템은 문제를 더욱 악화시킵니다.

NUMA는 각 프로세서에 별도의 메모리를 제공하여 이 문제를 해결하려고 시도하여 여러 프로세서가 동일한 메모리를 해결할 때 성능에 미치는 영향을 방지합니다.

게다가 NUMA 시스템에는 메모리 뱅크 간에 데이터를 이동하기 위한 다른 하드웨어 또는 소프트웨어가 포함됩니다. 이렇게 하면 이러한 뱅크에 연결된 프로세서의 속도가 감소합니다. 따라서 NUMA로 인한 전체 속도 증가는 주로 실행 중인 작업의 특성에 따라 달라집니다.

캐시 코히런트 NUMA(ccNUMA)

거의 모든 CPU 아키텍처는 캐싱이라고 하는 소량의 고속 비공유 메모리를 사용하여 메모리 액세스에서 참조 위치를 활용합니다.

ccNUMA는 여러 캐시가 동일한 메모리 위치를 저장할 때 일관된 메모리 이미지를 유지하기 위해 캐시 컨트롤러 간의 프로세서 간 통신을 채택합니다. 결과적으로 ccNUMA는 여러 프로세서가 동일한 메모리 영역에 빠르고 지속적으로 액세스하려고 하면 성능이 저하됩니다.

Supporting NUMA in the operating system tries to reduce the frequency of such access by allocating processors and memory in a NUMA-friendly manner and preventing the scheduling and locking algorithms necessary to make NUMA unfriendly access.

소프트웨어 지원

NUMA는 메모리 액세스 성능에 큰 영향을 미치므로 스케줄링 스레드와 프로세스가 메모리 데이터에 액세스할 수 있도록 하려면 일부 소프트웨어 최적화가 필요합니다.

  • Silicon Graphics IRIX는 1240 CPU 및 Origin Server 시리즈를 통해 ccNUMA 아키텍처를 지원합니다.
  • Microsoft Windows 7과 Windows Server 2008 R2에서는 NUMA 아키텍처의 64개 이상의 논리 코어에 대한 지원이 증가했습니다.
  • Java 7은 NUMA 인식 메모리 할당자와 가비지 수집기에 대한 지원을 추가합니다.
  • Linux 커널 버전 3.13에서는 프로세스를 메모리 근처에 배치하고 큰 투명 페이지를 사용하거나 프로세스 간에 메모리 페이지를 공유하는 것과 같은 상황을 처리하는 여러 정책을 도입했습니다. 새로운 sysctl 설정을 통해 NUMA 밸런싱을 활성화 또는 비활성화하고 다양한 NUMA 메모리 밸런싱 매개변수를 구성할 수 있습니다.
  • OpenSolaris uses groups to model the NUMA architecture.
  • FreeBSD는 버전 11.0에 초기 NUMA 관련성 및 정책 구성을 추가합니다.

Bottom Line!

In short, after going through this page, you will have a better understanding of the definition, basic concept, and work manner of Non-Unified Memory Access. You will also know that NUMA affects memory access performance so some software optimizes to support it.

How useful was this post?

Click on a star to rate it!

Average rating 4.8 / 5. Vote count: 73

No votes so far! Be the first to rate this post.

Previous Article

Mac용 최신 Google 크롬 아이콘을 원래 아이콘으로 되돌리는 방법은 무엇입니까? 요약: NUMA는 Non-Unified Memory Access의 약자로 다중 처리를 위한 컴퓨터 메모리 설계입니다. 전체 소개는 여기를 참조하세요...

Next Article

How to Recover Deleted Videos From Mac? 요약: NUMA는 Non-Unified Memory Access의 약자로 다중 처리를 위한 컴퓨터 메모리 설계입니다. 전체 소개는 여기를 참조하세요...

About Bitwar Data Recovery

3 Steps to get back 500+ kinds of deleted, formatted or lost documents, photos, videos, audios, archive files from various data loss scenarios.

Learn More

Hot Articles

    Related Articles