who's online 플러그인의 장점은 무엇인가요?

안녕하세요,

저는 활동량이 적은 포럼에서 이 플러그인을 2년 동안 사용해 왔습니다.
현재 온라인에 있는 사람이 있다는 것을 볼 수 있다는 것이 방문자가 가입하고 게시물을 작성하도록 장려하는 동기라고 생각합니다. 왜냐하면 지금 여기에서 답글을 읽을 사람이 있다는 것을 확인할 수 있기 때문입니다(물론 희망적인 측면에서).

제 경우에는 방문자와 등록 사용자 모두에게 온라인 사용자 목록을 표시하는 것이 가장 좋은 방법이라고 생각합니다. 활동량이 적기 때문에, 우리와 동시에 온라인에 있는 사람을 볼 수 있다는 것은 안심되는 요소입니다. 또한 다른 사람이 있을 때 더 머물고 싶어지는 경향이 있고, 반대로 주변에 아무도 (보이는) 사람이 없다면 창을 닫을 가능성이 더 높을 것이라고 상상합니다.

이 부분에 대해 어떻게 생각하시나요? 물론 커뮤니티에 따라 다를 수 있다고 생각합니다.

저는 활동량이 훨씬 많은 새 포럼에도 이 플러그인을 설치했습니다. 공동 관리자가 방문자에 대해 플러그인을 비활성화할 수 있는지 물었고, 비활성화하면 이론적으로 신규 가입 및 참여도에 부정적인 영향을 미칠지 궁금합니다.

이 부분에 대해 어떻게 생각하시나요?

5개의 좋아요

사용자에게 무언가를 보여줄 때, 사이트에서 활동이 일어나고 있다는 느낌을 줘야 한다고 생각합니다.

아마도 항상 여러 명의 사용자가 온라인 상태여야 할 것입니다(예를 들어 서로 다른 기기에서 접속하는 경우). 그러면 사이트가 텅 비어 있다는 느낌이 들지 않을 테니까요.

사이트의 종류에 따라 크게 달라지지만, 참가자들이 활동과 다수의 온라인 사용자를 보게 되면 좋은 것입니다.

오래된 포럼 중에는 제가 접속했을 때 '참가자 1명, 게스트 2명’이라는 화면을 자주 보는 곳이 있습니다. 이는 포럼이 죽어 있다는 것을 즉시 알려주는 예시입니다.

4개의 좋아요

제 새 포럼에서는 보통 5~10명의 사용자가 동시에 온라인에 있습니다.

거의 두 달 동안 중단되었던 이 포럼을 9월 25일에 마침내 공개한 이후의 활동 내역은 다음과 같습니다:

3개의 좋아요

@Stranik 가짜 사용자를 온라인으로 표시할 수 있을까요?

1개의 좋아요

우리는 Who’s Online 플러그인을 여러 달 동안 사용했습니다. 광범위한 테스트를 거쳐, 이 플러그인이 일부 성능 문제의 근본 원인임을 확인했으며, 플러그인을 비활성화한 후 해당 성능 문제(모든 문제)가 사라졌습니다. 이 내용을 여기서 일부 문서화했습니다:

도움이 되기를 바랍니다.

10개의 좋아요

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이 적용되기 때문입니다.

4개의 좋아요

@neounix, 외부 nginx와 더 높은 속도 제한이 외부 nginx에만 적용된다면 원하신다면 who’s online 기능을 다시 활성화할 수 있을 것 같습니다. 외부 nginx(원래 유지보수 페이지용으로 이미 설정되어 있던)에서 속도 제한을 높였을 뿐인데, 사이트 응답이 답답할 정도로 느렸던 것(적어도 제 기준으로는)에서 성능 차이를 거의 느끼지 못할 정도(70ms 핑 거리의 CDN 미적용 서버에서 완전 페인트까지 500ms 미만)로 개선되었습니다.

2개의 좋아요

아마도… 하지만 지금은 그 플러그인에 대한 관심이 식었습니다. 해당 기능을 '그리워한다’는 사용자는 단 한 명도 없었고, 다른 웹 개발 업무가 워낙 바빠서 사이트를 위해 그걸 조정할 만큼 가치가 있다고 생각하지 않습니다.

그래도 저희를 생각해주셔서 감사합니다.

6개의 좋아요

제 이론을 입증했습니다! :raising_hands:

11개의 좋아요