> 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/on-premises-cs/zaciname/requirements/hardware-requirements.md).

# Požadavky na hardware

## Požadavky na hardware

Při zajišťování hardwaru pro provoz Overleafu je hlavním faktorem, který je třeba zvážit, kolik současných uživatelů bude spouštět kompilace.

Například pokud máte licenci pro 100 celkových uživatelů, ale očekáváte, že přibližně 5 z nich bude pracovat ve stejnou dobu, postačí minimální instalace. Pokud očekáváte, že vyšší podíl bude pracovat (a kompilovat) současně, měli byste zvážit zajištění serveru s vyšší specifikací.

### Minimální instalace

Pro základní provoz s přibližně 5 současnými uživateli je vyžadován minimální základní požadavek 2 jader a 3 GB paměti. Tento minimální požadavek bude také postačovat pro větší skupiny, kde je nižší současné využití, nebo kde nevadí, že doba kompilace bude během vyšší zátěže delší.

{% hint style="danger" %}
Pokud uvažujete o použití souborového systému založeného na NFS (Network File System) pro vaši malou instanci, podívejte se prosím na tuto sekci v [Řešení problémů](/on-premises/on-premises-cs/podpora/troubleshooting.md) sekci.
{% endhint %}

### Škálování

Obecně platí, že pro zajištění vysoké a konzistentní úrovně služby by se k minimální instalaci mělo přidat 1 CPU jádro a 1 GB paměti na každých 5–10 současných uživatelů.

To by mělo být chápáno pouze jako vodítko, protože úroveň potřebného zajištění ovlivňují faktory jako velikost typických dokumentů (větší dokumenty spotřebují více prostředků pro kompilaci), jak často uživatelé kompilují a jaká je tolerance k delším dobám kompilace při vyšší zátěži.

Mnoho našich zákazníků plánuje nasadit Server Pro v celé organizaci nebo napříč velkými týmy. V takových situacích je pro nás obtížné radit konkrétní požadavky na nastavení, protože případy použití i dostupný základní hardware se mohou značně lišit.

| Příklad 1                                                                                                                                                                                                                                                                                         | Příklad 2                                                                                                                                                                                                                                                                 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Pokud provozujete instalaci Server Pro pro celkem 300 uživatelů a pravidelně očekáváte, že 30–60 z nich bude současně kompilovat dokumenty, 8 GB a 7 jader (5 jader + 5 GB + základ 2 jader a 3 GB) by mělo poskytnout dostatek prostředků, aby vaši uživatelé měli trvale vysokou úroveň služby. | Pro ilustraci hardwarových požadavků většího nasazení byla úspěšně zprovozněna instalace Server Pro pro celkem 1 000 uživatelů na jediném serveru vybaveném dvěma čtyřjádrovými procesory a 32 GB systémové paměti. To za uplynulý rok provozu dostačovalo potřebám týmu. |

Zákazníci, kteří překračují limity jednoho velkého serveru, se mohou podívat na [Horizontální škálování](/on-premises/on-premises-cs/udrzba/horizontal-scaling.md) pro Server Pro.

### Úložiště

Pro ukládání projektů/historie ve větších instalacích nedoporučujeme používat Network File System (NFS)/Amazon EFS/Amazon EBS a výslovně **to nepodporujeme** pro horizontální škálování.

Chování těchto souborových systémů neposkytuje potřebný výkon a spolehlivost, které Server Pro potřebuje při provozu ve velkém měřítku. Když souborový systém nestíhá zátěž, aplikace se zastaví kvůli příliš mnoha blokujícím IO operacím. Tato zaseknutí mohou vést k vypršení zámků založených na Redis, což může následně způsobit poškození dat projektu.

Doporučujeme používat [objektové úložiště kompatibilní se S3](/on-premises/on-premises-cs/zaciname/what-is-the-overleaf-toolkit.md) místo toho. Pomalý výkon S3 pak ovlivňuje pouze nahrávání/stahování souborů, což vede jen ke zvýšenému počtu otevřených spojení k vašemu poskytovateli S3 a následně neovlivňuje chování zbytku aplikace. Server Pro navíc může pro požadavky na S3 nastavit rozumné časové limity, což na úrovni aplikace u operací se souborovým systémem/IO není možné.

{% hint style="info" %}
Pro srovnání, GitLab zastává podobný postoj: [nepodporuje NFS/Amazon EFS](https://docs.gitlab.com/ee/administration/nfs.html) ve své samostatně spravované nabídce.
{% endhint %}

### Konfigurace specifická pro Nginx pro velká nasazení

Ve výchozím nastavení instance Overleaf Server omezují počet připojení na 768. To zahrnuje trvalá spojení WebSocket, navigaci na úrovni hlavní stránky a požadavky ajax. Jakmile je limit dosažen, editor se nemusí být schopen připojit, stránka editoru se nemusí načíst úplně a požadavky na kompilaci mohou selhat. Nginx vrátí odpovědi se stavem 500 a zaznamená `worker_connections are not enough while connecting to upstream` do `var/log/nginx/error`.log uvnitř `sharelatex` kontejneru.

Nastavení [`worker_connections`](https://nginx.org/en/docs/ngx_core_module.html#worker_connections) omezuje počet současných připojení, která nginx přijme na jednoho workeru. Počet workerů je řízen nastavením [`worker_processes`](https://nginx.org/en/docs/ngx_core_module.html#worker_processes) a v naší konfiguraci nginx je výchozí hodnota 4.

Nginx ve srovnání s ostatními částmi systému nedělá mnoho práce, takže tato omezení fungují jako pojistka, která brání příliš velkému počtu připojení zahltit systém. Je lepší část nadbytečných připojení odmítnout včas, než zpomalovat každé připojení.

Instance Overleaf Server vystavují proměnné prostředí pro úpravu těchto nastavení nginx:

* `NGINX_WORKER_PROCESSES` pro [`worker_processes`](https://nginx.org/en/docs/ngx_core_module.html#worker_processes) (výchozí `4`)
* `NGINX_WORKER_CONNECTIONS` pro [`worker_connections`](https://nginx.org/en/docs/ngx_core_module.html#worker_connections) (výchozí `768`)
* `NGINX_KEEPALIVE_TIMEOUT` pro [`keepalive_timeout`](https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout) (výchozí `65`)

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Při provozu další proxy před <code>sharelatex</code> kontejnerem (např. pro ukončení TLS) musí být <code>NGINX_KEEPALIVE_TIMEOUT</code> v instanci Overleaf Server větší než u předchozí proxy. Např. s dalším procesem nginx na hostiteli Dockeru <strong>nginx-host</strong> jsou zde dva příklady:</p></div>
* Výchozí hodnota `NGINX_KEEPALIVE_TIMEOUT`, použijte [`keepalive_timeout 60s`](https://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_timeout) (výchozí hodnota v upstreamu) v **nginx-host**
* Vlastní hodnota `NGINX_KEEPALIVE_TIMEOUT=100s`, použijte [`keepalive_timeout 90s`](https://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_timeout) (vlastní hodnota v upstreamu) v **nginx-host**

### Rychlost CPU

LaTeX je jednovláknový program, což znamená, že může v jednu chvíli využívat pouze jedno CPU jádro. CPU je také hlavním omezením při kompilaci dokumentu. Čím vyšší je tedy jednovláknový výkon vašeho CPU, tím rychleji budete schopni dokument kompilovat. Více jader pomůže jen tehdy, pokud se snažíte kompilovat více dokumentů, než kolik máte volných CPU jader.


---

# 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/on-premises-cs/zaciname/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.
