Cockcroft: los percentiles no sirven para medir latencia, mira los picos del histograma
El veterano de Sun y Netflix defiende analizar la distribución completa de tiempos de respuesta en lugar de resumirla en un P99, y publica en código abierto la herramienta en R que construyó con ayuda de un LLM.

Adrian Cockcroft lleva décadas optimizando sistemas a escala: kernel de Solaris y multiproceso en Sun, la migración de Netflix a la nube, Chaos Monkey, y temporadas en eBay y Amazon. En una conversación con la analista de RedMonk Rachel Stephens dentro de P99 CONF, sostuvo que el P99 y la media han dejado de servir para entender la latencia de un servicio web moderno. Su propuesta es mirar la distribución entera, y para eso ha publicado una herramienta de análisis en código abierto.
El argumento no es nuevo en su cabeza: lleva más de una década dándole vueltas. Un solo número como el P99 no dice si la distribución subyacente tiene un pico o varios, y en producción casi siempre tiene varios. El caso típico que él mismo pone: un histograma con dos modos, uno rápido que corresponde a aciertos de caché y otro lento para los fallos que obligan a trabajar de verdad. Cuando cambia la tasa de aciertos, la posición de cada pico se mantiene, porque la latencia de cada modo no cambia, pero las alturas se mueven.
"Tu media y tu P99 se mueven de un lado a otro, pero lo único que está pasando es que cambia tu tasa de aciertos de caché", resume.
De leer el kernel a pedirle el código al modelo
La forma de trabajar de Cockcroft viene de lejos. En sus años en Sun, la gente miraba la salida de vmstat y adivinaba qué significaban los números, porque la página de manual tampoco aclaraba gran cosa. Él se fue al código fuente del kernel, averiguó de dónde salía cada métrica y lo dejó por escrito. De ahí salieron dos libros, Sun Performance and Tuning y Resource Management.
Cuatro décadas después, el método es el mismo pero las herramientas no. Cuando los datos de sus sistemas no cuadran y los paneles dicen que todo va bien, busca una forma nueva de mirarlos: más granularidad, distribuciones en lugar de medias. Antes eso implicaba pelearse con Python o rebuscar fragmentos de librerías gráficas. Ahora levanta utilidades a medida en minutos pidiéndoselas al modelo, lo que él llama vibe coding.
"Mi aceleración es infinita, porque este código nunca habría existido sin estas herramientas. No tendría tiempo de construirlas", dice.
Su último proyecto va justo de eso: identificar un número arbitrario de picos en una distribución y seguir cómo fluctúan en el tiempo, en vez de colapsarlo todo en un promedio. Está implementado en R, un lenguaje que llevaba tiempo sin tocar y que ChatGPT conocía bien, y el código está en GitHub. Quien quiera el desarrollo del argumento lo tiene en su artículo Percentiles Don't Work.
El microscopio
Su consejo para quien trabaja en sistemas de alto rendimiento es empezar por lo macro para localizar lo interesante y luego ir cerrando el foco hasta llegar a peticiones lentas concretas, de extremo a extremo. Lo comparó con el microscopio de la infancia: primero enfocas a 10 aumentos, luego pasas a 100 y ajustas, y cuando lo tienes nítido saltas a 1.000 y ya estás mirando una mota.
La consecuencia práctica para quien opera servicios es incómoda: un panel que solo muestra P99 y media puede estar ocultando un cambio de mezcla, no un cambio de rendimiento. Si la tasa de aciertos de caché se mueve, el gráfico se mueve y el equipo se pone a buscar un problema donde solo hay una distribución distinta. La herramienta está ahí para comprobarlo sin escribirla desde cero.
