업그레이드 중 전체 시스템이 멈춤

시도를 하고 있지만 다음 오류가 발생합니다:

$ echo 'sys.kernel.mm.transparent_hugepage.enabled=never' > /etc/sysctl.d/10-huge-pages.conf
-bash: /etc/sysctl.d/10-huge-pages.conf: Permission denied
$ sudo echo 'sys.kernel.mm.transparent_hugepage.enabled=never' > /etc/sysctl.d/10-huge-pages.conf
-bash: /etc/sysctl.d/10-huge-pages.conf: Permission denied

제 서버는 Ubuntu Server 22.04.3 LTS입니다.

루트 셸에서 실행해 보세요. 일반 셸에서는 문제가 생길 수 있습니다. (echo에 sudo를 사용하고 있지만, 파일로 파이프하는 부분에는 사용하지 않고 있습니다)

실제로 이를 수행하는 방법은 여러 가지가 있지만, 그중 하나는 다음과 같습니다.

sudo sh -c "echo 'sys.kernel.mm.transparent_hugepage.enabled=never' > /etc/sysctl.d/10-huge-pages.conf"

스크립트를 실행하고 재부팅했습니다.

그리고:

$ cat /proc/sys/vm/overcommit_memory
1

그리고

$ cat /sys/kernel/mm/transparent_hugepage/enabled
always [madvise] never

(즉, 첫 번째 값은 0에서 1로 변경되었지만 두 번째 값은 여전히 동일하게 반환됩니다.)

이상하네요.

cat /etc/sysctl.d/10-huge-pages.conf

명령을 실행하면 어떤 결과가 나오나요?

다시 echo를 시도해 보시겠어요?

아, 잠깐, 실행할 두 줄은 서로 다른 두 파일에 기록하도록 되어 있어야 하는데, 같은 파일에 두 번 기록한 것 같네요.

혹시 always [madvise] never가 의도된 값인가요?

의견 있는 가이드(Opinionated Guide)에 따르면, 그렇지 않다고 합니다. 제 생각에 Hugepages는 일반적인 환경에서는 이점이 없는 것 같습니다. 활성화하려는 전문가들은 아마도 올바르게 설정할 수 있을 정도로 숙련되어 있을 것입니다.

$ cat /etc/sysctl.d/10-huge-pages.conf
sys.kernel.mm.transparent_hugepage.enabled=never

큰 문제는 아니라고 생각해요. 시스템이 충분히 잘 작동하는 것 같습니다 :slightly_smiling_face:.

나는 오버커밋 설정을 올바르게 하는 것이 더 중요하다고 생각한다

서버용 프로세서의 종류가 차이를 만들 수도 있겠죠?

ARM vs x86? 그럴 수도 있습니다. 어딘가에서 더 많은 CPU가 더 많은 스레드 실행을 의미하고, 따라서 더 많은 메모리를 사용하게 되는지에 대해 궁금해하는 사람을 보았습니다. 실제로 그럴 수 있습니다. 물론 가장 큰 차이는 포럼 콘텐츠입니다만, 그것이 얼마나 큰 차이를 만들 수 있을지는 확신하지 못합니다. 업그레이드 단계 중 일부는 데이터베이스 스키마 조정일 것 같습니다.

그리고 커널 튜닝 변수도 있지만, 이 경우 @Jagster와 @uwe_keim은 동일한 설정을 사용하고 있었습니다.

Intel x86, 2 vCPU.

작은 규모의 포럼에서는 꽤 일반적인 구성이라고 할 수 있습니다.