> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/on-premise/pt-br/on-premise/how-to-guide/maintenance/memory-allocation-for-services.md).

# Alocação de memória para serviços

À medida que sua empresa se expande e o número de dispositivos conectados cresce inevitavelmente, aumenta também a demanda por recursos para garantir o funcionamento adequado da plataforma Navixy. Embora a potência da CPU e o espaço em disco sejam alocados conforme necessário sem limitações, a quantidade máxima de RAM utilizável é rigorosamente regulada pelas configurações do sistema. Portanto, pode chegar um momento em que você constate que a memória alocada é insuficiente, sendo necessário ampliá‑la. Nesta seção, forneceremos orientações sobre como localizar os arquivos de configuração necessários e efetuar os ajustes necessários para otimizar o desempenho da plataforma.

{% hint style="danger" %}
Ao modificar as configurações que regem a inicialização dos serviços, é necessário extremo cuidado. Edite‑as com muita atenção para garantir operações sem problemas.

**Lembre‑se!** Alterações descuidadas nas configurações podem levar à inoperabilidade total do serviço.\
Antes de fazer qualquer alteração no arquivo de config, recomenda‑se criar uma cópia de backup. Como o config é simplesmente um arquivo de texto, você pode armazená‑lo com segurança em um diretório separado ou salvar seu conteúdo em outro local, garantindo sua integridade e prevenindo qualquer perda potencial.
{% endhint %}

## Serviços Java

O backend da plataforma Navixy consiste em três serviços Java. As configurações padrão alocam as seguintes quantidades de RAM para eles:

* API-server - 1024 Mb
* SMS-server - 512 Mb
* TCP-server - 1024 Mb

Essa quantidade de memória é suficiente para a operação estável da plataforma com até alguns milhares de dispositivos registrados. Contudo, se você estiver enfrentando instabilidade na plataforma, como consultas API lentas, geração de relatórios demorada ou problemas no processamento de dados dos rastreadores, aumentar a quantidade de memória alocada pode ser uma solução. A seguir veremos onde encontrar os configs que especificam esse valor, dependendo de como a plataforma está implantada.

É recomendado especificar a quantidade de memória alocada como um **múltiplo de 1024**. O valor é especificado separadamente para cada serviço.

{% hint style="info" %}
Ao editar os configs, é crucial considerar a memória total disponível. Isso garante que você não especifique uma quantidade que exceda as limitações físicas. Ao fazer isso, você pode otimizar efetivamente o desempenho e evitar quaisquer problemas potenciais. Além disso, se os serviços Java e o banco de dados estiverem no mesmo servidor, não se esqueça de deixar espaço suficiente para a operação do banco de dados — por padrão é 70% de toda a memória.
{% endhint %}

#### Linux - serviços systemd

Para as versões atuais da plataforma (tanto as recentemente instaladas quanto as que receberam as últimas atualizações), **systemd** é usado como o gerenciador de inicialização de serviços. As configurações de inicialização estão localizadas nos diretórios dos serviços nos seguintes caminhos:

* `/home/java/api-server/api-server.service.env`
* `/home/java/sms-server/sms-server.service.env`
* `/home/java/tcp-server/tcp-server.service.env`

Dentro de cada arquivo há uma linha como `MAX_HEAP_SIZE="1024m"`. Especifique a quantidade de memória que deseja alocar para o serviço em megabytes. Não esqueça de preservar a letra `m` que significa megabytes.

[Reinicie a plataforma ou o serviço específico](/docs/on-premise/pt-br/on-premise/how-to-guide/maintenance/restarting-instance.md) para aplicar as alterações.

#### Linux - serviços runit

Se optar por não migrar para o systemd ao atualizar sua plataforma para a versão mais recente (essa opção é oferecida durante atualizações automáticas), ou no caso de utilização de uma versão antiga da plataforma Navixy On‑premise, os serviços Java usam **runit** como supervisor de serviços. Ele também possui seus próprios arquivos de configuração, que estão localizados nos seguintes caminhos:

* `/etc/sv/api-server/run`
* `/etc/sv/sms-server/run`
* `/etc/sv/tcp-server/run`

Entre os parâmetros dentro de cada arquivo você encontrará um `Xmx` — este é o valor máximo de memória que pode ser alocado para o serviço Java correspondente. O parâmetro completo tem esta aparência: `-Xmx1024m` - isto significa que 1024 Mb de RAM são alocados para o serviço. Edite esse valor e especifique o que for necessário, depois salve o arquivo.

Reinicie a plataforma com o `restart-navixy` comando para aplicar as alterações.

