대형 트래픽 사이트의 파라미터를 어떻게 조정하나요?

24코어, 64GB VM에서 38k 사용자의 커뮤니티를 운영 중입니다. DISCOURSE_UNICORN_WORKERS를 48로 설정해 두었습니다.

최근 하루 UV가 2만, PV가 50만을 넘기면서 사이트 응답이 느려지는 현상이 발생하고 있습니다. 사용자는 실제 알림 발생 수 시간 후에야 알림을 받는 경우가 많습니다.

CPU 부하가 약 15% 수준이므로, Sidekiq 워커 수가 부족해서라고 판단하여 DISCOURSE_UNICORN_SIDEKIQS를 10, DISCOURSE_DB_POOL을 13으로 설정했습니다. 하지만 이로 인해 여러 페이지에서 500 에러가 많이 발생하고 있습니다. PostgreSQL 입장에서는 너무 큰 값인 것 같습니다.

Discourse가 수동 설정 없이 24코어 서버에 맞춰 자동으로 확장(auto-scaling)되는지, 아니면 제 사이트처럼 큰 규모의 사이트에서 적절한 동시성 파라미터를 어떻게 설정해야 하는지 궁금합니다.

리소스를 자동 확장하는 가장 쉬운 방법은 관련 파라미터의 새로운 값으로 app.yml을 재생성하는 ./discourse-setup을 다시 실행하는 것입니다.

대형 사이트 튜닝에 관한 몇 가지 주제가 있습니다. 아마도 postgres에 더 많은 메모리를 할당해야 할 것입니다.

네, Postgres에서 max_connections와 shared_buffers를 수정해 봤는데 잘 동작하는 것 같습니다.

app.yml에서 db_shared_buffers가 변경된 것을 볼 수 있지만, 컨테이너 내부의 Postgres shared_buffers는 변경되지 않은 것으로 보입니다.

어쨌든 제 문제는 대부분 해결되었습니다. 감사합니다.