리눅스 6.17 업데이트는 Kdump 크래시 커널에 대한 중요한 개선 사항을 도입하여 신뢰성과 메모리 사용 효율성을 향상시킵니다. 이전에는 크래시 커널을 위해 할당된 모든 메모리가 기본 프로덕션 커널에서 사용할 수 없었고, 크래시를 유발하는 결함으로 인한 손상을 방지하기 위해 언맵되었습니다. 이 접근 방식은 대규모 메모리 예약을 필요로 했으며, 이를 정확하게 추정하는 것이 어려웠습니다. 너무 적은 메모리를 예약하면 메모리 부족(out-of-memory, OOM) 상황이 발생할 수 있고, 너무 많은 메모리를 예약하면 프로덕션 시스템의 사용 가능한 메모리가 줄어들게 됩니다.
새로운 업데이트는 CMA(Contiguous Memory Allocator)에서 추가 크래시 커널 메모리를 예약할 수 있게 하여, 크래시 커널과 initrd 이미지에 필요한 최소한의 메모리 예약으로 줄일 수 있도록 합니다. 이 변경은 프로덕션 시스템의 메모리 발자국을 줄여주며, 크래시 커널의 대부분의 런타임 메모리를 이전에 사용 가능한 사용자 공간 메모리에서 가져올 수 있게 합니다. 이러한 조정은 Kdump를 더 신뢰할 수 있게 만들 뿐만 아니라, 더 넉넉한 예약 여유를 허용하여 메모리 낭비를 방지합니다. 그러나 덤프에 필요한 커널 메모리는 일반적으로 CMA에서 할당되지 않으며, 명시적으로 이동 가능(movable)으로 표시된 경우에만 해당됩니다. 현재 이는 메모리 벌룬(memory ballooning) 및 zswap과 같은 특정 경우에만 적용됩니다. 또한, makedumpfile에 의해 사용자 데이터는 일반적으로 덤프에 포함되지 않으므로, 사용자 데이터 덤프를 위한 새로운 CMA 예약의 적용 가능성이 제한됩니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.