"모든 애플리케이션에 대해" 투명한 거대 페이지를 지원하는 배포판은 무엇입니까?

"모든 애플리케이션에 대해" 투명한 거대 페이지를 지원하는 배포판은 무엇입니까?

LWN이 또 헷갈리네요.

거대한 페이지, 느린 드라이버 및 긴 대기 시간——LWN.net, 2011

흔치 않은 일이지만 막상 일어나면 재미가 없습니다. 속도가 느린 저장 장치(예: USB 스틱 또는 음악 플레이어)를 연결하고 rsync와 같은 명령을 실행하여 대량의 데이터를 장치로 이동합니다. 수술에 시간이 걸리는 것은 놀라운 일이 아닙니다. 무작위 과정이 중단되기 시작하면 더욱 놀랍습니다.

페이지 오류가 발생하면 프로세스(예: 웹 브라우저)가 작업을 수행하고 있습니다... 투명 hugepages 기능이 커널에 내장되어 있는 경우(대부분의 리셀러는 이 기능을 활성화합니다.), 페이지 폴트 핸들러는 거대한 페이지를 할당하려고 시도합니다.

Red Hat Enterprise Linux에서는 LWN에 설명된 대로 투명 거대 페이지가 활성화되어 있음을 알 수 있습니다.

Red Hat Enterprise Linux 6 및 7에서 투명 대용량 페이지를 어떻게 사용, 모니터링 및 비활성화합니까?

THP(Transparent Huge Pages)는 RHEL 6의 모든 애플리케이션에 대해 기본적으로 활성화되어 있습니다.

RHEL 7의 경우 다음을 참조하세요.Red Hat Enterprise Linux 7에서 THP(Transparent Huge Pages)를 비활성화하는 방법. RHEL 8의 경우 다음을 참조하세요.Red Hat Enterprise Linux 8에서 THP(Transparent Huge Pages)를 비활성화하는 방법. [구독자 전용 콘텐츠 링크].

그러나 Fedora Workstation 29 노트북을 살펴본 결과 "모든 응용 프로그램"에서 Transparent Huge Pages가 활성화되어 있지 않은 것으로 나타났습니다.

$ cat /sys/kernel/mm/transparent_hugepage/enabled 
always [madvise] never
$ uname -r
4.19.13-300.fc29.x86_64

일부 가상 머신도 확인했습니다. Ubuntu Desktop 18.04(커널 4.15.0-43-generic)와 Debian 9 데스크톱 설치(커널 4.9.0-8-amd64)에서도 동일한 것을 확인했습니다. (그리고 나는 데비안에 "서버" 설치, 스핀 또는 패키지가 있다고 믿지 않습니다. 데비안에는 가장 일반적인 서버 소프트웨어를 설치하기 위한 몇 가지 다른 "작업"이 있을 뿐입니다. 따라서 데비안에는 이것이 가능한 곳이 없다고 생각합니다. 서버 구성에 따라 활성화됩니다).

  1. Fedora Server 29는 모든 애플리케이션에 대해 투명한 대용량 페이지를 지원합니까?
  2. Ubuntu Server 18.04는 모든 애플리케이션에 대해 투명한 대용량 페이지를 지원합니까?
  3. 이러한 배포판 중 하나의 다른 버전 번호가 2011년경에 모든 애플리케이션에 대해 투명한 거대 페이지를 가능하게 하였습니까?

[줄 사이: 여기서 LWN.net이 옳은가, 틀린가? 그 경우예전에는정확하게 말하면, 대부분의 게시자는 투명한 hugepage를 활성화하고 이것이 일부 일반적인 "데스크톱"(또는 노트북) 설정에 영향을 미친다는 것을 암시합니다. 현재 버전의 Fedora Workstation, Debian 및 Ubuntu Desktop이 모든 사람에게 작동하지 않는 이유를 알고 있습니까? ]

답변1

