아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
레딧 favicon레딧

PostgreSQL, 얼마나 느려질 수 있을까? 42,000배의 역설!

by DD
2026-03-08
4개월 전
조회수 26

PostgreSQL의 성능을 의도적으로 저하시키는 설정을 통해 성능 저하의 원리(Performance Degradation)를 분석함

shared_buffers, autovacuum, WAL(Write-Ahead Log) 설정을 조절하여 성능을 극적으로 감소시킴

random_page_cost 및 cpu_index_tuple_cost 설정을 통해 인덱스(Index) 사용을 억제하여 성능을 저하시킴

io_method 및 io_workers 설정을 통해 I/O를 단일 스레드로 제한하여 성능을 더욱 저하시킴

공유 버퍼(Shared Buffers) 설정 및 성능 저하

저자는 shared_buffers 설정을 조정하여 PostgreSQL의 성능을 저하시키는 실험을 진행했다. 초기 10GB에서 8MB로 설정했을 때, 버퍼 캐시(Buffer Cache) 크기가 줄어들면서 디스크 I/O가 증가하여 성능이 1/7로 감소했다. 추가적으로 2MB로 설정했을 때는 500 TPS 미만으로 떨어졌다. 이는 데이터 격리 아키텍처(Data Isolation Architecture)를 약화시켜 디스크 접근 빈도를 높인 결과이다.

Autovacuum 설정 및 성능 저하

Autovacuum 설정을 통해 PostgreSQL의 성능을 저하시키는 방법도 제시되었다. autovacuum_vacuum_insert_threshold를 1로 설정하고, autovacuum_vacuum_threshold, autovacuum_vacuum_scale_factor를 0으로 설정하여 Autovacuum을 빈번하게 실행하도록 했다. 또한, maintenance_work_mem을 128kB로 설정하여 Autovacuum 작업의 메모리 사용량을 제한했다. 이러한 설정은 불필요한 작업을 증가시켜 성능 저하를 유발한다.

WAL(Write-Ahead Log) 설정 및 성능 저하

WAL 설정을 통해 성능을 저하시키는 방법도 제시되었다. wal_writer_flush_after를 0으로 설정하고, wal_writer_delay를 1로 설정하여 WAL 플러시(Flush)를 빈번하게 발생시켰다. 또한, min_wal_size와 max_wal_size를 32MB로 설정하고, checkpoint_timeout을 30초로 설정하여 체크포인트(Checkpoint)를 자주 발생시켰다. 이러한 설정은 디스크 I/O를 증가시켜 성능 저하를 유발한다.

인덱스(Index) 사용 억제 및 성능 저하

저자는 random_page_cost와 cpu_index_tuple_cost 설정을 통해 인덱스 사용을 억제하여 성능을 저하시켰다. 두 설정을 1e300으로 설정함으로써, PostgreSQL이 인덱스 대신 테이블 스캔을 사용하도록 유도했다. 이는 무작위 페이지 접근 비용을 높여 인덱스 사용을 비효율적으로 만들고, 결과적으로 성능을 저하시키는 결과를 가져왔다.

I/O 단일 스레드 설정 및 성능 저하

PostgreSQL 18 버전부터 도입된 io_method와 io_workers 설정을 활용하여 I/O를 단일 스레드로 제한했다. io_method를 worker로 설정하고, io_workers를 1로 설정함으로써 모든 I/O 작업을 단일 스레드로 처리하도록 했다. 이로 인해 I/O 병목 현상이 발생하여 성능이 더욱 저하되었다. 이는 데이터 격리 아키텍처(Data Isolation Architecture)의 또 다른 측면을 보여준다.

Making Postgres 42,000x slower because I am unemployed
고급
아키텍처
PostgreSQL
Linux
SQL
Data
DevOps
원문 읽기
원문 읽기

댓글 0

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

관련 추천 글

Linux 7.0, PostgreSQL 성능 절반으로 뚝... 원인은?

레딧 로고

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

해커뉴스 로고

PostgreSQL, OOM 킬러(OOM Killer)로부터 데이터베이스를 보호하는 방법

레딧 로고

PostgreSQL, Materialized View 업데이트 속도 혁신!

레딧 로고

코드 리뷰의 맹점을 파헤치다!

데브투 로고

반복적인 SQL 업무, AI 에이전트 '곰곰이'가 해결!

요즘IT 로고
레딧 favicon레딧
고급
아키텍처
PostgreSQL
Linux
SQL
Data
DevOps

관련 추천 글

Linux 7.0, PostgreSQL 성능 절반으로 뚝... 원인은?

레딧 로고

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

해커뉴스 로고

PostgreSQL, OOM 킬러(OOM Killer)로부터 데이터베이스를 보호하는 방법

레딧 로고