> For the complete documentation index, see [llms.txt](https://spacecore.gitbook.io/wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://spacecore.gitbook.io/wiki/ua/minecraft/launch-parameters.md).

# Опції запуску

Це спеціальні налаштування, які дозволяють оптимізувати запуск і роботу сервера у майбутньому.

{% hint style="warning" %}
Обов'язково враховуйте, що аргументи повинні бути обрані індивідуально для обладнання сервера, а також для версії Java.
{% endhint %}

Почнемо з невеликого прикладу:

<pre><code><strong>java -jar server.jar
</strong></code></pre>

Це найпоширеніший сценарій для запуску ядра сервера, який не містить жодних додаткових аргументів.

#### Тепер про самі параметри

* `-jar` — цей аргумент вказує тип Java-файлу для запуску.
* `name.jar` — назва файлу для запуску.
* `nogui` — запускає сервер без графічного інтерфейсу, оскільки він нам просто не потрібен.

#### Основні прапори

* `-xincgc` — активує «колектор сміття», який час від часу вивантажуватиме невикористану оперативну пам'ять. Тип колектора автоматично вибирається залежно від версії Java.
* `-server` — активує серверну версію Java, яка за замовчуванням включає підтримку експериментальних прапорів. Також прискорює компіляцію класів, що підвищує продуктивність, але збільшує час запуску сервера (підтримуються лише 64-бітові системи).

#### Виділення оперативної пам'яті

Аргументи підтримують як «M» для мегабайтів, так і «G» для гігабайтів. Наприклад, аргумент `Xms2G` запустить сервер з 2 гігабайтами оперативної пам'яті.

* `-Xmx0000M` — максимальна кількість виділеної пам'яті для сервера.
* `-Xms0000M` — мінімальна кількість виділеної пам'яті для сервера.
* `-Xmn0000M` — кількість пам'яті, виділеної для тимчасових об'єктів.
* `-XX:MaxPermSize=0000M` — кількість пам'яті для PermGen Space (не працює на Java 8).
* `-XX:SharedReadOnlySize=0000M` — кількість пам'яті під read-only у просторі PermGen.

#### Колектори різного «сміття»

* `-XX:+UseSerialGC` — вмикає збирач сміття, який працює на 1 потоці.
* `-XX:+UseConcMarkSweepGC` — вмикає збирач сміття, який використовує потужність декількох ядер процесора.
* `-XX:ConcGCThreads=2` — кількість потоків для збирача сміття.
* `-XX:+UseG1GC` — активує новий збирач сміття, який ділить всю пам'ять на конкретні секції, і завдяки використанню декількох ядер збирає невикористану пам'ять з усіх секцій.
* `-XX:G1HeapRegionSize=32` — кількість оперативної пам'яті, виділеної для кожної секції.
* `-XX:AutoGCSelectPauseMillis=2500` — кількість часу в мілісекундах між викликами автоматично вибраного збирача сміття.
* `-XX:MaxGCPauseMillis=1000` — тривалість часу в мілісекундах між викликами певного збирача сміття. Для G1 GC виконує роль максимального встановленого інтервалу.
* `-XX:SurvivorRatio=8` — кількість радіусів для існування виживаючих об'єктів (чим менше число, тим більше місця). Більше місця дозволяє новоствореним об'єктам існувати довше перед збором сміття.
* `-XX:TargetSurvivorRatio=90` — кількість місця у відсотках для виживаючих об'єктів, що дозволить очистити більше невикористаних об'єктів під час збору сміття.
* `-XX:+UseBiasedLocking` — прискорення синхронізації об'єктів на багатоядерних процесорах.
* `-XX:+UseFastAccessorMethods` — використання оптимізованих версій викликів методів.
* `-XX:+UseFastEmptyMethods` — виключення порожніх методів із компіляції.
* `-XX:+UseCompressedOops` — зменшення розміру покажчика, заголовків та зсувів всередині створених об'єктів. Залежно від коду, це заощадить 20-60% оперативної пам'яті.

#### Загальний сценарій запуску сервера

В цілому, ми отримали подібний сценарій для запуску сервера:

```
java -Xincgc -Xms512M -Xmx4G -XX:MaxPermSize=128M -XX:SharedReadOnlySize=30M -XX:+UseConcMarkSweepGC -XX:+UseBiasedLocking -XX:+UseFastAccessorMethods -XX:+UseCompressedOops -jar server.jar nogui
```


---

# 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://spacecore.gitbook.io/wiki/ua/minecraft/launch-parameters.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.
