jointrashposs/content/ko/docs/3.for-admin/install/resources/scale-out.md
かっこかり ab4fea3e7e
New Crowdin updates (#86)
* New translations ubuntu-manual.md (Korean)

* New translations 1.index.md (Korean)

* New translations endpoints.md (Korean)

* New translations 1.index.md (Korean)

* New translations silence.md (Korean)

* New translations theme.md (Korean)

* New translations thread-mute.md (Korean)

* New translations timeline.md (Korean)

* New translations webhook.md (Korean)

* New translations widgets.md (Korean)

* New translations word-mute.md (Korean)

* New translations 1.troubleshooting.md (Korean)

* New translations apps.md (Korean)

* New translations donate.md (Korean)

* New translations faq.md (Korean)

* New translations glossary.md (Korean)

* New translations misskey-hub.md (Korean)

* New translations kubernetes.md (Korean)

* New translations cdn.md (Korean)

* New translations nginx.md (Korean)

* New translations push-docker-hub.md (Korean)

* New translations scale-out.md (Korean)

* New translations troubleshooting.md (Korean)

* New translations disable-timelines.md (Korean)

* New translations 1.index.md (Korean)

* New translations libraries.md (Korean)

* New translations permission.md (Korean)

* New translations note-capture-events.md (Korean)

* New translations token.md (Korean)

* New translations 1.index.md (Korean)

* New translations create-plugin.md (Korean)

* New translations plugin-api-reference.md (Korean)

* New translations publish-on-your-website.md (Korean)
2023-12-27 12:38:56 +09:00

2.5 KiB

Misskey 서버의 스케일아웃

서버 이용자가 늘어남에 따라 서버 머신의 사양을 강화하거나 대수를 늘려 부하를 감당해야 하는 상황이 발생합니다.이 글에서는 Misskey 서버의 스케일아웃에 대한 팁을 소개합니다.

PostgreSQL 리플리케이션

PostgreSQL의 복제를 통해 데이터베이스의 부하를 여러 서버 머신에 분산시킬 수 있습니다. 복제에 대한 자세한 내용은 PostgreSQL 문서를 참고하시기 바랍니다. Misskey에서는 PostgreSQL의 복제를 지원하며, config 파일에서 다음과 같이 설정합니다.(일부 발췌)

# 복제를 사용하는 경우 true로 설정합니다.
dbReplications: true

# 여기에서 리드 복제본 목록을 설정합니다(개수 제한 없음).
dbSlaves:
  -
    host: foo
    port: 5432
    db: misskey
    user: xxxxx
    pass: xxxxx
  -
    host: bar
    port: 5432
    db: misskey
    user: xxxxx
    pass: xxxxx

이렇게 설정하면 Misskey가 데이터베이스에 대해 read 쿼리를 발행할 때 설정한 dbSlaves 중에서 무작위로 read replica를 선택하여 쿼리를 전송하게 되므로 데이터베이스의 부하를 분산시킬 수 있습니다.

역할에 따른 Redis 분할

Misskey는 다음과 같이 다양한 용도로 Redis를 사용합니다.

  • 작업 대기열 관리
  • 속도 제한 관리
  • 캐시
  • 알림 등의 정보 저장
  • 글로벌 이벤트의 Pub/Sub

Misskey에서는 이러한 용도별로 다른 Redis 서버를 사용하도록 설정할 수 있으며, 여러 서버 머신에 부하를 분산시킬 수 있습니다. config 파일에서 다음과 같이 설정합니다.(일부 발췌)

redisForPubsub:
  host: foo
  port: 6379
  #family: 0  # 0=Both, 4=IPv4, 6=IPv6
  #pass: example-pass
  #prefix: example-prefix
  #db: 1

redisForJobQueue:
  host: bar
  port: 6379
  #family: 0  # 0=Both, 4=IPv4, 6=IPv6
  #pass: example-pass
  #prefix: example-prefix
  #db: 1

현재 설정 가능한 Redis는 메인 Redis 외에 위와 같이 '글로벌 이벤트의 Pub/Sub'와 '작업 대기열 관리'를 위한 Redis가 있습니다.

원격 차트 비활성화

개별 원격 사용자 활동과 같은 차트나 개별 원격 서버의 차트가 필요하지 않은 경우, 해당 차트의 생성을 비활성화하면 성능이 향상됩니다. 제어판에서 '원격 사용자 차트 생성' 및 '원격 서버 차트 생성'을 끄면 비활성화할 수 있습니다.