@Stephen_Kitt는 "2011년에 커널 2.6.32로 출시된 Debian 6에는 투명한 hugepage가 없었고 거대한 lbfs가 있었습니다. Debian은 2.6.38에서 4.13까지 "madvise"를 사용했습니다."항상"으로 전환됩니다. 따라서 Debian 7~9는 "madvise"를 사용하고 Debian 10은 "always"를 사용합니다. "

서버에 설치된 일부 Ubuntu 설치에는 모든 응용 프로그램에 대해 큰 페이지가 활성화되어 있는 것으로 보고되었습니다. (즉, 웹 검색을 통해 Ubuntu 설치에서 큰 페이지를 비활성화하는 방법을 묻는 일부 사용자가 나타났습니다 :-). ). 그 중 일부는 EC2 이미지를 구체적으로 언급합니다. @couling은 AWS의 Ubuntu 서버가 모든 애플리케이션에 대해 대형 페이지를 활성화하지 않는다고 보고합니다. 그래서 우분투 서버에 대해서는 답변하기가 좀 어려운 것 같습니다. 그러다가 AskUbuntu 질문을 찾았습니다."[Ubuntu] 11.04 커널 .config 파일은 어디서 구할 수 있나요?".

Ubuntu 16.04에서는 AWS(Amazon Web Services)와 같은 특정 빌드를 사용할 수 있습니다. 커널 버전 4.4.0-125.150을 확인하세요.AWS 커널 활성화TRANSPARENT_HUGEPAGES_ALWAYS. 하지만공통 코어에는 없습니다..

Ubuntu 18.04에서는 범용 커널이 여전히 활성화되어 있지 않습니다.TRANSPARENT_HUGEPAGES_ALWAYS.

우분투11.10TRANSPARENT_HUGEPAGES2011년 10월에 출시된 이 버전은 아마도 활성화된 첫 번째 버전이었을 것입니다 . 활성화되지 않은 것 같습니다 TRANSPARENT_HUGEPAGES_ALWAYS.

현재 SLES(SUSE Linux Enterprise 버전 15, 최소 버전 12 및 11)도 현재 RHEL 설정과 일치한다고 생각합니다. 즉, 모든 애플리케이션에 대해 투명한 대용량 페이지를 활성화합니다.

[힌트: LWN.net 이 내용이 맞나요, 틀렸나요? ]

커널 개발자 Mel Gorman이 인용한 세 가지 버그 보고서는 모두 느린 USB 스틱이나 SD 카드에 복사할 때 영향을 받는 웹 브라우저와 관련되어 있습니다.. 따라서 이 기사의 요점은 근거가 충분합니다. 보고서 중 하나는 "SUSE 내부"입니다. 다른 두 가지 경우에는 커널 구성이 어디서 왔는지 즉시 명확하지 않습니다.

@couling이 지적했듯이 sysfs 파일에 표시되면 [madvise]THP가 완전히 비활성화되었다고 말해서는 안됩니다. 이는 이 경우처럼 THP가 모든 응용 프로그램에 자동으로 적용되지 않는다는 것을 의미합니다 [always]. LWN 기사는 웹 브라우저와 관련하여 이러한 구별을 어느 정도 얼버무리고 있습니다. "투명한 hugepage 기능은 커널에 내장되어 있습니다."와 "페이지 오류 처리기가 hugepages 할당을 시도합니다." 사이의 구별은 작동하지 않는 것으로 알려져 있습니다 MADV_HUGEPAGE. 분명히 대부분의 유통업체는 전자를 지지하지만 후자는 나에게는 덜 명확합니다.

나는 알아차렸다소스코드에 따르면, 커널 구성을 활성화하도록 선택하면 TRANSPARENT_HUGEPAGE기본 구성은 항상 활성화되어 있습니다 TRANSPARENT_HUGEPAGE_ALWAYS.

어쩌면 LWN이 이것을 오해했을 수도 있습니다. 아니면 distro 커널이 출시되면서 일시적인 급증이 있었다 TRANSPARENT_HUGEPAGE_ALWAYS가 잠재적인 단점이 많이 발견된 후에 다시 돌아왔을 수도 있습니다. 나는 모른다.

관련 정보