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:
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 es un indicativo del rendimiento de grandes conjuntos de datos 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 de varios archivos. Las cargas de varias partes pueden acelerar las transferencias que incluyen archivos grandes hasta en un 300%, ya que dividen los archivos grandes (> 1 GiB) en partes más pequeñas y las suben en paralelo.
Los sistemas de archivos compatibles con HDFS y S3 no admiten cargas multiparte.
Habilita las cargas multiparte
Para habilitar las cargas multiparte, haz lo siguiente:
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 de varias partes automáticamente cuando es probable que hacerlo acelere una transferencia.
Configura reglas del ciclo de vida de objetos de varias partes
Puedes usar la Administración del ciclo de vida de los objetos de Cloud Storage para abortar una carga multiparte incompleta y borrar las partes asociadas. Consulta Anula cargas multiparte incompletas en la documentación de Cloud Storage.
Te recomendamos establecer un valor de age
de 7 días.
Inhabilita las cargas multiparte
Para inhabilitar las cargas de varias partes, 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 con formato JSON.
Como alternativa, retira 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:
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.
Usa Cloud Monitoring para observar la capacidad de procesamiento general del agente.
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.
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:
- Controla el ancho de banda que usa el Servicio de transferencia de almacenamiento.
- Obtén más ancho de banda de red.
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 comandorun
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
.