#### Linux - instância dockerizada

Na versão dockerizada da plataforma, a alocação de memória é definida quando os containers são implantados — quando o `docker compose up -d` comando é executado. Esta é uma etapa obrigatória ao instalar e atualizar uma instância, mas pode ser feita independentemente desses processos.

Embora as configurações básicas da instância sejam especificadas no `.env` arquivo, um arquivo chamado `compose.yaml` é usado para configurar a operação dos containers — ele está localizado na mesma pasta de trabalho da instância que os demais arquivos do sistema.

Dentro desse arquivo, você pode ver as várias seções que definem as opções de inicialização para todos os containers. Para alterar a quantidade de memória alocada para *api*, *sms* e *tcp* containers, você precisa encontrar as seções correspondentes e adicionar a opção `"MAX_HEAP_SIZE="` à subseção `environment` , por exemplo:

```
- "MAX_HEAP_SIZE=2048m"
```

Abaixo está um exemplo de como isso é feito para *api-server* em uma instância existente:

![](/files/a8330a59c7bf078c586a8325a136390ce1c88256)

Salve o arquivo.

Após as alterações serem aplicadas, execute o seguinte comando enquanto estiver no diretório de trabalho:

```
docker compose up -d
```

Isto recriará os containers considerando as novas configurações.

{% hint style="info" %}
O `compose.yaml` o arquivo é substituído quando a instância dockerizada Navixy é atualizada, e nesse caso as configurações acima devem ser refeitas. Você pode fazer isso antes de executar inicialmente a instância recém‑atualizada para que ela seja executada imediatamente com as configurações necessárias.
{% endhint %}

#### Windows - serviços wrapper

Os serviços Java não são projetados para rodar nativamente no Windows, portanto software de terceiros é usado para habilitá‑los. Ele se chama **YAJSW (Yet Another Java Service Wrapper)** e é projetado para converter arquivos executáveis jar em serviços do Windows. Esse software está incluído no pacote de distribuição da plataforma Navixy e é configurado durante a instalação inicial.

O Wrapper não possui um diretório de instalação padrão e pode estar localizado em qualquer lugar, mas tipicamente é colocado em `C:\java\wrapper` pasta. Dentro você encontrará a pasta `\conf` que contém arquivos de configuração para os três serviços:

* `wrapper.api-server.conf`
* `wrapper.sms-server.conf`
* `wrapper.tcp-server.conf`

Na parte inferior de cada um dos configs estão as configurações de inicialização do serviço, e elas incluem uma linha como:

```
wrapper.java.additional.3 = -Xmx1024m
```

O valor do parâmetro `-Xmx1024m` significa que 1024 Mb de RAM são alocados para o serviço. Edite esse valor e especifique a quantidade de RAM necessária, preservando a `m` letra, depois salve o arquivo.

[Reinicie o(s) serviço(s)](/docs/on-premise/pt-br/on-premise/how-to-guide/maintenance/restarting-instance.md) para aplicar as alterações.

## MySQL

O banco de dados é o serviço mais consumidor de recursos dentro da plataforma. Quando um grande número de dispositivos exerce pressão sobre memória limitada, o banco de dados pode ter dificuldade em processar todas as solicitações recebidas. Consequentemente, isso pode resultar na operação lenta e instável da plataforma Navixy. Recomendamos fortemente monitorar o desempenho do banco de dados e, se necessário, aumentar a capacidade de RAM do servidor.

A quantidade de RAM alocada ao banco de dados é um valor estático que é especificado na configuração do MySQL. Geralmente recomenda‑se manter esse valor em 70% do total de RAM do servidor. Portanto, se você aumentar a quantidade total de RAM para melhorar o desempenho do banco de dados, será necessário alterar o valor na configuração em seguida.

O arquivo de configuração do MySQL está localizado no seguinte caminho:

* Linux: `/etc/mysql/mysql.conf.d/mysqld.cnf`
* Windows: `C:\ProgramData\MySQL\MySQL Server 8\my.ini`

Sob a seção `[mysqld]` dessa configuração, você encontrará o parâmetro `innodb_buffer_pool_size` — ele define a quantidade de memória alocada para o banco de dados. Se o tamanho atual for insuficiente, altere o parâmetro adequadamente (certifique‑se de manter a unidade de medida — `G` para gigabytes). Salve o arquivo e reinicie o MySQL.


---

# 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://navixy.com/docs/on-premise/pt-br/on-premise/how-to-guide/maintenance/memory-allocation-for-services.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.
