CatBench v0.3: Aplicación de búsqueda vectorial de Postgres ahora con monitoreo de rendimiento

2025-05-30

CatBench, una aplicación de demostración que utiliza Postgres y PgVector con 25.000 fotos de mascotas, ahora incluye gráficos de rendimiento y latencia de consultas a nivel de instancia. Anteriormente, los usuarios podían explorar un motor de recomendación, ver fotos de gatos y recomendaciones de productos basadas en compras de gatos similares, y ver las métricas de ejecución de consultas SQL del backend. La versión v0.3 agrega una sección de monitoreo que muestra la actividad de la instancia de Postgres y la latencia de SQL. Los planes futuros incluyen la limpieza del código, la expansión del conjunto de datos de fotos a 9 millones de imágenes, la adición de monitoreo de calidad de recuperación para la detección de fraude y el soporte para otras bases de datos.

Leer más

pg_test_fsync: Medición del rendimiento de escritura en disco para bases de datos

2025-05-28

Este artículo presenta la herramienta `pg_test_fsync`, utilizada para evaluar rápidamente el rendimiento de escritura en disco o almacenamiento en la nube, especialmente útil para registros WAL de bases de datos y otras cargas de trabajo de escritura de baja latencia. El autor prueba un SSD Samsung 990 Pro de nivel consumidor y un SSD Micron 7400 de nivel empresarial, mostrando velocidades de escritura sincrónica significativamente más rápidas en el SSD empresarial debido a su caché DRAM del controlador y protección contra pérdida de energía. `fdatasync` resulta más rápido que `fsync` o `O_SYNC`, pero incluso `fdatasync` tarda 1,6 milisegundos para una sola escritura de 8 kB. El artículo observa que varias escrituras pequeñas degradan el rendimiento, sugiriendo la escritura por lotes para mayor eficiencia.

Leer más
Desarrollo

lsds: Una herramienta única para la configuración de dispositivos de bloque de Linux

2025-05-09

Gestionar discos y E/S en Linux a menudo implica ejecutar varios comandos como lsblk, lsscsi y nvme list, y luego correlacionar manualmente sus salidas. Para simplificar esto, se creó un programa Python llamado `lsds`. Lee directamente la información de los directorios `/sys/class/blocks/...`, consolidando los detalles importantes del disco en una única salida fácil de leer. Esto incluye el nombre del dispositivo, el tamaño, el tipo, el planificador, el indicador rotacional, el modelo, la profundidad de la cola, el número de solicitudes y la configuración de la caché de escritura. `lsds` es altamente personalizable, permitiendo a los usuarios especificar qué columnas mostrar y proporcionando un modo detallado para rastrear las fuentes de información. Esta herramienta simplifica significativamente la complejidad de la gestión de discos Linux.

Leer más

11M IOPS y 66 GiB/s de IO en una sola estación de trabajo ThreadRipper: Una inmersión profunda

2025-05-06

Este artículo detalla la configuración de una estación de trabajo AMD ThreadRipper Pro con 10 SSD PCIe 4.0 para lograr 11M IOPS en lecturas aleatorias de 4 kB y un rendimiento de 66 GiB/s para IOs más grandes. El autor aborda los cuellos de botella como el acceso a la RAM y las limitaciones de la CPU, profundizando en los aspectos internos de la E/S de bloque de Linux y su interacción con el hardware moderno. El proceso incluye la selección de hardware, la configuración de E/S (E/S directa y programadores de E/S), las pruebas de múltiples discos y la configuración de la BIOS, logrando finalmente un rendimiento notable.

Leer más
Hardware

Trampa eBPF: El FRED en el Kernel de Linux 6.9+

2025-03-01

El kernel de Linux 6.9+ introduce CONFIG_X86_FRED en x86_64, añadiendo 16 bytes de relleno al final de la pila del kernel de una tarea. Esto rompe los programas eBPF que acceden directamente a la pila del kernel y pt_regs, devolviendo basura. El autor encontró este problema con su herramienta eBPF xcapture-next después de actualizar al kernel 6.11. El análisis reveló el desplazamiento de la pila de FRED como el culpable. Se presenta un mecanismo de detección dinámica de FRED para ajustar los cálculos de la dirección de la pila, resolviendo el problema. Este artículo es crucial para los desarrolladores de eBPF, especialmente aquellos que trabajan con la manipulación sin procesar de la pila del kernel.

Leer más
Desarrollo

TracepointArgs: Descifrando los Tracepoints del Kernel de Linux

2025-02-04

¿Cansado de buscar en el código fuente del kernel de Linux metadatos de tracepoint y diseños de struct? ¡Presentamos tracepointargs, una nueva herramienta de línea de comandos que lista todos los tracepoints disponibles del kernel de Linux, sus argumentos, tipos de datos y structs relacionados! Incluso analiza los diseños de struct del kernel, lo que le permite comprender los detalles del tracepoint sin tener que buscar en los archivos de código fuente. Combinado con bpftool para generar un archivo vmlinux.h, puede inspeccionar fácilmente el interior de las estructuras, incluso expandiendo recursivamente las anidadas. ¡Una herramienta imprescindible para desarrolladores eBPF y exploradores del kernel!

Leer más
Desarrollo