Skip to main content

하드웨어 요구 사항

Overleaf를 실행할 하드웨어를 준비할 때 고려해야 할 주요 요소는 동시에 컴파일을 실행할 사용자 수입니다. 예를 들어 총 100명의 사용자에 대한 라이선스가 있지만 동시에 작업할 것으로 예상되는 사용자가 ~5명에 불과하다면 최소 설치로도 충분합니다. 더 많은 비율의 사용자가 동시에 작업(및 컴파일)할 것으로 예상된다면 더 높은 사양의 서버를 준비하는 것을 고려해야 합니다.

최소 설치

동시 사용자 약 5명 정도의 기본 작업에는 최소 2코어와 3GB 메모리가 필요합니다. 이 최소 요구 사항은 동시 사용량이 적은 대규모 그룹이나, 사용량이 많을 때 컴파일 시간이 길어져도 괜찮은 경우에도 충분합니다.
소규모 인스턴스에 NFS(Network File System) 기반 파일 시스템을 사용하려는 경우 문제 해결 섹션의 해당 내용을 확인하세요.

확장

일반적으로 높고 일관된 수준의 서비스를 제공하려면 동시 사용자 5~10명마다 최소 설치에 CPU 코어 1개와 메모리 1GB를 추가해야 합니다. 이는 지침으로만 참고해야 합니다. 일반적인 문서의 크기(큰 문서일수록 더 많은 컴파일 리소스를 사용함), 사용자의 컴파일 빈도, 사용량이 많을 때 긴 컴파일 시간을 얼마나 허용할 수 있는지 등의 요소가 모두 필요한 리소스 수준에 영향을 미치기 때문입니다. 많은 고객이 Server Pro를 조직 전체 또는 대규모 팀에 배포하려고 합니다. 이러한 경우에는 사용 사례와 사용 가능한 하드웨어가 매우 다양할 수 있으므로 구체적인 설정 요구 사항을 조언하기 어렵습니다. 단일 대형 서버의 한계를 넘어서는 고객은 Server Pro의 수평 확장을 살펴볼 수 있습니다.

스토리지

대규모 환경에서는 프로젝트/기록 스토리지에 NFS(Network File System)/Amazon EFS/Amazon EBS를 사용하지 않을 것을 권장하며, 수평 확장에서는 명시적으로 지원하지 않습니다. 이러한 파일 시스템은 대규모로 실행할 때 Server Pro에 필요한 성능과 안정성을 제공하지 못합니다. 파일 시스템이 부하를 감당하지 못하면 너무 많은 블로킹 IO 작업으로 인해 애플리케이션이 멈춥니다. 이러한 멈춤은 Redis 기반 잠금의 시간 초과로 이어질 수 있으며, 이는 결국 프로젝트 데이터 손상을 초래할 수 있습니다. 대신 S3 호환 오브젝트 스토리지를 사용할 것을 권장합니다. S3 성능이 느리면 파일 업로드/다운로드에만 영향을 미치며, 이는 S3 공급자에 대한 열린 연결 수를 늘릴 뿐 애플리케이션의 나머지 동작에는 영향을 주지 않습니다. 또한 Server Pro는 S3 요청에 적절한 시간 제한을 지정할 수 있지만, 파일 시스템/IO 작업에 대해서는 애플리케이션 수준에서 이것이 불가능합니다.
참고로 GitLab도 자체 관리형 제품에서 NFS/Amazon EFS를 지원하지 않는 유사한 입장을 취하고 있습니다.

대규모 배포를 위한 Nginx 관련 구성

기본적으로 Overleaf Server 인스턴스는 연결 수를 768개로 제한합니다. 여기에는 지속적인 Websocket 연결, 최상위 HTML 탐색 및 ajax 요청이 포함됩니다. 한도에 도달하면 편집기가 연결되지 않거나, 편집기 페이지가 완전히 로드되지 않거나, 컴파일 요청이 실패할 수 있습니다. Nginx는 상태 500 응답을 반환하고 sharelatex 컨테이너 내부의 var/log/nginx/error.log에 worker_connections are not enough while connecting to upstream을 기록합니다. worker_connections 설정은 nginx가 워커당 허용하는 동시 연결 수를 제한합니다. 워커 수는 worker_processes 설정으로 제어되며, 저희 nginx 구성에서는 기본값이 4로 설정되어 있습니다. Nginx는 시스템의 다른 부분에 비해 하는 일이 많지 않으므로, 이러한 제한은 너무 많은 연결이 시스템을 압도하지 않도록 막는 안전장치 역할을 합니다. 모든 연결을 느리게 만드는 것보다 초과 연결 일부를 일찍 끊는 편이 바람직합니다. Overleaf Server 인스턴스는 이러한 nginx 설정을 조정하기 위한 환경 변수를 제공합니다.
  • worker_processes용 NGINX_WORKER_PROCESSES(기본값 4)
  • worker_connections용 NGINX_WORKER_CONNECTIONS(기본값 768)
  • keepalive_timeout용 NGINX_KEEPALIVE_TIMEOUT(기본값 65)
    sharelatex 컨테이너 앞에 다른 프록시를 실행하는 경우(예: TLS 종료용), Overleaf Server 인스턴스의 NGINX_KEEPALIVE_TIMEOUT은 앞단 프록시의 값보다 커야 합니다. 예를 들어 Docker 호스트 nginx-host에서 다른 nginx 프로세스를 실행하는 경우 다음 두 가지 예시가 있습니다.
  • 기본값 NGINX_KEEPALIVE_TIMEOUT인 경우 nginx-host에서 keepalive_timeout 60s(upstream의 기본값)를 사용합니다.
  • 사용자 지정 값 NGINX_KEEPALIVE_TIMEOUT=100s인 경우 nginx-host에서 keepalive_timeout 90s(upstream의 사용자 지정 값)를 사용합니다.

CPU 속도

LaTeX는 단일 스레드 프로그램이므로 한 번에 하나의 CPU 코어만 사용할 수 있습니다. 또한 문서를 컴파일할 때 CPU가 주요 제약 요소입니다. 따라서 CPU의 단일 코어 성능이 빠를수록 문서를 더 빠르게 컴파일할 수 있습니다. 코어 수가 많으면 사용 가능한 CPU 코어 수보다 많은 문서를 동시에 컴파일하려는 경우에만 도움이 됩니다.
Last modified on October 4, 2026