Kernel Samepage Merging (KSM) 최적화 - 메타

인스타그램 웹 어플리케이션은 오래된 서버와 메모리, CPU 의 압박으로 인하여 어려움을 겪고 있었는데, Kernel Samepage Merging (KSM) 을 통하여 64GB 시스템에서 약 6GB의 메모리가 절약할 수 있었다고 소개하고 있습니다.


Kernel Samepage Merging (KSM) 은 간단하게 설명하면, 단일 복사본을 공유하여 익명 페이지의 중복을 제거하는 것입니다.


Kernel Samepage Merging (KSM) 은 `madvise()` 를 통하여 후보 메모리 영역을 추가하였는데, 커널 6.4 에서 새로운 `prctl()` 함수를 통하여 이제는


  • PR_SET_MEMORY_MERGE 플래그를 사용하면 프로세스의 모든 호환 가능한 VMA에 대해 KSM을 활성화

  • 해당 설정은 프로세스가 분기될 때 상속되므로 모든 하위 항목의 호환 가능한 VMA에도 KSM이 활성화

  • PR_GET_MEMORY_MERGE 플래그를 사용하여 KSM이 프로세스에 대해 활성화되었는지 여부를 쿼리


와 같은 기능을 수행할 수 있습니다.


최적화는 상황에 따라 달라질 수 있는데, 인스타그램의 경우


  • 워크로드는 단일 컨트롤러 프로세스와 32개 이상의 작업자 프로세스로 특징

  • 작업 프로세스는 시작할 때 인터프리터를 메모리에 로드하고 요청 시 로드되는 다른 많은 데이터 구조도 공유


하는 구조로 되어 있기 때문에 Kernel Samepage Merging (KSM) 이 유용할 수 있었습니다.

즉, Meta 엔지니어들은 잠재적으로 공유할 수 있는 메모리가 많기 때문에 KSM이 해당 작업 부하에 적합할 것이라고 생각한 것입니다.


https://lwn.net/Articles/953141/

An overview of kernel samepage merging (KSM)

Lwn

An overview of kernel samepage merging (KSM)

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 12월 12일 오전 7:27

 • 

저장 10조회 8,482

댓글 0

    함께 읽은 게시물

    가치 있는 일

    

    ... 더 보기


    👦🐍 7살 아이에게 파이썬을 가르칠 수 있을까요?

    ... 더 보기

    < 당신이 바쁜데도 성과가 없는 이유 >

    1. '바쁘다'는 건 열심히 많은 일을 하고 있다는 뜻이다.

    ... 더 보기

    < 자아는 완벽을 원하고, 문화는 완벽을 정의한다 >

    1. 모든 시대는 전부 대단하다고 느낄 정도로 다양한 방식으로 우리를 변화시켜왔다.

    ... 더 보기

    Next.js 앱을 쿠버네티스에 배포하기 (feat. ArgoCD)

    ... 더 보기

    Next.js 앱을 쿠버네티스에 배포하기 (feat. ArgoCD) | 요즘IT

    요즘IT

    Next.js 앱을 쿠버네티스에 배포하기 (feat. ArgoCD) | 요즘IT