¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Guía de rendimiento en Cloud Foundry: Consejos para optimizar el uso de CPU y memoria

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 15 Vistas
0
Cargando...

Hola,

Encontré lo siguiente aquí :

"En el entorno de Cloud Foundry, las aplicaciones obtienen una parte garantizada de CPU de ¼ de núcleo por cada GB de memoria de instancia. Dado que la memoria máxima por instancia por aplicación es de 8 GB, esto permite escalar verticalmente hasta 2 CPUs. Si las aplicaciones que se ejecutan en la misma máquina virtual no utilizan su CPU garantizada, otras aplicaciones podrían obtener más CPU. Esto no está garantizado y podría estar sujeto a cambios en el futuro. Si encuentras problemas de rendimiento, escala tu aplicación o aumenta el tiempo de inicio de la aplicación. El número de hilos en ejecución por instancia de aplicación está limitado a 10 420. Alcanzar este límite puede causar problemas de rendimiento."

Preguntas generales:

- ¿Qué tan rápido es un CPU?

- ¿Dónde encontrar este tipo de información?

¡Gracias!

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola ivan.mirisola

¡Gran respuesta! Tengo algunas preguntas sobre este tema.

Supongamos que tenemos una cuota muy limitada de memoria de tiempo de ejecución para nuestra aplicación y la afirmación "Según la documentación, solo obtienes garantizado 1/4 de una CPU completa por cada GB de memoria de instancia hasta 2 CPUs completas".

Y también tenemos los siguientes escenarios:

  • Escenario #1: Aplicación en ejecución con 1 instancia y 8GB de memoria por instancia (lo que significa 2 CPUs completas)
  • Escenario #2: La misma aplicación ahora en ejecución con 2 instancias y 4GB de memoria por instancia (solo 1 CPU)
  • Escenario #3: La misma aplicación ahora en ejecución con 4 instancias y 2GB de memoria por instancia (solo 1/2 CPU)
  • y así sucesivamente

¿Con respecto a los escenarios anteriores, significa que habrá una degradación del rendimiento desde el Escenario #1 (mejor) hasta el Escenario #3 (peor)?

Por favor, házmelo saber tu respuesta.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola mario.guenter ,

La forma en que entiendo esto es que tu aplicación se está ejecutando en una máquina real "compartida" dentro de un contenedor.

Según la documentación, solo obtienes garantizado 1/4 de núcleo de CPU por GB de memoria de instancia hasta 2 CPUs completas.

La cantidad de núcleos de CPU y hermanos que ves con el comando lscpu está relacionada con la máquina real que ejecuta tu contenedor. Por lo tanto, podrás obtener la marca, modelo y frecuencia de la CPU de esa máquina real y esos serán utilizados por tu aplicación. Sin embargo, no puedes saber con certeza cuántos núcleos de CPU utilizará tu aplicación en realidad. Todo lo que puedes hacer al respecto es que tu aplicación estará restringida a dos núcleos de CPU completos basados en la cantidad máxima de memoria por instancia de aplicación. En cuanto al valor de hermanos, está más relacionado con el hiperprocesamiento de la CPU. En ese sentido, la máquina tiene habilitado el hiperprocesamiento, ya que es el doble de la cantidad de núcleos.

Si deseas aumentar la cantidad de CPUs utilizadas, entonces debes agregar instancias adicionales de tu aplicación con el comando de escala:

cf scale <app> -i 2 

Ese comando establecerá el número de instancias de tu aplicación en 2.

Dado que cada CPU tiene 16 núcleos, cada una puede manejar la carga de 4 GB. Dado que nuestra aplicación es de dos instancias y cada una tiene 8 GB, tendrías garantizados 4 CPUs con un total de 32 núcleos.

Sin embargo, debes ser consciente de que la máquina anfitriona tendrá que manejar toda la carga de varias aplicaciones diferentes. Y si no estás utilizando la potencia de procesamiento, otras aplicaciones la utilizarán. Por lo tanto, es por eso que usamos la palabra 'garantizado' al hablar sobre CPUs y sus núcleos.

¿Tiene más sentido ahora?

Saludos cordiales,
Ivan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola ivan.mirisola ,

gracias por ponerte en contacto conmigo. Seguí tus pasos y obtuve mucha información de cpuinfo.

Salida:

procesador       : 0
identificador_de_fabricante       : GenuineIntel
familia_de_cpu      : 6
modelo           : 85
nombre_del_modelo      : Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz
stepping        : 4
microcódigo       : 0x2006906
cpu MHz         : 3186.919
tamaño_de_cache      : 33792 KB
id_físico     : 0
hermanos        : 32
id_del_núcleo         : 0
núcleos_de_cpu       : 16
apicid          : 0
apicid_inicial  : 0
fpu             : 
excepción_fpu   : 
nivel_cpuid     : 13
wp              : 
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves ida arat pku ospke
errores            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit
bogomips        : 4999.99
tamaño_clflush    : 64
alineación_de_cache : 64
tamaños_de_dirección   : 46 bits físicos, 48 bits virtuales
gestión_de_energía:

... 15 descripciones adicionales de procesadores similares a la anterior

Entonces, para resumir:

Me dice que hay 16 procesadores en total, cada uno con 16 núcleos (núcleos de CPU), que se dividen en 32 hermanos, ¿verdad?

Ahora mi pregunta con 1 GB de tiempo de ejecución de la aplicación:

¿Qué obtengo ahora?

- ¿1 Procesador?

- ¿o 1 de esos 16 Núcleos de CPU?

- ¿o 1 de esos 32 hermanos?

Disculpa por ser tan detallado.

Necesito aclarar esto, porque tenemos que calcular la viabilidad de un esc

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola mario.guenter ,

Puedes habilitar ssh para tu aplicación y abrir una terminal en ella para emitir comandos como lscpu o cat /proc/cpuinfo. https://blogs.sap.com/2018/04/27/how-to-use-an-ssh-tunnel-with-scp-cloud-foundry-backing-service/
Aquí tienes la información de mi aplicación:
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
cpu MHz         : 3099.978
¡Espero que esto ayude! Saludos,
Ivan
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?