> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/on-premises/vi/bat-dau/requirements/hardware-requirements.md).

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

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

Khi cung cấp phần cứng để chạy Overleaf, yếu tố chính cần cân nhắc là sẽ có bao nhiêu người dùng đồng thời thực hiện 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, bản cài đặt tối thiểu là đủ. Nếu bạn dự kiến tỷ lệ người dùng làm việc (và biên dịch) đồng thời cao hơn, bạn nên cân nhắc cung cấp một máy chủ có cấu hình cao hơn.

### Bản cài đặt tối thiểu

Yêu cầu cơ bản tối thiểu là 2 lõi CPU và 3GB bộ nhớ cho các thao tác 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 sẽ đủ cho các nhóm lớn hơn khi mức sử dụng đồng thời thấp hơn, hoặc khi chấp nhận thời gian biên dịch lâu hơn trong những lúc sử dụng cao điểm.

{% hint style="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 [Khắc phục sự cố](/on-premises/vi/ho-tro/troubleshooting.md) phần.
{% endhint %}

### Mở rộng quy mô

Theo kinh nghiệm, để cung cấp mức dịch vụ cao và ổn định, nên cộng thêm 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.

Điều này chỉ nên được xem như một hướng dẫn, 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 sử dụng 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 đối với thời gian biên dịch lâu hơn khi sử dụng cao điểm, tất cả đều ảnh hưởng đến mức cung cấp tài nguyên cần thiết.

Nhiều khách hàng của chúng tôi muốn triển khai Server Pro trên toàn bộ tổ chức, hoặc trên các nhóm lớn. Trong những tình huống đó, chúng tôi khó đưa ra lời khuyên về các 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 nền tảng sẵn có có thể rất khác nhau.

| Ví dụ 1                                                                                                                                                                                                                                                                            | Ví dụ 2                                                                                                                                                                                                                                                                                                                                 |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Nếu bạn đang vận hành một cài đặt Server Pro cho tổng cộng 300 người dùng, và thường xuyên có 30-60 người trong số đó biên dịch tài liệu cùng lúc, 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 có mức dịch vụ cao ổn định. | Để đưa ra một ví dụ về yêu cầu phần cứng cho một triển khai lớn hơn, một 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 bằng cách sử dụng 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. Điều này đã đủ đáp ứng nhu cầu của đội ngũ trong suốt một năm sử dụng vừa qua. |

Những khách hàng đang vượt quá giới hạn của một máy chủ lớn duy nhất có thể xem xét [Mở rộng theo chiều ngang](/on-premises/vi/bao-tri/horizontal-scaling.md) 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 cho việc lưu trữ dự án/lịch sử trong các thiết lập lớn hơn và một cách rõ ràng **không hỗ trợ nó** cho mở rộng 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 cần khi chạy ở quy mô lớn. Khi hệ thống tệp không theo kịp tải, ứng dụng sẽ bị đình trệ do quá nhiều thao tác I/O bị chặn. Những lần đình trệ này có thể dẫn đến việc các khóa dựa trên Redis bị vượt quá thời hạn, từ đó có thể dẫn đến dữ liệu dự án bị hỏng.

Chúng tôi khuyên sử dụng [lưu trữ đối tượng tương thích S3](/on-premises/vi/bat-dau/what-is-the-overleaf-toolkit.md) thay vào đó. 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ỉ dẫn đến số lượng kết nối mở tới nhà cung cấp S3 của bạn tăng lên và ngược lại không ảnh hưởng đến hành vi của phần còn lại của ứng dụng. Ngoài ra, Server Pro có thể chỉ định các thời gian chờ hợp lý trên các yêu cầu S3, điều mà không thể thực hiện đối với các thao tác hệ thống tệp/I/O ở cấp ứng dụng.

{% hint style="info" %}
Để tham khảo, GitLab cũng đang theo lập trường tương tự là [không hỗ trợ NFS/Amazon EFS](https://docs.gitlab.com/ee/administration/nfs.html) với gói tự quản lý của mình.
{% endhint %}

### Cấu hình riêng cho Nginx cho các triển khai lớn

Theo mặc định, phiên bản Overleaf Server giới hạn số lượng kết nối ở mức 768. Điều này bao gồm các kết nối WebSocket duy trì, đ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 này, trình soạn thảo có thể không thể kết nối, trang trình soạn thảo có thể không tải đầy đủ 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 là không đủ khi kết nối tới upstream` vào `var/log/nginx/error`.log bên trong `sharelatex` container.

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

Nginx không làm nhiều 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 còn hơn 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 cài đặt 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`)

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Khi chạy một proxy khác ở phía trước <code>sharelatex</code> container (ví dụ: để kết thúc TLS), <code>NGINX_KEEPALIVE_TIMEOUT</code> trong phiên bản Overleaf Server cần lớn hơn proxy trước đó. Ví dụ, với một tiến trình nginx khác trên máy chủ Docker <strong>nginx-host</strong>, sau đây là hai ví dụ:</p></div>
* Giá trị mặc định `NGINX_KEEPALIVE_TIMEOUT`, sử 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`, sử 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 một lõi của CPU của bạn càng nhanh thì bạn càng có thể biên dịch tài liệu nhanh hơn. Nhiều lõi hơn chỉ hữu ích nếu bạn đang cố biên dịch nhiều tài liệu hơn số lõi CPU nhàn rỗi mà bạn có.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/on-premises/vi/bat-dau/requirements/hardware-requirements.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
