CCoW: 워크로드의 공간적 지역성을 고려한 기록 중 복사 최적화 3부

Apr 02, 2024

3. CCoW 디자인

이 섹션에서는 먼저 Copy-On-Write를 개선하는 동기를 소개하고 Coverage-Based Copy-On-Write(CCoW)의 기본 개념을 설명합니다. 그런 다음 CCoW가 다양한 시나리오에서 지역성을 캡처하는 방법과 낮은 오버헤드로 지역성을 캡처하는 최적화에 대해 설명합니다.

기억은 정보를 획득, 저장, 검색하는 사람들의 능력입니다. 사람들의 기억은 시나리오에 따라 달라질 수 있습니다. 이 기사에서는 다양한 시나리오에서 메모리 간의 관계를 살펴보겠습니다.

첫 번째는 학습 시나리오입니다. 학습은 인간이 지식과 ​​기술을 습득하는 중요한 수단이다. 학습 과정에서 기억은 중요한 역할을 합니다. 기억력이 강하면 새로운 지식을 더 빨리 익히고 배운 지식을 더 쉽게 유지할 수 있습니다. 따라서 학습 시나리오에서 우리는 기억력을 더 잘 향상시키기 위해 생각을 명확하고 집중적으로 유지해야 합니다.

두 번째는 관광 현장이다. 여행을 통해 우리는 다양한 문화와 환경을 경험할 수 있어 시야가 더욱 풍요로워집니다. 여행하는 동안 우리는 지리적 위치, 사람, 관습 및 기타 정보를 기억함으로써 풍부한 문화적 지식을 얻을 수 있습니다. 그러므로 여행 현장에서는 주의 깊게 관찰하고 적극적으로 경험함으로써 기억력을 향상시킬 필요가 있습니다.

다시 한번 작업 현장입니다. 직장에서 우리는 데이터, 연락처, 작업, 계획 등과 같은 많은 양의 정보를 처리해야 합니다. 기억력이 충분하지 않으면 업무 효율성과 성과에 영향을 미칩니다. 따라서 업무 시나리오에서는 기록과 정리를 잘하고 '정보 연결' 범위를 최대한 좁히도록 노력해야 합니다. 이런 식으로 우리는 기억력을 더 잘 향상시킬 수 있습니다.

마지막으로 인생 장면이 있습니다. 인간은 주소, 전화번호, 그날의 작업 등과 같은 많은 일상적인 것들을 기억해야 합니다. 기억력이 부족하면 생활에 많은 문제가 발생하게 됩니다. 그러므로 생활 장면에서 우리는 기억력을 발휘해야 합니다. 우리는 연상적 사고를 키우고 조용히 반복함으로써 기억력을 향상시킬 수 있습니다.

요약하자면, 다양한 시나리오의 메모리는 밀접하게 관련되어 있습니다. 우리는 의도적인 연습과 집중을 통해 기억력을 향상시키고 다양한 시나리오에서 더 나은 성과를 달성할 수 있습니다. 낙관적인 태도로 더 나은 삶과 경력을 추구합시다. 기억력 향상이 필요하다고 볼 수 있는데, Cistanche Deserticola는 아세틸콜린 수치와 성장인자 수치를 높이는 등 신경전달물질의 균형도 조절할 수 있기 때문에 기억력을 크게 향상시킬 수 있습니다. 이 물질은 기억과 학습에 매우 중요합니다. 또한 Cistanche Deserticola는 혈류를 개선하고 산소 전달을 촉진하여 뇌에 충분한 영양분과 에너지를 공급하여 뇌 활력과 지구력을 향상시킬 수 있습니다.

improve working memory

기억력 향상을 위한 보충제 알아보기

3.1. 동기 부여

앞에서 설명한 대로 쓰기 중 복사 메커니즘은 최신 OS에서 가상 메모리 기능을 구현하는 데 핵심적인 역할을 합니다. 그러나 데이터센터에서 흔히 볼 수 있는 현대 컴퓨팅 환경과 쓰기 집약적인 작업 부하에서는 공간적 이점이 줄어들고 있다[21,22].

