Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1110
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
▼
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
▼
febrero
(Total:
47
)
-
Instalar y configurar IDS/IPS Suricata en una Rasp...
-
Apple se ve obligada a agregar puntuaje de reparab...
-
Vulnerabilidad crítica en vCenter de VMWare
-
Anuncian un portátil modular para facilitar su re...
-
La Universidad de Oxford sufre un ciberataque en u...
-
Las contraseñas más utilizadas en España
-
Disponible nueva versión de Kali Linux 2021.1 (com...
-
Empresas de Lleida victimas de un ataque del Ranso...
-
Descubren Silver Sparrow: un malware afecta a 30.0...
-
Alertan ataques de suplantación de identidad en cu...
-
Píxel de rastreo en los e-mails se ha convertido e...
-
Granjas de minado: minar criptomonedas hace desapa...
-
Programas para ver y comprobar hardware de tu PC: ...
-
Kia Motors America sufre un ataque de ransomware, ...
-
Estructura archivos PDF con malware - Análisis y p...
-
La Policía cierra una red IPTV ilegal con 20.000 c...
-
Google Presenta Preview de Android 12
-
Nomenclatura procesadores CPU Amd Ryzen e Intel
-
Francia impulsará la ciberdefensa tras los ataques...
-
Interfaz de red eth0 a enp0s3 / eno1 - nombres de ...
-
Grave vulnerabilidad en App ShareIT de Softonic
-
Mozilla analiza la privacidad de las app de citas
-
¿Qué es una vCPU? Núcleos Vs Hilos de un procesador
-
Fallo en Telegram permitía recuperar mensajes auto...
-
Proxmox VE: herramienta virtualización basada en D...
-
¿Vas a comprar un monitor? Diferencias entre panel...
-
Commando VM 2.0: máquina virtual en Windows para p...
-
Así hackearon con TeamViewer una planta de agua pa...
-
Filtran 3.270 millones de direcciones de correos e...
-
KVM – Virtualización usando el núcleo (kernel) de ...
-
Podman: contenedores docker de la mano de RedHat
-
Alertan graves vulnerabilidades en la pila TCP/IP ...
-
Fiabilidad de una unidad SSD - Lecturas - Escritur...
-
Instalar y configurar RaspBerry Pi 4 B : opciones,...
-
Nueva vulnerabilidad activa para Google Chrome (y ...
-
Mejores programas para medir la velocidad de tu SS...
-
Primeros pasos con contenedores Docker y gestión g...
-
Tipos de memorias NAND SSD: SLC, MLC, TLC, QLC
-
Introducción y comandos Android Debug Bridge (adb)
-
Instalar y configurar HoneyPot DShield (basado en ...
-
Las 10 vulnerabilidades más explotadas y las más g...
-
Instalar Kali Linux en una RaspBerry Pi 4
-
Cuidado con los mods que descargas para Cyberpunk ...
-
Mobile Security Framework (MobSF): Herramienta aná...
-
Virtualización: Mejores programas para trabajar co...
-
Vulnerabilidad crítica en la librería libgcrypt de...
-
Instalar Honeypot T-Pot en una máquina virtual
-
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Kali Linux sigue siendo la distribución de referencia para pentesters, hackers éticos y especialistas en seguridad informática en 2025. Co...
-
Microsoft alerta de un troyano que actúa desde Chrome en Windows con el objetivo de recopilar información sobre el equipo infectado y de r...
-
El sitio para adultos OnlyFans carece de controles efectivos para evitar que menores de edad aparezcan en videos explícitos puestos a ...
¿Qué es una vCPU? Núcleos Vs Hilos de un procesador
Los proveedores de servidores en la nube como Amazon Web Services (AWS), Microsoft Azure, Google Cloud, Digital Ocean, etc. utilizan el término vCPU para describir la potencia de sus máquinas virtuales. ¿Pero cuánto rendimiento tiene una vCPU en comparación con una CPU normal?
Núcleos e hilos en un procesador
Hilos
Un hilo es un componente virtual que maneja las tareas de un núcleo de CPU, para completarlas de manera efectiva, también se conoce como unidad de ejecución sobre programación simultánea. Los hilos a nivel de usuario son subprocesos del lado del usuario que se manejan como un proceso de hilo único porque el núcleo no es consciente de este tipo de subprocesos.
Los hilos, threads o subprocesos no forman parte física del procesador, no al menos en lo que se refiere a más cantidad de núcleos o algo por el estilo.
Podemos definir un hilo de procesamiento como el flujo de control de datos de un programa. Es un medio que permite administrar las tareas de un procesador y de sus diferentes núcleos de una forma más eficiente. Gracias a los hilos, las unidades mínimas de asignación, que son las tareas o procesos de un programa, pueden dividirse en trozos para así optimizar los tiempos de espera de cada instrucción en la cola del proceso. Estos trozos se llaman subprocesos o threads.
Núcleos Vs Hilos
Lo primero que debemos tener en cuenta es que, desde hace bastantes años, todas las CPU están compuestas de varios cores o núcleos que son los que ejecutan los cálculos y tareas. Pero incluso con haciendo las tareas más intensivas, los núcleos, no están al 100% todo el tiempo con un solo programa.
Los programas a menudo deben esperar lecturas de memoria de la caché L3, la RAM y las unidades de almacenamiento para cargar o escribir datos. En esos momentos, los núcleos del procesador se encuentran inactivos.
Para obtener mayor rendimiento del procesador y aprovechar estos descansos los procesadores, los sistemas operativos y los programas están diseñados para poder ejecutar otras tareas de manera simultánea. Esta tecnología se llama hyperthreading (hiperhilo) o simultaneous multithreading (multihilo simultáneo).
Dependiendo de la aplicación, el hyperthreading puede conseguir mejoras teóricas (si ambos hilos están esperando lecturas de memoria y no están en conflicto entre sí) del 100% de rendimiento. Aunque en la mayoría de los casos, el hyperthreading da una mejora cercana al 30% de velocidad sobre las ejecuciones sin hyperthreading.
Sin embargo, en algunos casos, cuando dos hilos se fijan al 100% y se ejecutan en el mismo núcleo, pueden causar desaceleraciones mientras “luchan” por los recursos de la CPU. Cosa que pasa ha pasado a veces en algunos videojuegos, por lo que muchas veces se aconseja desactivar el hyperthreading para conseguir más FPS y menos tirones.
Por ejemplo el AMD Ryzen 9 5900X de 12 núcleos y 24 hilos que se ha puesto a la venta por unos 550 euros, más o menos el mismo precio de venta del Intel Core i9-10900K que tiene 10 núcleos. Es la segunda CPU más potente que AMD ofrece en la gama Zen 3, solo por detrás del Ryzen 9 5950X de 16 núcleos y 32 hilos. El resto del cuarteto inicial de nuevas CPU basadas en Zen 3 incluye el Ryzen 7 5800X de ocho núcleos y 16 hilos, y el Ryzen 5 5600X de seis núcleos y 12 hilos
¿Qué es un vCPU? - Rendimiento frente a CPU
- Una vCPU es comparable a un hilo de procesamiento.
Eso significa que, si contratas una instancia o máquina virtual con 4 vCPU, en realidad no estás contratando un servidor con 4 núcleos, sino que se está emulando un servidor de 2 núcleos, ejecutando 4 hilos de procesamiento. Sin embargo, no es una comparación del todo justa porque el rendimiento de una vCPU de 4 hilos puede ser un poco mayor que el rendimiento de un procesador de 2 cores y 4 hilos por la gestión de los hilos.
Por ejemplo, si contratas una instancia c5.large de AWS que cuenta con 2 vCPU, tu programa se ejecutará, junto con muchos otros de otras personas, en un ordenador muy potente que puede tener decenas de núcleos físicos.
La gestión entre los hilos y los núcleos físicos se hacen a través de un hipervisor, que en caso de AWS se llama Nitro. El hipervisor se encarga de la creación y gestión de las máquinas virtuales que se ejecutan en el servidor físico.
Nitro decide a qué hilos asignar tu VM en función de la cantidad de potencia de procesamiento necesaria, de forma muy similar a como lo hace un programador de tareas en un entorno de escritorio normal.
Con 2 VCPU, el peor caso es que tu aplicación se ejecute en un único núcleo porque tus dos hilos estarán en el mismo núcleo y si utilizas la máquina al 100% tus hilos pueden entrar en conflicto y causar pequeñas ralentizaciones. Sin embargo, Nitro intenta evitar esta casuística por lo que probablemente, si contratas 2 vCPU, obtendrás el 100% de rendimiento de cada hilo, sin mermas.
En resumen, para una misma CPU, si la CPU está en tu ordenador, al hacer uso de los dos hilos de un núcleo obtendrás un rendimiento total del 130%. Al contratar esa misma en forma de vCPU deberíamos obtener un rendimiento de un 200%.
Sin embargo, la velocidad de procesamiento del vCPU dependerá del hardware real en el que se está ejecutando. No es lo mismo un núcleo de un Intel E6300 del 2007 que un núcleo de un 9900K.
- La mayoría de las CPU de los servidores son procesadores Xeon de Intel, aunque los Threadripper y Ryzen de AMD están subiendo mucho en la cuota de mercado.
Las instancias más baratas suelen correr en procesadores más antiguos. Por ejemplo, las instancias T3a de AWS utilizan las CPUs AMD EPYC de alto número de núcleos, funcionan un poco más despacio, pero cuestan menos debido a que el hardware es mucho más barato por núcleo.
¿Podemos ver esos hilos o subprocesos en el sistema?
No de una forma demasiado detallada, pero si, podremos verlos, tanto en Windows como Mac.
En el caso de Windows, tan solo tendremos que abrir al administrador de tareas y situarnos sobre “rendimiento”. Luego pulsaremos abajo en el enlace de “monitor de recursos”. En esta nueva ventana tendremos dividido cada proceso en consumo de la CPU y en subprocesos (threads), estos será los hilos.
En el monitor de actividad de Mac, tendremos directamente los subprocesos enumerados en la pantalla principal.
Los programas, procesos e hilos
Todos sabemos qué es un programa, es un código que se almacena en nuestro ordenador y que está destinado a llevar a cabo alguna tarea concreta. Una aplicación es un programa, un driver también lo es e incluso el sistema operativo es un programa capaz de ejecutar otros programas en su interior. Todos ellos están almacenados en forma binaria, ya que el procesador solo entiende de unos y ceros, corriente / no corriente.
Los procesos del programa
Para ejecutar un programa, este se carga en memoria, la memoria RAM. Este programa es cargado mediante procesos, los cuales llevan su código binario asociado y los recursos que necesita para operar, que serán asignados de forma “inteligente” por el sistema operativo.
Los recursos básicos que necesita un proceso son, un contador de programa, y una pila de registros.
- Contador de programa (CP): se llama puntero de instrucciones, y realiza el seguimiento de la secuencia de instrucciones que se vayan procesando.
- Registros: es un almacén ubicado en el procesador en donde se puede guardar una instrucción, una dirección de almacenamiento o cualquier otro dato.
- Pila: es la estructura de datos que almacena la información relativa a las instancias que un programa tiene activas en el ordenador.
Entonces cada programa está dividido en procesos, y está almacenado en un lugar determinado en memoria. Además, cada proceso se ejecuta de forma independiente, y esto es muy importante de entender porque así es como el procesador y el sistema son capaces de ejecutar varias tareas al mismo tiempo, lo que denominamos sistema multitarea. Este sistema de procesamiento es el culpable de que podamos seguir trabajando en nuestro PC, aunque un programa se haya quedado bloqueado.
Los hilos de un proceso
Aquí es donde hacen acto de presencia los hilos de procesamiento, denominados subprocesos en los sistemas operativos. Un hilo es la unidad de ejecución de un proceso. Podemos dividir el proceso en subprocesos, y cada uno de ellos será un hilo de ejecución.
Si un programa no es multi-hilo, los procesos dentro de él solamente tendrán un hilo, así que solamente se podrán procesar de una sola vez. Por el contrario, si tenemos procesos multi-hilo, estos podrán dividirse en varios trozos, y cada uno de esos hilos comparte los recursos asignados al proceso. Por eso dijimos que la ejecución en múltiples hilos es más eficiente.
Además, cada hilo cuenta con su propia pila de registros por lo que podrán procesarse dos o más de ellos al mismo tiempo, al contrario que un solo proceso, que tendrá que ejecutarse todo de una sola vez. Los subprocesos son tareas más sencillas que permiten ejecutar un proceso de forma dividida. Y esta es básicamente la función final de los hilos de procesamiento. Cuantos más hilos, mayor división de procesos, y mayor volumen de cálculos simultáneos y entonces, mayor eficiencia.
Todavía no hemos terminado, aún tenemos la pregunta pendiente de ¿Qué ocurre entonces con un núcleo con doble hilo? Ya dijimos que cada núcleo es capaz de ejecuta una sola instrucción a la vez. La CPU cuenta con un complejo algoritmo que divide de la forma más eficiente posible los tiempos de ejecución, así asigna a cada tarea un determinado intervalo de ejecución. El cambio entre tareas es tan rápido, que dará la sensación de que el nucleo ejecuta tareas de forma paralela.
Fuentes:
https://www.wikiversus.com/informatica/procesadores/que-es-vcpu/
https://www.profesionalreview.com/2019/04/03/que-son-los-hilos-de-un-procesador/

1 comentarios :
No es como se explica en este documento. Los threads no son lo que explica, hyperthreading no es lo que dice, es una tecnología de Intel, etc.
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.