> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Yêu cầu phần cứng

## Yêu cầu phần cứng

Khi chuẩn bị phần cứng để chạy Overleaf, yếu tố chính cần xem xét là có bao nhiêu người dùng đồng thời sẽ chạy biên dịch.

Ví dụ, nếu bạn có giấy phép cho tổng cộng 100 người dùng, nhưng chỉ dự kiến khoảng \~5 người làm việc cùng lúc, thì bản cài đặt tối thiểu là đủ. Nếu bạn dự kiến tỷ lệ người làm việc (và biên dịch) đồng thời cao hơn, bạn nên cân nhắc chuẩn bị một máy chủ có cấu hình cao hơn.

### Cài đặt tối thiểu

Yêu cầu cơ bản tối thiểu là 2 lõi và 3GB bộ nhớ cho các hoạt động cơ bản với khoảng 5 người dùng đồng thời. Yêu cầu tối thiểu này cũng đủ cho các nhóm lớn hơn có mức sử dụng đồng thời thấp hơn, hoặc khi việc thời gian biên dịch kéo dài hơn trong giờ cao điểm là chấp nhận được.

<Danger>
  Nếu bạn đang cân nhắc sử dụng hệ thống tệp dựa trên NFS (Network File System) cho phiên bản nhỏ của mình, vui lòng xem phần này trong mục [Khắc phục sự cố](/vi/on-premises/support/troubleshooting).
</Danger>

### Mở rộng quy mô

Theo kinh nghiệm chung, để cung cấp mức dịch vụ cao và ổn định, cần bổ sung 1 lõi CPU và 1GB bộ nhớ vào bản cài đặt tối thiểu cho mỗi 5-10 người dùng đồng thời.

Đây chỉ nên được xem là hướng dẫn tham khảo, vì các yếu tố như kích thước của tài liệu điển hình (tài liệu lớn hơn tiêu tốn nhiều tài nguyên biên dịch hơn), tần suất người dùng biên dịch, và mức độ chấp nhận thời gian biên dịch dài hơn khi tải cao, đều ảnh hưởng đến mức tài nguyên cần chuẩn bị.

Nhiều khách hàng của chúng tôi muốn triển khai Server Pro trên toàn tổ chức hoặc cho các nhóm lớn. Trong những trường hợp đó, chúng tôi khó đưa ra lời khuyên về yêu cầu thiết lập cụ thể, vì các trường hợp sử dụng và phần cứng sẵn có có thể rất khác nhau.

| Ví dụ 1 | Ví dụ 2 |
| - | - |
| Nếu bạn đang chạy một bản cài đặt Server Pro cho tổng cộng 300 người dùng, và thường xuyên dự kiến có 30-60 người trong số đó biên dịch tài liệu cùng lúc, thì 8GB và 7 lõi (5 lõi + 5GB + mức cơ bản 2 lõi & 3GB) sẽ cung cấp đủ tài nguyên để người dùng của bạn luôn có mức dịch vụ cao và ổn định. | Để đưa ra ví dụ về yêu cầu phần cứng cho một bản triển khai lớn hơn, một bản cài đặt Server Pro cho tổng cộng 1.000 người dùng đã được thiết lập thành công trên một máy chủ duy nhất được trang bị hai bộ xử lý 4 lõi và 32GB bộ nhớ hệ thống. Cấu hình này đã đáp ứng đủ nhu cầu của nhóm trong suốt năm sử dụng vừa qua. |

Những khách hàng vượt quá giới hạn của một máy chủ lớn duy nhất có thể tham khảo [Mở rộng quy mô theo chiều ngang](/vi/on-premises/maintenance/horizontal-scaling) cho Server Pro.

### Lưu trữ

Chúng tôi khuyên không nên sử dụng Network File System (NFS)/Amazon EFS/Amazon EBS để lưu trữ dự án/lịch sử trong các hệ thống lớn và **hoàn toàn không hỗ trợ** cho việc mở rộng quy mô theo chiều ngang.

Hành vi của các hệ thống tệp này không cung cấp hiệu năng và độ tin cậy cần thiết mà Server Pro yêu cầu khi chạy ở quy mô lớn. Khi hệ thống tệp không theo kịp tải, ứng dụng bị treo do có quá nhiều thao tác IO chặn. Những lần treo này có thể khiến các khóa dựa trên Redis bị vượt quá thời hạn, từ đó có thể dẫn đến hỏng dữ liệu dự án.

