Optimización de costos y rendimiento en Functions
Introducción
Catalyst permite el aprovisionamiento de memoria para cada función que crees, según tus requisitos. Puedes seleccionar una memoria para tu función cuando la estés creando, o editar sus configuraciones en cualquier momento que lo necesites. La flexibilidad de personalizar la configuración de memoria de una función sobre la memoria asignada por defecto te permite optimizar tu uso de Catalyst y gestionar mejor los recursos. Puedes monitorear el rendimiento de tu aplicación, priorizar tus necesidades, tomar decisiones informadas para cada caso de uso y obtener beneficios sustanciales de ello.
Esta página de ayuda explicará la correlación entre el aprovisionamiento de memoria en funciones y la optimización de costos, explicando los métodos de cálculo de precios de las funciones de Catalyst con algunos experimentos. Un aumento en el aprovisionamiento de memoria de funciones intensivas en cómputo idealmente resulta en un menor tiempo de ejecución, lo que a su vez reduce tus gastos en Catalyst. Sin embargo, la configuración óptima varía de un caso de uso a otro, dependiendo de la complejidad de las operaciones realizadas en la función.
Cálculos de precios
Esta sección explica el modelo de precios de Catalyst Functions. La tabla que se muestra a continuación presenta los créditos utilizados para diferentes rangos de tiempo de ejecución de funciones:
| Tiempo de ejecución (en segundos) | Créditos |
|---|---|
| <1 | 0.5 |
| 1-5 | 1 |
| 5-10 | 5 |
| 10-15 | 10 |
| 15-30 | 15 |
Esta tabla muestra los créditos consumidos proporcionalmente al tiempo de ejecución, para cada configuración de memoria en funciones:
| Memoria (MB) | Créditos proporcionales al tiempo de ejecución |
|---|---|
| 128 | 1 |
| 256 | 2 |
| 512 | 4 |
El costo de ejecución de funciones se calcula de la siguiente manera:
Costo de ejecución de Functions = Número de Functions * Número de créditos basado en el tiempo de ejecución * Número de créditos basado en la memoria consumidaPor ejemplo, aquí está el cálculo de los créditos consumidos en tres escenarios diferentes:
- Si una función tarda 4 seg con 128 MB, créditos usados = 1 * 1 * 1 = 1 crédito
- Si una función tarda 8 seg con 256 MB, créditos usados = 1* 5 * 2 = 10 créditos
- Si una función tarda 0.5 seg con 512 MB, créditos usados = 1 * 0.5 * 4 = 2 créditos
Experimentos con configuraciones de memoria para optimización de costos
Discutamos las configuraciones óptimas de memoria de funciones y minimizaciones de costos, observando los resultados obtenidos en dos experimentos de la vida real.
Experimento 1
Una función realiza un ordenamiento burbuja de números del 1 al 100 organizados en un arreglo ordenado de forma inversa. A continuación se muestran los gráficos de Application Performance Monitoring que representan el tiempo de respuesta promedio para esta función configurada en tres configuraciones de memoria diferentes: 128 MB, 256 MB, 512 MB.
Se observó que la función con 128 MB tardó 35 milisegundos, la función con 256 MB tardó 29 milisegundos, y la de 512 MB tardó 16 milisegundos en ejecutarse.
Calculemos ahora los créditos consumidos en cada uno de estos casos:
Caso 1 con 128 MB: 1 * 0.5 * 1 = 0.5 créditos
Caso 2 con 256 MB: 1 * 0.5 * 2 = 1 crédito
Caso 3 con 512 MB: 1 * 0.5 * 4 = 2 créditos
Experimento 2
Otra función realiza un ordenamiento burbuja de todos los números entre 1 y 10000 en un arreglo ordenado de forma inversa en múltiples pasadas, con cada pasada convirtiendo un arreglo de orden ascendente a descendente, y de vuelta al orden ascendente nuevamente. Esta función se configura en dos configuraciones de memoria diferentes: 128 MB y 512 MB.
Los datos de ejecución de esta función en dos configuraciones de memoria revelan que la función con 128 MB tardó 6994 ms y la función con 512 MB de memoria tardó 3391 ms en ejecutarse.
Calculemos ahora los créditos consumidos en cada uno de estos casos:
Caso 1 con 128 MB 1* 5 * 1 = 5 créditos
Caso 2 con 512 MB: 1* 4 * 1 = 4 créditos
Inferencias
Podemos obtener las siguientes inferencias de estas observaciones:
- En casos de uso intensivos en cómputo o centrados en CPU, el rendimiento de una función de Catalyst mejora exponencialmente cuanto mayor sea la memoria que configures para ella.
- En casos de uso que involucran operaciones menos intensivas, el consumo de créditos es directamente proporcional al aumento en las configuraciones de memoria.
Conclusión
Basándonos en estas inferencias, podemos llegar a las siguientes conclusiones:
- Es más sabio optar por configuraciones de memoria más altas para funciones que contienen lógica de cálculo pesado.
Por ejemplo, supongamos que realizas 10,000 llamadas de función por mes de la función descrita en el experimento dos. Con 128 MB de memoria, la función consumirá 50,000 créditos por mes, mientras que con 512 MB de memoria la función consumirá solo 40,000 créditos por mes. Esto te ahorrará 10,000 créditos por mes y 120,000 créditos por año, si el mismo patrón continúa.*
- Si una función no contiene lógica intensiva en cómputo, puedes asignar memoria adecuada a los requisitos de la función. Por ejemplo, si asignas 256 MB o 512 MB para una función simple que solo consume 100 MB de memoria, será un desperdicio de recursos y gastos, y el tiempo de respuesta seguirá siendo el mismo.
La diferencia que hace personalizar la memoria de una función y elegir la configuración ideal para ella es significativa en términos de optimización de costos y mejoras de rendimiento. No existe una solución única cuando se trata de elegir la configuración correcta para tus funciones.
Como regla general, puedes comenzar con la configuración de memoria más baja y realizar prueba y error hasta encontrar la configuración de memoria óptima. Catalyst Logs y Application Performance Monitoring pueden actuar como herramientas poderosas para ayudarte en el proceso. Puedes experimentar con las personalizaciones y herramientas proporcionadas por Catalyst, hasta obtener la solución adecuada para tu caso de uso y utilización.
Última actualización 2026-03-20 21:51:56 +0530 IST
Yes
No
Send your feedback to us
