> For the complete documentation index, see [llms.txt](https://overleaf-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://overleaf-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 cấp phát 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 sẽ là đủ. Nếu bạn dự kiến một tỷ lệ cao hơn sẽ làm việc (và biên dịch) đồng thời, bạn nên cân nhắc cấp phát 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ớ để thực hiện 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 nơi 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 nhiều.

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

### Khả năng mở rộng

Theo kinh nghiệm chung, để 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.

Đâ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 thời gian biên dịch dài hơn trong lúc sử dụng nhiều, đều ảnh hưởng đến mức cấp phát 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 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ó có thể tư vấn 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 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 30-60 người trong số đó 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ơ sở 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 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 bằng một máy chủ duy nhất được cấp phát hai bộ xử lý 4 lõi và 32GB bộ nhớ hệ thống. Điều này đã đủ cho nhu cầu của nhóm 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 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 lưu trữ dự án/lịch sử trong các thiết lập lớn và chúng tôi đặc biệt **không hỗ trợ điều này** cho mở rộng 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ị treo do quá nhiều thao tác I/O chặn. Những lần treo này có thể dẫn đến việc khóa dựa trên Redis bị quá hạn, từ đó có thể làm hỏng dữ liệu dự án.

Chúng tôi khuyên nên 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 rốt cuộc 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 thời gian chờ hợp lý cho các yêu cầu S3, điều mà không thể làm được đố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 quan điểm tương tự là [không hỗ trợ NFS/Amazon EFS](https://docs.gitlab.com/ee/administration/nfs.html) trong gói tự quản lý của họ.
{% endhint %}

### Cấu hình riêng cho Nginx đối với 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 ở 768. Điều này bao gồm các kết nối WebSocket bền bỉ, điều hướng HTML cấp cao nhất và các yêu cầu ajax. Khi chạm đến giới hạn, trình soạn thảo có thể không kết nối được, trang trình soạn thảo có thể không tải hoàn toàn 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 `worker_connections are not enough while connecting to upstream` vào `var/log/nginx/error`.log bên trong `sharelatex` container.

Thiết lập [`worker_connections`](https://nginx.org/en/docs/ngx_core_module.html#worker_connections) giới hạn số lượng kết nối đồng thời mà nginx sẽ chấp nhận cho mỗi worker. Số lượng worker được điều khiển 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 làm quá 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 hoạt động như một biện pháp 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`)

  <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ụ để chấm dứt TLS), <code>NGINX_KEEPALIVE_TIMEOUT</code> trong phiên bản Overleaf Server cần phải 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>， dưới đâ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. Vì vậy, hiệu năng đơn lõi của CPU càng nhanh thì bạn sẽ 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ố gắng biên dịch nhiều tài liệu hơn số lõi CPU trống 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://overleaf-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.
