저는 활동량이 적은 포럼에서 이 플러그인을 2년 동안 사용해 왔습니다.
현재 온라인에 있는 사람이 있다는 것을 볼 수 있다는 것이 방문자가 가입하고 게시물을 작성하도록 장려하는 동기라고 생각합니다. 왜냐하면 지금 여기에서 답글을 읽을 사람이 있다는 것을 확인할 수 있기 때문입니다(물론 희망적인 측면에서).
제 경우에는 방문자와 등록 사용자 모두에게 온라인 사용자 목록을 표시하는 것이 가장 좋은 방법이라고 생각합니다. 활동량이 적기 때문에, 우리와 동시에 온라인에 있는 사람을 볼 수 있다는 것은 안심되는 요소입니다. 또한 다른 사람이 있을 때 더 머물고 싶어지는 경향이 있고, 반대로 주변에 아무도 (보이는) 사람이 없다면 창을 닫을 가능성이 더 높을 것이라고 상상합니다.
이 부분에 대해 어떻게 생각하시나요? 물론 커뮤니티에 따라 다를 수 있다고 생각합니다.
저는 활동량이 훨씬 많은 새 포럼에도 이 플러그인을 설치했습니다. 공동 관리자가 방문자에 대해 플러그인을 비활성화할 수 있는지 물었고, 비활성화하면 이론적으로 신규 가입 및 참여도에 부정적인 영향을 미칠지 궁금합니다.
Maker Forums에는 대규모 사용자 기반이 있지만, 동시에 온라인인 사용자가 ‘Who’s Online’ 아바타 표시를 무너뜨릴 정도로 많지는 않습니다. ‘Who’s Online’ 플러그인이 성능 저하의 원인이었으며, 온라인 사용자가 단 몇 명뿐인 상황에서도 요청이 타임아웃에 이를 정도로 심각한 문제였습니다. 우리는 오프라인 페이지가 포함된 외부 nginx 설정을 사용하고 있었는데, 이러한 타임아웃된 요청으로 인해 유지보수가 진행되지 않았음에도 주기적으로 유지보수 페이지가 표시되는 문제가 발생했습니다.
Digital Ocean Spaces에서 마이그레이션한 후 이미지를 로컬에서 서빙하고 있으며, 이로 인해 유니콘(unicorn) 워커를 위한 경쟁이 발생합니다. 그러나 우리는 2 CPU 4GB VM에서 모든 것을 실행하고 있고, 상대적으로 큰 데이터베이스(약 40만 개의 게시글, 6GB 데이터베이스)를 보유하고 있으므로, 각 0.5GB를 차지하는 유니콘 워커를 단순히 많이 추가할 공간이 없습니다. 이미지에 오브젝트 스토리지를 사용했다면 유니콘 워커를 위한 경쟁이 줄어들어 전반적인 영향이 더 작을 것으로 추정하지만, 현재 단 두 명의 온라인 사용자만으로도 이러한 영향이 관찰되었으므로, 여전히 상당한 영향이 발생할 가능성이 높습니다.
업데이트: 레이트 리miting flood 영역을 12r/s에서 36r/s로, burst를 12에서 36으로 수정한 결과, 'Who’s Online’의 영향이 적어도 줄었습니다. 현재 이 설정을 테스트하고 있습니다.
추가 업데이트: flood 레이트를 3배로 늘린 후, 현재까지 문제점에 대한 보고가 없습니다.
저는 외부 nginx를 사용하고 있습니다. 외부 nginx에 레이트 리miting을 적용했으며, ratelimited 템플릿을 시작점으로 사용했습니다 하지만 외부 nginx는 어떤 라우트가 정적인지 알지 못해 정적 라우트와 동적 라우트 모두에 레이트 리miting을 적용하므로, 이를 수행했을 때 정적 자산 로딩 시 많은 실패/재시도가 발생했습니다. 따라서 내부 nginx에서 레이트 리miting을 사용하기로 결정했습니다. 참고로 외부 nginx를 실행해야 하는 이유 중 하나는, 그렇지 않으면 모든 IPv6 트래픽이 docker IP 주소로 귀속되어 하나의 IP 주소인 것처럼 레이트 리miting이 적용되기 때문입니다.
@neounix, 외부 nginx와 더 높은 속도 제한이 외부 nginx에만 적용된다면 원하신다면 who’s online 기능을 다시 활성화할 수 있을 것 같습니다. 외부 nginx(원래 유지보수 페이지용으로 이미 설정되어 있던)에서 속도 제한을 높였을 뿐인데, 사이트 응답이 답답할 정도로 느렸던 것(적어도 제 기준으로는)에서 성능 차이를 거의 느끼지 못할 정도(70ms 핑 거리의 CDN 미적용 서버에서 완전 페인트까지 500ms 미만)로 개선되었습니다.