스토리지 메모리(SCM) 및 영구 메모리와 같은 새로운 메모리 기술을 사용하면 메모리 모듈의 데이터 밀도를 높이는 동시에 데이터 단위당 비용을 낮출 수 있습니다.

요즘에는 테라바이트 규모의 엄청난 양의 메모리를 갖춘 노드를 구축하는 것이 그 어느 때보다 저렴해졌습니다. 또한 클라우드 서비스 제공업체는 데이터 센터의 노드가 메모리 활용도가 낮아 메모리의 40~50%가 사용되지 않고 있다고 보고했습니다[23~26]. 이러한 상황에서는 성능이 중요한 시스템에서 성능을 위해 메모리 공간을 교환하는 것이 가능해집니다[27]. 성능 측면의 이점도 줄어들고 있습니다.

쓰기 중 복사의 성능 이점은 페이지 오류 처리의 빈도와 성능으로 특징지어질 수 있습니다. 하위 프로세스를 생성하는 동안 모든 페이지에 대한 쓰기 권한이 삭제됩니다. 정확성의 관점에서 볼 때 이는 불가피합니다. 그러나 각 쓰기 요청을 처리할 때 포크 이후 페이지 오류가 자주 발생합니다. 이러한 쓰기 페이지 폴트 폭풍은 하위 프로세스뿐만 아니라 상위 프로세스에도 발생합니다.

설상가상으로 최근에는 페이지 폴트 처리 시간이 개선되지 않았으나 보안상의 이유로 길어지는 경향이 있습니다. 과거에는 전체 커널 주소 공간이 사용자 프로세스 주소 공간의 일부에 지속적으로 매핑되었습니다.

그러나 이 주소 공간 레이아웃은 프로세서의 추측 실행을 이용하여 악의적인 사용자 프로세스가 커널 주소 공간의 중요한 데이터를 간접적으로 읽을 수 있도록 허용합니다[28,29].

이러한 중요한 보안 취약성을 완화하기 위해 최신 OS는 KPTI(커널 페이지 테이블 격리)를 사용합니다. 일반적으로 커널 주소 공간의 제한된 부분만 프로세스 주소 공간에 매핑되고 나머지 커널 주소 공간은 인터럽트 및 시스템 호출 처리 중에 동적으로 매핑 및 매핑 해제됩니다. 이는 시스템 성능을 크게 저하시킬 수 있는 TLB 플러시를 동반해야 합니다.

이 작업에서 우리는 메모리 참조의 공간적 지역성을 활용하여 쓰기 시 복사의 오버헤드를 줄이는 것을 목표로 합니다. 현재 Copy-On-Write는 페이지별로 발생하며 페이지 폴트가 발생할 때마다 OS가 개입해야 합니다. 우리의 핵심 아이디어는 메모리 액세스의 공간적 지역성을 활용하여 OS 개입 빈도를 줄이는 것입니다. 페이지에 쓰기 위해 액세스하면 가까운 페이지에도 곧 쓰기 위해 액세스할 가능성이 높습니다.

따라서 결함이 있는 페이지뿐만 아니라 근처 페이지에 대해서도 쓰기 중 복사를 함께 수행하면(즉, 근처 페이지 사전 복사) 페이지 오류 처리 중에 쓰기 중 복사에 대한 오버헤드를 상쇄할 수 있습니다. 그러나 우리는 근처의 모든 페이지를 맹목적으로 항상 복사하지 않도록 주의해야 합니다.

복사된 페이지를 나중에 기록하는 경우 사전 복사에 대해 발생한 오버헤드가 회수됩니다. 그러나 복사된 페이지를 나중에 작성하지 않으면 사전 복사는 시간적, 공간적 측면에서 추가 오버헤드만 발생시킵니다.

ways to improve your memory

