CatBench v0.3: Aplicativo de Busca Vetorial Postgres Agora com Monitoramento de Desempenho

2025-05-30

CatBench, um aplicativo de demonstração que usa Postgres e PgVector com 25 mil fotos de animais de estimação, agora apresenta gráficos de throughput e latência de consulta em todo o instance. Anteriormente, os usuários podiam explorar um mecanismo de recomendação, visualizar fotos de gatos e recomendações de produtos com base em compras de gatos semelhantes e ver as métricas de execução de consultas SQL de back-end. A versão v0.3 adiciona uma seção de monitoramento que exibe a atividade do instance do Postgres e a latência do SQL. Os planos futuros incluem limpeza de código, expansão do conjunto de dados de fotos para 9 milhões de imagens, adição de monitoramento de qualidade de recuperação para detecção de fraude e suporte a outros bancos de dados.

Leia mais

pg_test_fsync: Benchmark de desempenho de escrita em disco para bancos de dados

2025-05-28

Este artigo apresenta a ferramenta `pg_test_fsync`, usada para avaliar rapidamente o desempenho de escrita em disco ou armazenamento em nuvem, especialmente útil para logs WAL de banco de dados e outras cargas de trabalho de escrita de baixa latência. O autor testa um SSD Samsung 990 Pro de nível consumidor e um SSD Micron 7400 de nível empresarial, mostrando velocidades de escrita síncrona significativamente mais rápidas no SSD empresarial devido ao seu cache DRAM do controlador e proteção contra perda de energia. `fdatasync` se mostra mais rápido que `fsync` ou `O_SYNC`, mas mesmo `fdatasync` leva 1,6 milissegundos para uma única escrita de 8 kB. O artigo observa que várias escritas pequenas degradam o desempenho, sugerindo a escrita em lote para maior eficiência.

Leia mais
Desenvolvimento

lsds: Uma Ferramenta Única para Configurações de Dispositivos de Bloco Linux

2025-05-09

Gerenciar discos e E/S no Linux costuma envolver a execução de vários comandos, como lsblk, lsscsi e nvme list, e, em seguida, correlacionar manualmente suas saídas. Para simplificar isso, foi criado um programa Python chamado `lsds`. Ele lê diretamente as informações dos diretórios `/sys/class/blocks/...`, consolidando detalhes importantes do disco em uma única saída fácil de ler. Isso inclui o nome do dispositivo, tamanho, tipo, escalonador, sinalizador rotacional, modelo, profundidade da fila, número de solicitações e configurações de cache de gravação. O `lsds` é altamente personalizável, permitindo que os usuários especifiquem quais colunas exibir e fornecendo um modo detalhado para rastrear as fontes de informações. Essa ferramenta simplifica significativamente a complexidade do gerenciamento de discos Linux.

Leia mais

11 milhões de IOPS e 66 GiB/s de IO em uma única estação de trabalho ThreadRipper

2025-05-06

Este artigo descreve a configuração de uma estação de trabalho AMD ThreadRipper Pro com 10 SSDs PCIe 4.0 para atingir 11 milhões de IOPS para leituras aleatórias de 4 kB e uma taxa de transferência de 66 GiB/s para IOs maiores. O autor aborda gargalos como acesso à RAM e limitações da CPU, aprofundando-se nos detalhes internos do I/O de bloco do Linux e sua interação com o hardware moderno. O processo inclui a seleção de hardware, configuração de E/S (E/S direta e planejadores de E/S), testes de múltiplos discos e configurações da BIOS, atingindo, finalmente, um desempenho notável.

Leia mais
Hardware

Armadilha eBPF: O FRED no Kernel Linux 6.9+

2025-03-01

O kernel Linux 6.9+ introduz o CONFIG_X86_FRED em x86_64, adicionando 16 bytes de preenchimento ao final da pilha do kernel de uma tarefa. Isso quebra programas eBPF que acessam diretamente a pilha do kernel e pt_regs, retornando lixo. O autor encontrou esse problema com sua ferramenta eBPF xcapture-next após a atualização para o kernel 6.11. A análise revelou o offset da pilha do FRED como o culpado. Um mecanismo de detecção dinâmica do FRED é apresentado para ajustar os cálculos do endereço da pilha, resolvendo o problema. Este artigo é crucial para desenvolvedores eBPF, especialmente aqueles que trabalham com manipulação bruta da pilha do kernel.

Leia mais
Desenvolvimento

TracepointArgs: Desvendando os Tracepoints do Kernel Linux

2025-02-04

Cansado de procurar no código-fonte do kernel Linux por metadados de tracepoint e layouts de struct? Apresentamos o tracepointargs, uma nova ferramenta de linha de comando que lista todos os tracepoints disponíveis do kernel Linux, seus argumentos, tipos de dados e structs relacionados. Ele até analisa layouts de struct do kernel, permitindo que você entenda os detalhes do tracepoint sem precisar procurar em arquivos de código-fonte. Combinado com o bpftool para gerar um arquivo vmlinux.h, você pode facilmente inspecionar o interior das estruturas, até mesmo expandindo recursivamente as aninhadas. Uma ferramenta essencial para desenvolvedores eBPF e exploradores de kernel!

Leia mais
Desenvolvimento