Render 512Mb Oom Rails Solid Queue

Render 512MB Starter에서 Rails OOM 삽질 — render.yaml이 범인이었다

Rails 8 앱을 Render Starter 플랜(512MB)에 올리고 나서 주기적으로 메모리 초과로 서비스가 다운됐다. puma.rb의 스레드 수를 줄이고, queue.yml도 최적화했는데 효과가 없었다. 한참 삽질하고 나서야 진짜 원인을 찾았다. 증상 Render 대시보드에서 OOM(Out of Memory) 이벤트가 반복됨. 메모리 사용량이 512MB를 넘기면서 프로세스가 강제 종료. 첫 번째 시도 — puma.rb 수정 puma.rb의 스레드 기본값을 낮췄다. # config/puma.rb threads_count = ENV.fetch("RAILS_MAX_THREADS", 2) # 3에서 2로 threads threads_count, threads_count workers ENV.fetch("WEB_CONCURRENCY", 1) 배포했는데 여전히 OOM 발생. 이상했다. 진짜 원인 — render.yaml이 코드보다 우선 render.yaml을 보니 이렇게 되어 있었다. ...

2026-01-13 · 2분 소요 · Seunghan
Rails Solidqueue Render Manual Assignment

Rails 8 + SolidQueue Render 배포 삽질 3연타 — 테이블 누락, AI 담당자, 수동 배정

오늘 Rails 8 기반 ITSM 시스템을 Render에 배포하면서 연속으로 삽질을 했다. 각각 원인이 달랐지만 사슬처럼 연결된 문제들이었다. 삽질 1 — Application exited early with SolidQueue 증상 Render 배포 로그에 빌드는 성공인데 실행하자마자 죽는다. ==> Build successful 🎉 ==> Deploying... ==> Running 'bundle exec puma -C config/puma.rb' [87] Puma starting in cluster mode... [87] * Preloading application ==> Application exited early 원인 찾기 Render 로그를 자세히 보면 스택 트레이스가 있다. from solid_queue-1.3.1/lib/solid_queue/configuration.rb in 'recurring_tasks' from solid_queue-1.3.1/lib/solid_queue/supervisor.rb:15 in 'start' from solid_queue-1.3.1/lib/puma/plugin/solid_queue.rb:81 in 'start_solid_queue' ... [69] Detected Solid Queue has gone away, stopping Puma... SolidQueue::RecurringTask.from_configuration 내부에서 load_schema!가 호출되고, SchemaCache#columns에서 터진다. 즉 solid_queue_recurring_tasks 테이블이 DB에 없다. ...

2026-01-06 · 4분 소요 · Seunghan
Rails8 Deploy Lessons

Rails 8 첫 배포에서 마주친 5가지 문제: 보안, 마이그레이션, 호환성

Rails 8 프로젝트를 처음 클라우드 서비스에 배포하면서 하루 동안 연속으로 5가지 문제를 만났다. 각각 독립적인 문제처럼 보였지만, 하나를 고치면 다음 문제가 드러나는 패턴이었다. 기록으로 남긴다. 1. 공개 저장소에 민감한 파일이 들어간 경우 증상 git log --all --full-history -- config/secrets.yml 같은 명령으로 확인해보면, 예전 커밋에 secret_key_base가 하드코딩된 파일, 앱 서명 키스토어 파일 등이 포함되어 있다. 해결: git filter-repo로 히스토리에서 완전 삭제 pip install git-filter-repo # 특정 파일들을 히스토리 전체에서 제거 git filter-repo --path config/secrets.yml --invert-paths git filter-repo --path app-release.keystore --invert-paths # 강제 푸시 git push origin main --force 주의: --force 는 팀 작업 중이라면 사전 공지 필수. 모든 팀원이 re-clone해야 한다. ...

2025-11-11 · 4분 소요 · Seunghan
개인정보처리방침 문의