Linux 7.0, PostgreSQL 성능 50% 감소… 해결책은?

by DD
1개월 전
조회수 26

AWS 엔지니어, Linux 7.0에서 PostgreSQL 성능 저하(Performance Regression)를 보고

커널 프리emption 모드(Kernel Preemption Mode) 변경이 주요 원인으로 지목됨

해결책으로 RSEQ(Restartable Sequences) 활용이 제시되었으나, PostgreSQL 측의 대응 필요

커뮤니티에서는 하위 호환성(Backward Compatibility) 문제와 해결책에 대한 다양한 의견 제시

Linux 7.0의 프리emption 모드 변경과 성능 저하

AWS 엔지니어는 Linux 7.0 커널에서 PostgreSQL의 처리량(Throughput)이 이전 버전 대비 약 50% 감소했다고 보고했다. 기술적으로 보면, 커널 프리emption 모드(Kernel Preemption Mode)의 제한으로 인해 사용자 공간(User Space)에서 스핀락(Spinlock)에 소요되는 시간이 증가한 것이 원인으로 지목되었다. 이는 데이터베이스 서버의 응답 시간(Response Time) 증가로 이어져, 전반적인 성능 저하를 야기했다.

RSEQ(Restartable Sequences)를 활용한 해결 방안

문제 해결을 위해, Linux 7.0에서 도입된 RSEQ(Restartable Sequences)를 PostgreSQL에서 활용하는 방안이 제시되었다. RSEQ는 스핀락으로 인한 성능 저하(Performance Degradation)를 완화하기 위한 기술로, PostgreSQL 코드베이스(Codebase)에 적용하여 락(Lock) 경합을 줄일 수 있다. 하지만, PostgreSQL 측의 코드 변경이 필요하며, 이는 추가적인 개발 및 테스트를 요구한다.

하위 호환성(Backward Compatibility) 문제와 커뮤니티 반응

커뮤니티에서는 Linux 7.0의 변경 사항이 기존 사용자 공간 애플리케이션에 영향(Impact)을 미치는 것에 대한 우려를 표명했다. 특히, 하위 호환성(Backward Compatibility)을 유지하지 않고 성능 저하를 유발하는 변경은 바람직하지 않다는 의견이 지배적이다. 데이터베이스 서버(Database Server)의 성능 저하는 서비스 중단으로 이어질 수 있으므로, 신중한 접근이 필요하다는 지적이다.

성능 저하에 대한 다양한 의견

일부 개발자는 최신 커널을 바로 운영 환경에 적용하는 것에 대한 주의(Caution)를 강조하며, 안정적인 환경을 위해 기존 설정을 유지하는 것이 중요하다고 언급했다. 또한, PostgreSQL의 성능 튜닝(Performance Tuning)을 통해 문제를 해결할 수 있다는 의견도 제시되었다. 하지만, 근본적인 해결을 위해서는 Linux 커널 또는 PostgreSQL 측의 수정이 필요하다는 데 의견이 모아진다.

AWS engineer reports PostgreSQL perf halved by Linux 7.0, fix may not be easy

댓글 0

첫 번째 댓글을 남겨보세요!