Update README.md
Some checks are pending
CI / test-ubuntu-latest (push) Waiting to run
CI / build-ubuntu-old (push) Waiting to run
CI / build-macos-latest (push) Waiting to run
CI / build-libc-malloc (push) Waiting to run

This commit is contained in:
Григорий Сафронов 2025-04-17 20:54:25 +00:00
parent 25c7cb5cdb
commit f36fc2d7e5

View File

@ -42,6 +42,7 @@
</li> </li>
<li><a href="#подготовка">Подготовка</a></li> <li><a href="#подготовка">Подготовка</a></li>
<li><a href="#компиляция">Компиляция</a></li> <li><a href="#компиляция">Компиляция</a></li>
<li><a href="#типовые-проблемы">Типовые проблемы</a></li>
<li><a href="#тестирование-сборки">Тестирование сборки</a></li> <li><a href="#тестирование-сборки">Тестирование сборки</a></li>
<li><a href="#пример-основных-команд">Пример основных команд</a></li> <li><a href="#пример-основных-команд">Пример основных команд</a></li>
<li><a href="#кластер">Кластер</a></li> <li><a href="#кластер">Кластер</a></li>
@ -78,7 +79,7 @@ Futriix-Мультимодельная СУБД на языке С поддер
```sh ```sh
unix:$ sudo apt update unix:$ sudo apt update
unix:$ sudo apt upgrade unix:$ sudo apt upgrade
unix:$ sudo apt install build-essential nasm autotools-dev autoconf libjemalloc-dev tcl tcl-dev uuid-dev libcurl4-openssl-dev git unix:$ sudo apt install build-essential nasm autotools-dev autoconf libjemalloc-dev tcl tcl-dev uuid-dev libcurl4-openssl-dev git hugepages
``` ```
* Устанавливаем язык программирования Golang по инструкции с [официального сайта](https://go.dev/doc/install) * Устанавливаем язык программирования Golang по инструкции с [официального сайта](https://go.dev/doc/install)
@ -102,10 +103,48 @@ Futriix-Мультимодельная СУБД на языке С поддер
Futriix может быть скомпилирован для следующих операционных систем: Linux, OSX, OpenBSD, NetBSD, FreeBSD. Futriix может быть скомпилирован для следующих операционных систем: Linux, OSX, OpenBSD, NetBSD, FreeBSD.
Мы поддерживаем архитектуры endian и little endian, и 32-битные и 64-битные системы. Мы поддерживаем архитектуры endian и little endian, и 32-битные и 64-битные системы.
<p align="right">(<a href="#readme-top">К началу</a>)</p>
## Типовые проблемы
В данном разделе описаны типовые проблемы, возникающие при эксплуатации субд Futrix.
1. **Описание проблемы:** При запуске инстанса Futriix, появляется следующее сообщение:
```sh
Warning: no config file specified, using the default config. In order to specify a config file use ./futriix-server /path/to/futriix.conf
```
**Решение:**
При запуске инстанса сервера futriix, указать корректный путь до файла конфигурации, командой ниже:
```sh
unix:$ ./futriix-server /path/to/futriix.conf
```
2. **Описание проблемы:** При запуске инстанса Futriix, появляется следующее сообщение:
```sh
1:12:S 18 Apr 2025 04:47:25.643 # NOTICE: Detuning locks due to high load per core: 97.49%
1:12:S 18 Apr 2025 04:47:55.491 # NOTICE: CPU pressure reduced
```
**Решение:**
Семантика захвата/освобождения не важна для детюнинга. Суть этого сообщения в том, что futriix пытается корректно обработать ситуацию с превышением нагрузки на ЦП. Это штатная ситуация, и она не является ошибкой и не вызывает проблем.
Futriix использует спинлоки для быстрой синхронизации. Когда нагрузка на ЦП превышает 100% на ядро, ядро может неосознанно предоставить время ЦП заблокированному потоку, который находится в состоянии ожидания, вместо активного потока. Это приводит к значительно большей задержке.
Когда такая ситуация обнаруживается, Futriix будет крутиться в ожидании меньшего времени, прежде чем приостановить поток. Это приводит к лучшей пропускной способности, когда время ЦП ограничено. Однако «правильным» решением является обеспечение того, чтобы время ЦП не было так ограничено.
<p align="right">(<a href="#readme-top">К началу</a>)</p> <p align="right">(<a href="#readme-top">К началу</a>)</p>
### Дополнительные параметры компиляции ### Дополнительные параметры компиляции
Для сборки проекта с поддержкой TLS выпоните команду: Для сборки проекта с поддержкой TLS выпоните команду: