¿Qué demonios es un Kibibyte?

Además de ser un poco mezquino, nuestro fundador Steve tiene una afición bien conocida por ser pedante. Si irrumpe en el área de desarrollo y comienza a asar a la gente, incluso los ingenieros experimentados con frecuencia se confunden cuando se plantean por primera vez la pregunta: «¿Kilobytes o kibibytes?».

 kibibytes

Incluso si no ha escuchado el término, probablemente esté al menos familiarizado con el concepto. Un «kibibyte» es igual a 1024, o 2^10, bytes. Bastante simple, pero ¿no es un «kilobyte» también de 1024 bytes? Bueno, lo es, a veces. Como se define en el Sistema Internacional de Unidades, el prefijo «kilo»se refiere a 1000, o 10^3. La mayoría de los fabricantes de almacenamiento miden y etiquetan la capacidad en base 10 (1 kilobyte = 1000 bytes; 1 megabyte = 1000 kilobytes; 1 gigabyte = 1000 megabytes; 1 terabyte = 1000 gigabytes). Sin embargo, los proveedores de RAM y la mayoría de los sistemas operativos usan base 2 (1 kilobyte = 1024 bytes; 1 megabyte = 1024 kilobytes; 1 gigabyte = 1024 megabytes; 1 terabyte = 1024 gigabytes). (Una excepción notable a esto es macOS, que ha utilizado base 10 desde OS X 10.6.) Por lo tanto, para saber qué significa exactamente «gigabyte», necesita saber el contexto en el que se usa la palabra. Si está hablando de capacidad de disco duro sin procesar, un gigabyte es de 1000000000 bytes. Si está hablando del sistema de archivos en la parte superior de ese disco duro, gigabyte significa 1073741824 bytes.

¿Confundido ya? Esta es la razón por la que el «kibibyte» es importante; «kilo» (y «giga», etc.) es ambiguo cuando se usa para significar tanto 1000 como 1024, por lo que el IEC estableció un nuevo conjunto de prefijos binarios en 1998 para reducir la confusión. Otros prefijos incluyen» mebi»,» gibi»,» tebi «y» pebi «para reemplazar a» mega»,» giga»,» tera » y «peta» respectivamente. (Hay más prefijos para cantidades más grandes, pero si realmente crees que los necesitas, puedes ir a buscarlos tú mismo.)

Por lo tanto, todo eso está bien y elegante, pero ¿es realmente tan importante? ¿Realmente importa una diferencia de 24 bytes por kilobyte? Consideremos una unidad anunciada con 2 terabytes (2 x 10^12 bytes) de capacidad. Tengo uno formateado como un volumen VMFS en mi laboratorio de VMware. Después de formatear, VMware informa de 2000112582656 bytes de capacidad (curiosamente, más de 2 terabytes, pero no me voy a quejar de obtener más bytes de los anunciados). Vamos a ver cómo esto es diferente cuando se muestra por LogicMonitor como terabytes (como es el término utilizado por los proveedores de almacenamiento) y tebibytes:

2000112582656 / 1000 / 1000 / 1000 / 1000 = 2.00 terabytes

gráfico

2000112582656 / 1024 / 1024 / 1024 / 1024 = 1.82 tebibytes
captura de pantalla-2017-01-20-at-10-57-44-am

El lector astuto podría observar que en realidad no hay diferencia entre 2.000 terabytes y 1.819 tebibytes, y sería correcto. Sin embargo, a menos que esté en un Mac, es probable que su sistema operativo y el administrador de archivos tengan capacidad de informes y tamaño de archivo en tebibytes. La notación no lo hará necesariamente obvio. Por ejemplo, el comando df en linux reportaría 1.8 T, mientras que el Explorador de Windows reportaría 1.82 TB. Windows utiliza el estándar JEDEC en lugar de IEC, por lo que mientras el valor es igual a tebibytes, todavía se etiquetaría como «terabytes». El estándar JEDEC considera que 1 kilobyte equivale a 1024 bytes. En este caso, hay una discrepancia de ~180 gigabytes o gibibytes. Si conecta su nueva y brillante unidad de 2 terabytes, es posible que se sienta decepcionado cuando su sistema operativo lo informe como solo 1.8 terabytes. Misma palabra, pero diferente significado en los diferentes contextos.

¿Qué tiene que ver todo esto con LogicMonitor? Bueno, si define un gráfico en LogicMonitor, por defecto escalará sus valores gráficos usando una base de 10 kilobytes. Si graficas 2000112582656 bytes, tu gráfico en LogicMonitor mostrará 2,00 T cuando pases el ratón sobre la línea. Sin embargo, esto no es ideal, ya que desea que su herramienta de monitoreo lo muestre de la misma manera que su sistema operativo, utilizando kibibytes base 2 (1.82 T). Por suerte para ti (y para nosotros), ¡esa es una opción! Cada definición de gráfico en LogicMonitor tiene la opción de escalar por unidades de 1024; todo lo que tiene que hacer es marcar la casilla y asegurarse de convertir sus valores a bytes. LogicMonitor se encargará del resto.

Un problema final puede estar molestándole; ¿por qué LogicMonitor aplica escalado predeterminado por unidades de 1000 si la mayoría de los sistemas operativos escalan las unidades de almacenamiento en 1024? La respuesta es que, a pesar de lo que el administrador de almacenamiento pueda decirle, la supervisión no es solo la supervisión del almacenamiento y el servidor. Casi todo lo demás, bits de red por segundo, solicitudes HTTP por segundo, latencia, la profundidad de las colas de SQS, el número de objetos en una caché, se escala utilizando la base 10. Es solo para sistemas de archivos y memoria que debe marcar la opción «escalar por 1024».

Si todos los sistemas operativos adoptaran el estándar de informes en tebibytes y gibibytes, se eliminaría la confusión. Pero hasta entonces, recuerde que el prefijo «giga» significa una cosa cuando se habla de memoria y sistemas de archivos, y otra cosa cuando se habla de todo lo demás.

¿Crees que tienes una mirada extraña de tus colegas administradores de sistemas al mencionar «kibibyte»? Intente preguntar a su equipo de red sobre «gibibits».

Deja una respuesta

Tu dirección de correo electrónico no será publicada.