Este tópico descreve os parâmetros de ajuste que você pode configure ao usar o armazenamento de backend de estado de nível corporativo GeminiStateBackend.
Informações básicas
Na maioria dos cenários, o GeminiStateBackend ajusta automaticamente as configurações de parâmetros sem a necessidade de configurações manuais com base no recurso de ajuste adaptativo de parâmetros. Ajuste apenas as configurações básicas específicas de acordo com os seus cenários de negócios. Para obter mais informações, consulte Parâmetros básicos. Em cenários específicos, configure parâmetros para otimizar ainda mais o desempenho. Este tópico descreve configurações específicas de parâmetros para os seguintes cenários:
Para equilibrar recursos de memória e desempenho, configure os parâmetros relacionados à memória. Para mais detalhes, consulte Parâmetros relacionados à memória.
Se o espaço em disco local for insuficiente, configure os parâmetros de separação de computação e armazenamento. Para saber mais, consulte Parâmetros para separação de computação e armazenamento.
Se um operador JOIN apresentar um gargalo de desempenho, configure os parâmetros de separação de chave-valor. Para obter mais informações, consulte Parâmetros para separação de chave-valor.
Para obter mais informações sobre o armazenamento de estado de nível corporativo, consulte GeminiStateBackend. Para saber como configure o armazenamento de estado de nível corporativo, consulte Definir parâmetros de estado.
Parâmetros básicos
|
Parâmetro |
Descrição |
Tipo de dados |
Valor padrão |
Observações |
|
table. exec. state. ttl |
O TTL dos dados de estado em implantações SQL. |
LONG |
O valor padrão é 129.600.000, o que equivale a 1,5 dias. |
Unidade: milissegundos. Por exemplo, se você defina este parâmetro como 129.600.000, o TTL dos dados de estado será de 1,5 dias. Este parâmetro não pode ser usado em conjunto com o parâmetro state. backend. gemini. ttl. ms. Nota
Recomendamos defina este parâmetro com um valor baixo de acordo com os requisitos do seu negócio. Ao modifique o TTL e restaurar o job a partir de um snapshot, a nova configuração de TTL se aplica apenas aos dados recém-gravados. Os dados existentes continuam seguindo a configuração de TTL antiga. |
|
state. backend. gemini. ttl. ms |
O TTL dos dados de estado em implantações DataStream ou Python. |
LONG |
(nenhum) |
Unidade: milissegundos. Por exemplo, se você defina este parâmetro como 129.600.000, o TTL dos dados de estado será de 1,5 dias. Este parâmetro não pode ser usado em conjunto com o parâmetro table. exec. state. ttl. Nota
Recomendamos defina este parâmetro com um valor baixo de acordo com os requisitos do seu negócio. |
|
state. backend. gemini. savepoint. external-sort. local-storage. enabled |
Especifique se os dados temporários gerados durante a criação do savepoint são armazenados em um disco local. |
BOOLEAN |
false |
Valores válidos:
Nota
|
Parâmetros relacionados à memória
|
Parâmetro |
Descrição |
Tipo de dados |
Valor padrão |
Observações |
|
state. backend. gemini. memory. managed |
Especifique se o GeminiStateBackend aloca memória automaticamente com base na memória gerenciada. |
BOOLEAN |
true |
Valores válidos:
Nota
|
|
state. backend. gemini. total. writebuffer. size |
O tamanho total da memória ocupada pelo WriteBuffer. |
STRING |
128 MB |
Este parâmetro entra em vigor quando o parâmetro state. backend. gemini. memory. managed é definido como false. Caso contrário, o tamanho total da memória ocupada pelo WriteBuffer é calculado automaticamente com base na memória gerenciada. Ao configure este parâmetro, adicione uma unidade ao valor. A unidade pode ser B, KB, MB ou GB. Nota
|
|
state. backend. gemini. offheap. size |
O tamanho da memória off-heap usada pelo GeminiStateBackend. Nota
A memória off-heap usada pelo GeminiStateBackend não inclui a memória ocupada pelo WriteBuffer. |
STRING |
(nenhum) |
Este parâmetro entra em vigor quando o parâmetro state. backend. gemini. memory. managed é definido como false. Caso contrário, o tamanho da memória off-heap usada pelo GeminiStateBackend é calculado automaticamente com base na memória gerenciada. Ao configure este parâmetro, adicione uma unidade ao valor. A unidade pode ser B, KB, MB ou GB. Nota
|
As configurações básicas de checkpoints e backends de estado no Apache Flink também se aplicam ao GeminiStateBackend. Para obter mais informações, consulte Checkpoints and State Backends.
Parâmetros para separação de computação e armazenamento
|
Parâmetro |
Descrição |
Tipo de dados |
Valor padrão |
Observações |
|
state. backend. gemini. file. cache. type |
O modo de separação de computação e armazenamento. |
STRING |
O valor padrão é LIMITED. |
Valores válidos:
|
|
state. backend. gemini. file. cache. preserved-space |
O espaço em disco disponível para os dados de estado em um TaskManager. |
STRING |
2 GB |
Se o espaço real disponível em disco for menor que o valor deste parâmetro, o GeminiStateBackend armazena os dados de estado em um DFS para eliminar o limite no armazenamento local. Ao configure este parâmetro, adicione uma unidade ao valor. A unidade pode ser B, KB, MB ou GB. Nota
|
O sdk do cliente do Object Storage Service (OSS) grava dados de um arquivo em discos locais antes de fazer o upload do arquivo. Portanto, se o OSS for usado como DFS, poderá ocorrer um uso inesperado do espaço em disco. Quando o Flink cria um savepoint, um único backend de estado gera apenas um arquivo. Isso gera um arquivo grande e não compactado que ocupa o espaço em disco. Nesse cenário, o recurso de separação de computação e armazenamento falha. Para resolver esse problema, aumente o paralelismo para reduzir o tamanho dos dados de estado em um único nó.
Parâmetros para separação de chave-valor
|
Parâmetro |
Descrição |
Tipo de dados |
Valor padrão |
Observações |
|
state. backend. gemini. kv. separate. mode |
O modo de separação de chave-valor. |
STRING |
O valor padrão é SPECIFIED_TABLE_ENABLE. |
Valores válidos:
Nota
|
|
state. backend. gemini. kv. separate. value. size. threshold |
O limiar de tamanho do valor que aciona a separação de chave-valor após a sua ativação. |
INTEGER |
200 |
A chave e o valor do registro cujo valor atinge esse limiar são armazenados separadamente. O valor recomendado varia de 150 a 1.000. Ajuste o valor deste parâmetro com base na taxa de sucesso das operações JOIN. Se a taxa de sucesso das operações JOIN for alta, defina este parâmetro com um valor maior. Unidade: bytes. Nota
Se o modo de ajuste adaptativo de parâmetros estiver ativado, o mecanismo ajustará dinamicamente este parâmetro com base nas características dos dados. Não é necessário configure explicitamente. |
Parâmetros para ajuste adaptativo de parâmetros
|
Parâmetro |
Descrição |
Tipo de dados |
Valor padrão |
Observações |
|
state. backend. gemini. auto-tune. mode |
O modo de ajuste adaptativo de parâmetros. |
STRING |
ACTIVE |
Valores válidos:
Nota
|
|
state. backend. gemini. auto-tune. burst. start. x |
O período de tempo durante o qual o modo de prioridade de desempenho é usado quando o ajuste adaptativo de parâmetros está ativado. |
STRING |
(nenhum) |
Configure os dois parâmetros para especifique vários períodos de tempo. Os valores dos parâmetros estão no formato yyyy-MM-dd HH: mm: ss. Se os requisitos de transações por segundo (TPS) forem maiores que os de desempenho, configure os dois parâmetros. O GeminiStateBackend usa a política de prioridade de TPS durante o período de tempo especificado por esses parâmetros para alcançar um TPS mais alto. No entanto, configure os dois parâmetros consome mais recursos (núcleos de cpu e memória). Nota
|
|
state. backend. gemini. auto-tune. burst. end. x |