PostgreSQL을 터무니없이 느리게 만드는 방법

2025-07-28
PostgreSQL을 터무니없이 느리게 만드는 방법

이 글에서는 CPU 속도 제한이나 인덱스 삭제에 의존하지 않고, `postgresql.conf` 파일의 매개변수를 조정하여 PostgreSQL을 최대한 느리게 만드는 방법에 도전합니다. 버퍼 캐시 크기(`shared_buffers`)를 극적으로 줄이고, autovacuum과 analyze를 공격적으로 트리거(`autovacuum_*` 매개변수)하며, WAL(`wal_*` 매개변수)을 최대 쓰기 빈도와 I/O 경합을 위해 구성하는 등 신중하게 선택된 일련의 조정을 통해 PostgreSQL의 TPS를 7000배 이상 감소시켜 7000+에서 한 자릿수 미만, 심지어 0.1 TPS 이하로 만들었습니다. 저자는 각 매개변수 변경의 이유와 영향을 자세히 설명하고 재현 가능한 구성을 제공합니다. 이것은 데이터베이스 매개변수 튜닝의 심오한 영향을 보여주는 흥미로운 실험입니다.

더 보기

자바스크립트 벤치마킹: JIT 컴파일러, 엔진 차이 및 시간 측정 부정확성으로 인한 혼란

2024-12-24
자바스크립트 벤치마킹: JIT 컴파일러, 엔진 차이 및 시간 측정 부정확성으로 인한 혼란

자바스크립트 성능 벤치마킹은 악명 높게 어렵습니다. 이 기사는 다음과 같은 과제를 강조합니다. JIT 컴파일러의 동적 최적화로 인해 실행 간에 결과가 크게 달라집니다. V8 및 JavaScriptCore와 같은 서로 다른 자바스크립트 엔진은 성능에 상당한 차이가 있으며, 동일한 코드라도 크게 다르게 동작합니다. 또한, 타이밍 공격을 완화하기 위해 브라우저는 의도적으로 시간 측정의 정확도를 낮추기 때문에 정확한 측정이 어렵습니다. 저자는 서버 측에서는 d8과 같은 도구를 사용하여 최적화 수준과 가비지 컬렉션을 보다 세밀하게 제어할 것을 제안합니다. 반면, 클라이언트 측 테스트는 개발자 도구에서 제공하는 제한된 정보에 크게 의존합니다. 요약하면, 자바스크립트 벤치마킹에서는 JIT 컴파일, 엔진 차이 및 시간 측정 정확도를 신중하게 고려해야 하며, 다른 언어보다 훨씬 복잡합니다.

더 보기