Cómo calcular la escritura adicional y optimizar el motor en la amplificación de escritura GC

glosario

  • append escrito
    basado en la secuencia del modo de grabación de datos adicional diario de escritura es similar a ZIL ZFS, ext4 la revista.

  • La GC
    colletion basura de los medios de recuperación del proceso contra escritura proceso de anexar a cubrir los datos de escritura residuos generados.

Calculado por proceso de amplificación de escritura GC

Diferentes niveles de amplificación de escritura

  • Diario de nivel
    Estadísticas de usuario de escritura front-end de datos válidos total_user_io, y contiene esta parte de los datos y un acuerdo de consenso de acoplamiento distribuido, la cantidad total de la escritura de diarios índice de apoyo al total_journal_io diseñado, calculado total_journal_io / total_user_io. Aquí el coste principal paquete de usuario es IO, se organiza en una respectiva cabeza diario y final del registro y la sobrecarga añadida.

  • nivel de motor de almacenamiento

Escritura de estadísticas de usuarios distal total_user_io datos válidos, y después de la cantidad total de las escrituras motor de almacenamiento externos total_engine_io, calculan total_enigne_io / total_user_io. Aquí los principales gastos incluyen:

  1. motor de almacenamiento superior GC;
  2. datos del índice frente a la sobrecarga de disco;
  • a nivel de disco
    total_user_io estadísticas de escritura para el usuario final distal datos válidos, y registrar los datos, el terminal central envió escritura en disco total de solicitudes total_host_io, calculado total_host_io / total_user_io. total_host_io se puede obtener ioutil herramientas o archivo / proc / DiskStat. En el escenario distribuido, donde los principales gastos generales, además de los anteriores comprende además:

    1. acuerdo basado en el consenso distribuida, toda la información de índice a cabo regularmente órdenes de arriba;
    2. La grabación del disco lógico asignaciones de metadatos sobrecarga y copia de grupo;
  • SSD-nivel
    estadísticas de escritura distal usuario final total_user_io datos válidos, y enviados a la SSD interna de la cantidad total de total_nand_io NAND de succión, calculado total_nand_io / total_user_io. Aquí los principales gastos generales en Además de lo anterior, que comprende además una sobrecarga SSD escritura interior ampliado. Estos últimos pueden a nvmecli o por sus estadísticas de bibliotecas nativas.

consideraciones de diseño GC

punto Optimización propósito principal GC es proporcionar al usuario tanto como sea posible eficaz IO, IO al tiempo que reduce la latencia. la amplificación de escritura en todos los niveles de las estadísticas anteriores son un indicador importante del diseño del motor de almacenamiento. GC necesidades reales de diseño a tener en cuenta el tamaño de la capacidad disponible actualmente, el grado de fragmentación de datos, SSD factores estáticos desgaste también es necesario tener en cuenta el modo IO usuario, programación de tareas SSD interno y otros factores dinámicos. Los siguientes casos asumen el mismo ajuste, cada uno de los factores considerados individualmente.

La capacidad disponible actual

En los sistemas a gran escala distribuidos, la capacidad disponible tienen diferentes consideraciones de diseño en diferentes niveles.

  • ámbito de la agrupación
    si todo el cúmulo adecuada capacidad disponible puede ralentizar la GC, por el contrario GC tan pronto como sea posible. La falta de espacio disponible para los nodos individuales, los nodos debe ser equilibrada por la capacidad entre los nodos para liberar el espacio tan pronto como sea posible, y no debe ser acelerado GC. Debido a que en el plazo de espacio, por lo que la amplificación GC escritura es bastante grande.

  • nivel de host / disco
    Del mismo modo, si la capacidad suficiente puede hacer residuos de alta prioridad en el proceso de acabado GC, GC viceversa debe liberar espacio tan pronto como sea posible.

grado de fragmentación de datos

Con base en el grado de estadística de datos CAN índice de fragmentación dentro de todas las secciones del disco. Cuanto más fragmentado la región debe hacer primero proceso de desfragmentación GC.

modo de usuario IO

Usuarios de la cobertura de escritura, más se debe evitar el proceso de GC para mover los datos, sino que debe permitir a los usuarios superponer sus propios datos antes de escribir invalidado, luego se elimina.

Los usuarios de escritura aleatoria, la desfragmentación se debería hacer más.

En el caso de una suficiente capacidad disponible: la petición del usuario más actual, el GC debe evitarse más, dar al usuario el ancho de banda, por el contrario, la GC positivo disponibles, desplazando la carga utilizando el ancho de banda de disco.

SSD grado de desgaste

En casos extremos, si el SSD muy desgastado, a la transferencia de datos a evitar, por el contrario, puede ser necesaria GC.

SSD interno de programación de tareas

Debido a que el ancho de banda total disponible es cierto SSD interno, por lo que se puede tratar de evitar el tiempo de ciclo GC para la ejecución de tareas interno SSD.

Optimización de GC

Esto se discute en su propio otro blog, referencia: http://xiaqichao.cn/wordpress/?p=172
aquí simplemente resumir algunos puntos.

GC se basa generalmente en secciones hacer a menudo tienen que considerar qué hacer GC Seleccionar sector, y cómo hacerlo GC.

estrategia de selección

Podemos considerar los siguientes factores en cuenta lo que hay que hacer GC rebanada:

  • Proporción de segmento de datos válidos

  • Condición de los datos de sector

  • GC realiza dentro del segmento de datos de la historia (número)

  • El grado de fragmentación dentro de los datos de sector

Supongo que te gusta

Origin blog.51cto.com/xiamachao/2484873
Recomendado
Clasificación