따라서 복사할 적절한 대상 페이지를 식별하는 것이 중요합니다. 페이지 오류 처리 오버헤드를 최소화하기 위해 유사한 접근 방식이 사용되었습니다. Linux는 소위 'fault around' 기능을 사용합니다. 페이지 오류를 처리하는 동안 Linux는 오류 페이지 주변에 있는 페이지에 대한 페이지 오류 처리를 시작합니다[2]. 그러나 이 기능은 파일 지원 메모리 영역에 대한 읽기 페이지 오류에만 적용됩니다.

제안된 아이디어가 익명 페이지에 대한 페이지 오류 작성에 중점을 두고 있다는 점을 감안할 때 우리의 접근 방식은 오류 우회 기능과 다르다고 주장할 수 있습니다. OS의 거대한 페이지.

이러한 시스템은 일반적으로 거대한 페이지로 변환할 가장 좋은 후보 페이지를 식별하고 효율적으로 승격(즉, 기본 페이지를 거대 페이지로 변환)하거나 수준을 낮추는(즉, 거대 페이지를 기본 페이지로 변환) 방법을 제시합니다. 거대한 페이지.

그러나 제안된 방식과 관계없이 Copy-On-Write는 필요한 경우 거대한 페이지를 기본 페이지로 분할한 후 기본 페이지 세분성에서만 수행됩니다. 따라서 쓰기 시 복사 성능 특성은 THP(투명 거대 페이지) 메커니즘을 사용하는 기본 Linux 시스템과 동일합니다. 대조적으로, 우리가 제안하는 방식은 메모리 액세스의 지역성 정도에 따라 다른 세분성으로 쓰기 시 복사를 수행한다는 점에서 독특합니다.

3.2. 공간적 지역성 식별

제안된 계획을 실현하려면 두 가지 어려운 문제를 고려해야 합니다. 첫째, 대상 페이지를 정확하고 시기적절하게 식별하여 사전 복사의 이점을 최대화하고 사전 복사에 대한 오버헤드를 최소화해야 합니다.

작성자가 페이지를 복사하면 해당 페이지는 더 이상 페이지 오류를 유발하지 않습니다. 이는 사실상 시스템이 쓰기 액세스를 최적화할 기회를 잃었음을 의미합니다. 따라서 시스템은 복사해야 할 페이지와 복사하지 말아야 할 페이지를 결정하기 위해 향후 페이지 사용량을 예측할 수 있어야 합니다. 둘째, OSscan은 성능이 중요한 메모리 관리 하위 시스템에서 시간이 많이 걸리는 처리를 감당할 수 없기 때문에 대상 페이지를 식별하는 데 드는 오버헤드가 낮아야 합니다.

섹션 2에서 설명한 것처럼 최신 OS의 많은 가상 메모리 기능은 쓰기 중 복사 메커니즘을 기반으로 합니다. 따라서 전체 구현이 충분히 효율적이지 않으면 오버헤드가 최적화된 기록 중 복사의 이점보다 쉽게 ​​커질 수 있습니다.

페이지의 미래를 예측하기 위해 먼저 사용자 프로세스에 대한 포크 기록을 수집합니다. 특히 OS는 각 프로세스가 호출하는 포크 ​​수를 모니터링합니다. 프로세스 수가 적다는 것은 프로세스를 활용할 기회가 거의 없으며 OS가 이 프로세스에 대한 쓰기 페이지 오류를 완전히 추적할 필요가 없음을 의미합니다.

반대로 프로세스가 임계값 이상으로 포크 시스템 호출을 호출하면 시스템은 최적화 기회를 기대할 수 있습니다. 이는 주기적으로 포크를 호출하여 메모리 내 스냅샷을 찍는 Redis나 여러 명령줄 명령을 포크하는 셸 스크립트에서 발생합니다. 이에 대한 응답으로 시스템은 프로세스에 대한 페이지 오류를 추적하기 시작합니다.

improve brain

