Visão geral
Os recursos do sistema (CPU, memória, I/O e recursos de armazenamento) de um banco de dados são limitados. Quando vários tipos de serviços (como carregamento de dados, análise em lote e consulta em tempo real) estão sendo executados ao mesmo tempo, eles podem competir por recursos e dificultar as operações. Como resultado, a taxa de transferência diminui e o desempenho geral da consulta se deteriora. Para evitar esse problema, os recursos devem ser alocados adequadamente.
GaussDB(DWS) fornece a função de gerenciamento de recursos. Você pode colocar recursos em diferentes pools de recursos, que são isolados uns dos outros. Em seguida, você pode associar usuários de banco de dados a esses pools de recursos. Quando um usuário inicia uma consulta SQL, a consulta será transferida para o pool de recursos associado ao usuário. Você pode especificar o número de consultas que podem ser executadas simultaneamente em um pool de recursos, o limite superior de memória usado para uma única consulta e os recursos de memória e CPU que podem ser usados por um pool de recursos. Desta forma, é possível limitar e isolar os recursos ocupados por diferentes cargas de trabalho, utilizando adequadamente os recursos para processar cargas de banco de dados híbrido e obter alto desempenho de consulta.
- Este recurso é suportado apenas na versão 8.0 ou posterior.
- O armazém de dados híbrido (autônomo) não suporta gerenciamento de recurso.
Funções de gerenciamento de recursos
As funções de gerenciamento de recursos do GaussDB(DWS) podem ser classificadas nos seguintes tipos com base nos recursos gerenciados:
- Gerenciamento de recursos de computação. É implementado usando pools de recursos. Os recursos de computação são isolados e controlados para evitar problemas em nível de cluster causados por consultas SQL anormais. O gerenciamento de recursos de computação inclui gerenciamento de simultaneidade, gerenciamento de memória, gerenciamento de CPU e regras de exceção. Para obter detalhes, consulte Pool de recursos.
- Gerenciamento do espaço de armazenamento: o armazenamento é gerenciado no nível do usuário e do esquema para evitar o esgotamento do disco, o que torna o banco de dados somente leitura. Para mais detalhes, consulte Gerenciamento do espaço de trabalho.
- Plano de gerenciamento de recursos: os recursos são gerenciados automaticamente com base em um plano pré-configurado, que pode lidar de forma flexível com cenários complexos. Para obter detalhes, consulte Importação ou exportação de um plano de gerenciamento de recursos.
As funções de gerenciamento de recursos do GaussDB(DWS) podem ser classificadas nos seguintes tipos com base em quando são implementadas:
- Gerenciamento antes de uma consulta
O serviço verifica se há recursos suficientes para uma consulta. Se houver, a consulta pode ser executada. Se não houver, a consulta aguarda em uma fila e pode ser executada somente após os recursos serem liberados por outras consultas. A simultaneidade e a memória são gerenciadas nesta fase.
- Gerenciamento durante uma consulta
Durante a execução da consulta, os recursos usados pela consulta são gerenciados e controlados para evitar exceções de cluster causadas por instruções SQL demoradas. Memória, CPU, espaço de armazenamento e regras de exceção são gerenciadas nesta fase.
Consultas simples e complexas
O GaussDB(DWS) oferece suporte ao gerenciamento de recursos refinado. Antes do gerenciamento de carga de trabalho ser implementado, as consultas são classificadas em consultas complexas (com longo tempo de execução e alto consumo de recursos) e consultas simples (com curto tempo de execução e baixo consumo de recursos). Consultas simples e complexas também diferem em seu uso estimado de memória.
- O uso de memória estimado de uma consulta simples é inferior a 32 MB.
- O uso estimado de memória de uma consulta complexa é de 32 MB ou superior.
Em um banco de dados de carga híbrida, consultas complexas geralmente ocupam um grande número de recursos por um longo tempo. Uma consulta simples enfileirada após uma consulta complexa é demorada, porque tem de esperar que a consulta complexa seja concluída e que os recursos sejam libertos. Para melhorar a eficiência da execução e a taxa de transferência do sistema, o GaussDB(DWS) fornece a função de aceleração de consultas curtas, gerenciando consultas simples separadamente.
- Se a aceleração de consultas curtas estiver ativada, as consultas simples e as complexas serão gerenciadas separadamente. Consultas simples não precisam competir com consultas complexas por recursos.
- Se a aceleração de consulta curta estiver desativada, as consultas simples e complexas estarão sob as mesmas regras de gerenciamento de recursos.
Para evitar que um grande número de consultas simples consumam muitos recursos durante a aceleração, o gerenciamento de concorrência é realizado nas consultas. O gerenciamento de recursos não é realizado, pois pode afetar o desempenho da consulta e a taxa de transferência do sistema.
As consultas são categorizadas com base no uso estimado de memória, mas a estimativa não é igual ao uso real, nem reflete a duração da consulta ou o uso da CPU. Em pools de recursos que são insensíveis ao desempenho e executam apenas serviços específicos, você pode desabilitar a aceleração de consulta curta para gerenciar recursos e manipular exceções para consultas simples.