oracleOracle e discos SSD – Parte IV

Nesta quarta parte da série de posts relacionados a Oracle e Discos de estado sólido (SSD), falarei um pouco sobre as opções de configuração de bases Oracle em discos SSD.

Lembrando mais uma vez que este post foi baseado no artigo escrito por Guy Harrison e está disponível em http://guyharrison.squarespace.com/ssdguide/03-the-oracle-database-flash-cache.html. Também contém informações diretamente da Oracle, obtidas em https://blogs.oracle.com/linux/entry/oracle_database_smart_flash_cache_only_on_oracle_linux_and_oracle_solaris

1) Opções

  • A performance otimizada dos discos SSD pode ser explorada pelos DBAs Oracle seguindo uma, ou várias, das opções mostradas abaixo:
  • Uma base de dados pequena pode ser inteiramente armazenada em discos SSD. Devido aos preços ainda elevados dos discos SSD, isso pode ser inviável para grandes bases de dados. Mas sempre lembre-se: Nenhuma quantia em dinheiro pode substituir seus dados e insatisfação dos usuários com a performance da base de dados.
  • Armazenar alguns datafiles em discos SSD. Apenas os mais críticos em termos de performance.
  • Usar o Oracle Smart Flash Cache (abordado no artigo anterior). Essa opção pode ser muito eficiênte para procedimentos que demandam ou muitas leituras físicas ou leituras indexadas.
  • Alocar a tablespace temporaria em discos SSD, aumentando a velocidade de operações temporárias (como o sort de dados)
  • Armazenar Redo Logs em discos SSD, pois eles são naturalmente muito lidos/escritos. Porém, a natureza dos Redo Logs pode não ser a ideal para discos SSD.

2) Testes

Os testes demonstrados abaixo foram feitos em um ambiente com as seguintes configurações:

DELL R510 (dual-core)
32GBs de RAM
4 HDs SAS 15K
1 PCI FusionIO SLC PCI SSD

2.1) Testes de leituras aleatórias

A carga de trabalho consistiu em leituras indexadas de uma tabela de 20.000.000 de linhas usando um Buffer Cache de 128MBs e 16GBs de Flash Cache.

IMAGEM01

Usar o Flash Cache indicou um grande aumento de performance (redução de 74% no tempo de execução).

2.2) Leituras/Escritas em ambientes OLTP

Neste teste, cada linha foi selecionada 2 vezes e atualizada uma vez. COMMITs ocorreram a cada 10.000 linhas.

IMAGEM02

As vantagens dos discos SSD são reduzidas quando escritas estão envolvidas, especialmente para o Flash Cache. Mas as vantagens ainda se mostram altas (redução de 6% no tempo de execução para o Flash Cache, por exemplo).

2.3) Full-Table Scan performance

Tal teste mede o tempo durante a execução de Full-table Scans

IMAGEM03

Armazenar a tabela inteira em um disco SSD mostrou um aumento drástico na performance de FTS. Usando o Flash Cache não mostrou nenhum ganho perceptível.

2.4) Full-Table Scans e FusionIO directCach

Algus fornecedores de SSD oferecem features de caching que operam de forma similar a feature Flash Cache da Oracle. Essas camadas de cache podem acelerar direct path reads a partir de Full-table Scans.

IMAGEM04

Sem a feature FusionIO directCache, Full-table scans consecutivos não reduzem o I/O, pois o Oracle usa direct path reads, que por sua vez não fazem uso do Buffer Cache/Flash Cache. Agora com o uso de tal feature, Full-table scans consecutivos apresentam um ganho em sua performance, pois as requisições são satisfeitas a partir do SSD.

2.5) Redo Logs

Como os Redo Logs são geralmente uma das causas de performance (a sessão fica em wait até que o commit sej concluído, ou seja, até que as alterações sejam escritas nos Redo Logs, gerando assim I/O).

A diferença do I/O de Redo para os outros I/Os é que o primeiro consiste quase que inteiramente de escritas sequenciais, onde os discos magnéticos fazem bem seu papel. Operações de escrita são mais lentas que operações de leituras, em termos de discos SSD.

IMAGEM05

No teste acima é possível ver que não há ganho algum ao usar discos SSD par armazenar Redo Logs.

É isso ai pessoal. Até o próximo post. Keep Querying.

Links para todos os capítulos desta série:

[Oracle] Performance de discos SSD – Parte I
[Oracle] Performance de discos SSD – Parte II
[Oracle] Performance de discos SSD – Parte III
[Oracle] Performance de discos SSD – Parte IV