어제 3.3.0.beta3-dev로 업그레이드하고 AI 플러그인도 설치했습니다. 현재 해당 플러그인은 스태프(5명)만 사용하도록 설정되어 있습니다.
하지만 사이트 전체가 극도로 느리고, 심한 로드 에러가 발생하고 있습니다. 서버 로드는 정상적인 것으로 보이는데, 어디서 문제가 발생하는지 파악이 되지 않습니다.
이 문제를 해결하기 위해 확인할 수 있는 곳이 있을까요?
어제 3.3.0.beta3-dev로 업그레이드하고 AI 플러그인도 설치했습니다. 현재 해당 플러그인은 스태프(5명)만 사용하도록 설정되어 있습니다.
하지만 사이트 전체가 극도로 느리고, 심한 로드 에러가 발생하고 있습니다. 서버 로드는 정상적인 것으로 보이는데, 어디서 문제가 발생하는지 파악이 되지 않습니다.
이 문제를 해결하기 위해 확인할 수 있는 곳이 있을까요?
마지막 업그레이드 이후로 시간이 좀 지났나요? 아마 이미지 처리나 리베이킹(rebaking)을 하고 있는 것일 수 있습니다.
/sidekiq에서 현재 어떤 작업이 진행 중인지 확인해 볼 수 있습니다.
모든 것을 재시작한 후에는 정상으로 돌아왔지만, 이제 다시 극심한 부하가 발생하고 있습니다. 문제가 어디서 발생하는지 파악할 수 없는데, discourse 내에서 이 문제를 해결하는 데 도움이 되는 도구가 있을까요?
추측일 뿐이지만, Sidekiq 로그에서 눈에 띄는 유일한 것은 표시된 작업이 NotifyMailingListSubscribers라는 점입니다. 이 작업은 잠재적으로 많은 요청을 생성할 수 있습니다.
또한, 관리자 / 로그 / 오류 로그 페이지에서 오류를 확인하고 계신가요?
이런 오류가 꽤 많이 나옵니다.
오류 3가지를 확인했지만, 서로 관련이 없어 보입니다… (단정하기는 어렵지만요)
Job exception: PG::DatetimeFieldOverflow: ERROR: timestamp out of range: "271768-09-23 06:24:11.793040 BC"
LINE 1: ...sers"."moderator" = FALSE AND (users.created_at < '271768-09...
^
ActionDispatch::RemoteIp::IpSpoofAttackError (IP spoofing attack?! HTTP_CLIENT_IP="10.10.121.119" HTTP_X_FORWARDED_FOR="14.140.10.244, 14.140.10.244")
app/controllers/topics_controller.rb:1298:in `track_visit_to_topic'
app/controllers/topics_controller.rb:169:in `show'
app/controllers/application_controller.rb:422:in `block in with_resolved_locale'
app/controllers/application_controller.rb:422:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:391:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:291:in `call'
그리고 SMTP 관련 작업 예외도 하나 더 있습니다.
Discourse는 robots.txt에 의존하지 않고 자체적으로 레이트 리미팅을 수행합니다.
마이크, 감사합니다.
이것이 무엇일 수 있다는 다른 아이디어가 있나요? 유니콘을 더 많이 회전시키면 도움이 될까요?
그것이 app.yml에서 수행되나요?
네, 그 방법이 도움이 될 가능성이 높습니다.
env:
UNICORN_WORKERS: 8
를 app.yml에 추가하면 됩니다.
해당 플러그인이 설정되어 있다면 prometheus 플러그인을 사용하여 성능 수치를 확인하는 것을 권장합니다. 그렇지 않다면 성능 헤더를 사용할 수도 있습니다.
웹 로그를 분석하면 서버가 과부하 상태인 이유를 파악하는 데 큰 도움이 될 것입니다. 크롤러가 좋은 시작 지점이 될 것 같습니다.
드디어 업그레이드 완료했습니다. 새로운 DO 인스턴스로 업그레이드하면서 RAM과 CPU를 두 배로 늘렸고, 유니콘 프로세스 수도 3개에서 8개로 늘렸습니다. 데이터베이스 재인덱싱과 vacuum도 수행했는데, 이제 정상 운영이 재개된 것 같습니다!
도움 주셔서 감사합니다.