다음으로, 애플리케이션의 전반적인 동작이 크게 변하지 않는다는 가정 하에 이력을 통해 최적화 기회를 예측하는 방법을 제안합니다. 이를 위해 프로세스 주소 공간을 고정된 크기의 영역으로 나눕니다. 각 영역은 비트맵을 유지 관리하며, 각 비트는 해당 영역의 페이지에 해당합니다. 새로 채워진 VMA(가상 메모리 영역)의 경우 모든 비트맵이 지워진 상태로 프로세스가 생성됩니다. 부분 전체 VMA가 매핑 해제되면 해당 주소 범위의 비트맵도 해제됩니다.

비트맵은 VMA에서 채워지는 부분에만 할당되며, 14KB 페이지 정보가 1비트로 요약됩니다. 따라서 비트맵에 대한 공간 오버헤드는 채워진 주소 공간의 약 0.003%입니다. 처음에는 쓰기가 Copy-On-Write를 통해 그대로 처리됩니다.

쓰기 액세스는 페이지 폴트 핸들러에 트랩되어 해당 비트맵 항목이 설정됩니다. 시간이 지남에 따라 비트맵은 해당 지역에 대한 액세스를 효과적으로 캡처하고 적용 범위의 정도를 정량화할 수 있습니다. 영역의 적용 범위는 다음과 같이 해당 영역의 모든 페이지 중 복사 시 복사 페이지의 비율로 계산됩니다.

improve cognitive function

시스템이 4KB 페이지를 사용하고 주소 공간이 2MB 영역으로 나누어져 있다고 가정합니다.

그러면 각 지역에는 512 4KB 페이지가 있습니다. 300페이지가 쓰기 시 복사되는 경우 영역 적용 범위는 300/512 × 100=58.6%입니다. 영역 적용 범위가 높을수록 해당 지역은 사전 복사의 최적화 기회를 통해 더 많은 이점을 얻을 수 있습니다. 이 적용 범위 정보는 포크를 통해 전달되며 근처 페이지 복사의 이점을 결정하는 측정 기준으로 사용됩니다.

특히, 메모리 영역의 적용 범위가 높으면 해당 영역의 페이지는 결국 복사 시 작성될 가능성이 높습니다. 따라서 페이지에 대한 쓰기 페이지 오류를 처리하는 동안 해당 영역의 다른 페이지를 미리 복사하는 것이 좋습니다. 반면, 적용 범위가 낮으면 페이지를 미리 복사할 때 최적화 기회가 거의 없습니다. 따라서 오류가 있는 페이지만 페이지 오류 처리기에 의해 기록 시 복사됩니다.

이후부터는 이 방식을 커버리지 기반 기록 중 복사(CCoW)라고 부르겠습니다. 그림 1은 CCoW의 개념을 보여줍니다. 두 개의 영역(0 및 1개 영역)이 있으며 각각 6페이지로 구성됩니다. 

녹색 음영이 있는 페이지는 쓰기 중 복사로 채워집니다. 프로세스가 포크 시스템 호출을 호출하면 녹색 페이지를 포함한 모든 페이지에 대한 쓰기 권한이 포크 중에 삭제됩니다. 집약성이 높은 지역을 결정하는 임계값이 60%라고 가정합니다. 지역 0에서는 포크 이전에 4개 페이지(페이지 1, 2, 3, 4)가 쓰기 시 복사되어 4/6=66%의 적용 범위를 제공했습니다.

따라서 이 영역은 공간적 지역성이 높은 것으로 간주되며 빨간색으로 음영 처리된 페이지 3에 대한 페이지 폴트를 처리하기 위해 모든 페이지가 복사됩니다. 반면, 하위 영역은 포크 이전에 6페이지 중 2페이지가 Copy-On-Write되었으므로 33%의 적용 범위를 제공합니다.

따라서 이 지역은 임계값보다 낮은 적용 범위를 가지며 이는 해당 지역의 공간적 집약성이 낮다는 것을 의미합니다. 따라서 쓰기를 위해 페이지 9에 액세스하면 일반적인 쓰기 중 복사 절차와 마찬가지로 페이지 오류 처리기에서 오류가 있는 페이지만 쓰기 시 복사됩니다.

improve memory


For more information:1950477648nn@gmail.com

당신은 또한 좋아할지도 모릅니다