Thay vào đó, chúng tôi khuyên dùng [lưu trữ đối tượng tương thích S3](/vi/on-premises/getting-started/what-is-the-overleaf-toolkit). Hiệu năng S3 chậm chỉ ảnh hưởng đến việc tải lên/tải xuống tệp, điều này chỉ làm tăng số lượng kết nối mở tới nhà cung cấp S3 của bạn và không ảnh hưởng đến hoạt động của phần còn lại của ứng dụng. Ngoài ra, Server Pro có thể chỉ định thời gian chờ hợp lý cho các yêu cầu S3, điều không thể thực hiện với các thao tác hệ thống tệp/IO ở cấp ứng dụng.

<Info>
  Để tham khảo, GitLab cũng có lập trường tương tự là [không hỗ trợ NFS/Amazon EFS](https://docs.gitlab.com/ee/administration/nfs.html) cho sản phẩm tự quản lý của họ.
</Info>

### Cấu hình riêng cho Nginx đối với các bản triển khai lớn

Theo mặc định, phiên bản Overleaf Server giới hạn số kết nối ở mức 768. Con số này bao gồm các kết nối Websocket lâu dài, điều hướng HTML cấp cao nhất và các yêu cầu ajax. Khi đạt đến giới hạn, trình soạn thảo có thể không kết nối được, trang soạn thảo có thể không tải hết và các yêu cầu biên dịch có thể thất bại. Nginx sẽ trả về phản hồi trạng thái 500 và ghi log `worker_connections are not enough while connecting to upstream` vào `var/log/nginx/error`.log bên trong container `sharelatex`.

Thiết lập [`worker_connections`](https://nginx.org/en/docs/ngx_core_module.html#worker_connections) giới hạn số kết nối đồng thời mà nginx chấp nhận trên mỗi worker. Số lượng worker được kiểm soát bởi thiết lập [`worker_processes`](https://nginx.org/en/docs/ngx_core_module.html#worker_processes) và được đặt mặc định là 4 trong cấu hình nginx của chúng tôi.

Nginx không phải xử lý nhiều công việc so với các phần khác của hệ thống, vì vậy các giới hạn này đóng vai trò như một cơ chế an toàn, ngăn quá nhiều kết nối làm quá tải hệ thống. Tốt hơn là loại bỏ sớm một số kết nối dư thừa thay vì làm chậm mọi kết nối.

Các phiên bản Overleaf Server cung cấp các biến môi trường để điều chỉnh các thiết lập nginx này:

* `NGINX_WORKER_PROCESSES` cho [`worker_processes`](https://nginx.org/en/docs/ngx_core_module.html#worker_processes) (mặc định `4`)
* `NGINX_WORKER_CONNECTIONS` cho [`worker_connections`](https://nginx.org/en/docs/ngx_core_module.html#worker_connections) (mặc định `768`)
* `NGINX_KEEPALIVE_TIMEOUT` cho [`keepalive_timeout`](https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout) (mặc định `65`)

  <Info>Khi chạy một proxy khác phía trước container `sharelatex` (ví dụ để kết thúc TLS), `NGINX_KEEPALIVE_TIMEOUT` trong phiên bản Overleaf Server cần lớn hơn giá trị của proxy phía trước. Ví dụ, với một tiến trình nginx khác trên Docker host <strong>nginx-host</strong>, đây là hai ví dụ:</Info>
* Giá trị mặc định `NGINX_KEEPALIVE_TIMEOUT`, dùng [`keepalive_timeout 60s`](https://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_timeout) (giá trị mặc định trong upstream) trong **nginx-host**
* Giá trị tùy chỉnh `NGINX_KEEPALIVE_TIMEOUT=100s`, dùng [`keepalive_timeout 90s`](https://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_timeout) (giá trị tùy chỉnh trong upstream) trong **nginx-host**

### Tốc độ CPU

LaTeX là một chương trình đơn luồng, nghĩa là nó chỉ có thể sử dụng một lõi CPU tại một thời điểm. CPU cũng là giới hạn chính khi biên dịch một tài liệu. Do đó, hiệu năng đơn lõi của CPU càng nhanh thì bạn càng biên dịch tài liệu nhanh hơn. Nhiều lõi hơn chỉ hữu ích khi bạn cố gắng biên dịch nhiều tài liệu hơn số lõi CPU còn trống.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.