Prácticas recomendadas para transferencias de sistemas de archivos

En esta página, se describen las prácticas recomendadas para las transferencias del sistema de archivos.

Prácticas recomendadas para el rendimiento

A continuación, se proporcionan las prácticas recomendadas para garantizar un rendimiento óptimo de las transferencias:

  • Maximiza el rendimiento de tu agente de transferencia.

  • Mediante la transferencia, se compara el rendimiento de un gran conjunto de datos, que suele tener un tamaño de al menos 100 GB.

    El Servicio de transferencia de almacenamiento es un servicio a gran escala con capacidad de procesamiento optimizada, por lo que el rendimiento en conjuntos de datos de prueba muy pequeños no indica el rendimiento en conjuntos de datos grandes en producción.

  • Limita las carpetas de origen individuales a 1 millón de archivos. Los directorios que contienen millones de archivos pueden ralentizar toda la transferencia.

  • Ejecuta agentes en máquinas virtuales (VM) independientes para que puedas escalar tu consumo de recursos de forma más eficaz.

  • Verifica que la interfaz de red en las máquinas del agente tenga el tamaño del ancho de banda de lectura y escritura que necesitas.

    Por ejemplo, si quieres usar una red de área extensa (WAN) de 20 Gbps por completo, la interfaz de red de tu máquina de agente debe admitir 20 Gbps a fin de leer datos de tu sistema de archivos conectado en red y otros 20 Gbps para transferir datos a Cloud Storage, o 40 Gbps de ancho de banda total.

  • Supervisa la CPU, la memoria y la red en las máquinas de los agentes para asegurarte de que las otras cargas de trabajo no sobrecarguen las máquinas, ya que esto puede perjudicar el rendimiento. Consulta los requisitos de hardware del agente para obtener sugerencias de memoria y cifras de CPU.

Cargas multiparte

Si tu transferencia es de un sistema de archivos POSIX a Cloud Storage o entre sistemas de archivos POSIX, considera habilitar las cargas multiparte. Las cargas multiparte pueden acelerar las transferencias que incluyen archivos grandes hasta en un 300%, ya que dividen los archivos grandes (más de 1 GiB) en partes más pequeñas y las subes en paralelo.

Los sistemas de archivos compatibles con HDFS y S3 no admiten cargas de varias partes.

Habilitar cargas multiparte

Para habilitar las cargas multiparte, sigue estos pasos:

  • Debes otorgar los permisos necesarios a la cuenta que autoriza a los agentes de transferencia, ya sea una cuenta de usuario o una cuenta de servicio.

  • El bucket de destino o intermedio no debe tener una política de retención ni una conservación de objetos.

Una vez habilitado, el Servicio de transferencia de almacenamiento usa la carga multiparte automáticamente cuando lo hace es probable que acelere una transferencia.

Configura reglas del ciclo de vida de objetos multiparte

Puedes usar la Administración del ciclo de vida de los objetos de Cloud Storage para anular una carga multiparte incompleta y borrar las partes asociadas. Consulta Cancela cargas multiparte incompletas en la documentación de Cloud Storage.

Te recomendamos que establezcas un valor de age de 7 días.

Inhabilitar cargas multiparte

Para inhabilitar las cargas multiparte, reinstala los agentes de transferencia con docker run y pasa --enable-multipart=false:

sudo docker run --ulimit memlock=64000000 -d --rm \
-v /usr/local/research:/usr/local/research \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--agent-pool=AGENT_POOL \
--creds-file=CREDENTIAL_FILE \
--hostname=$(hostname) \
--enable-multipart=false

Reemplaza lo siguiente:

  • PROJECT_ID especifica el ID del proyecto que aloja la transferencia.
  • CREDENTIAL_FILE: Si el agente de transferencia usa una cuenta de servicio para la autenticación, especifica la ruta de acceso a un archivo de credenciales de cuenta de servicio en formato JSON.

De manera alternativa, revoca los permisos necesarios de la cuenta que autoriza a los agentes de transferencia, ya sea una cuenta de usuario o una cuenta de servicio.

Maximiza el rendimiento del agente de transferencia

Las siguientes variables afectan el rendimiento de la transferencia:

  • Funciones del sistema de archivos

  • Limitaciones subyacentes del hardware

    El tipo de medio del disco duro, el bus de entrada y salida y la conectividad de red de área local (LAN) afectan el rendimiento.

  • Capacidad de procesamiento y uso de WAN

    Una WAN más lenta o de uso alto disminuye el rendimiento.

  • Características del archivo

    Por ejemplo, muchos archivos grandes tienen una capacidad de procesamiento de red mayor que muchos archivos pequeños por la sobrecarga.

Debido a estas variables, no podemos predecir el rendimiento real ni proporcionar una cantidad óptima de agentes que se usarán.

Como mínimo, te recomendamos que uses tres agentes en diferentes máquinas si es posible, de modo que tu transferencia permanezca tolerante a errores. Puedes agregar agentes de transferencia cuando se ejecutan las transferencias, ya que el rendimiento aumenta de forma dinámica.

Para elegir la cantidad de agentes que funcionan mejor en tu entorno y observar el impacto cuando los agregas, haz lo siguiente:

  1. Inicia una transferencia grande que lleve al menos 1 hora en ejecutarse. Por ejemplo, inicia una transferencia que contenga al menos 100,000 archivos y tenga un tamaño total de 100 GB como mínimo.

  2. Usa Cloud Monitoring para observar la capacidad de procesamiento general del agente.

  3. Espera a que la capacidad de procesamiento se nivele y determina si tienes una limitación debido a la capacidad de WAN o el límite de ancho de banda.

  4. Si no saturaste la capacidad de WAN y no alcanzaste el límite de transferencia deseado, agrega otro agente. De forma automática, el agente adicional aumenta la capacidad de procesamiento de la transferencia. Espera uno 3 minutos para que la capacidad de procesamiento se estabilice en Cloud Monitoring.

Repite los pasos 3 y 4, es decir, agrega un agente a la vez hasta alcanzar el límite deseado. Siempre que haya recursos disponibles de procesamiento, sistemas de archivos y redes, puedes ejecutar hasta 100 agentes de forma simultánea por grupo de agentes.

Si se satura tu ancho de banda de salida antes de alcanzar el límite deseado, puedes realizar alguna de las siguientes acciones:

Investiga la capacidad de procesamiento del sistema de archivos si agregaste agentes, pero la capacidad de procesamiento no aumenta y la WAN no se satura. En casos poco frecuentes, la capacidad de procesamiento del sistema de archivos se satura, lo que obstaculiza el aumento del rendimiento de la transferencia.

Asigna nombres a los agentes

Cuando asignes nombres a los agentes, te recomendamos que realices las siguientes acciones:

  • Incluye siempre el nombre de host en tu agente. Esto te ayudará a encontrar la máquina en la que se ejecuta un agente. Te recomendamos pasar --hostname=$(hostname) al comando run de Docker.

  • Elige un esquema de prefijos de agente que te ayude a identificar los agentes en el contexto de la organización de tu infraestructura y supervisión. Por ejemplo:

    • Si tienes tres proyectos de transferencia independientes, puedes incluir el nombre del equipo en tu agente. Por ejemplo, logistics.

    • Si ejecutas dos proyectos de transferencia diferentes para dos centros de datos distintos, es posible que desees incluir el nombre del centro de datos en el prefijo del agente. Por ejemplo, omaha.