By Fatskills Exam Guides Team — the exam nerds behind 28,500+ quizzes and 2.1M practice questions across 500+ global exams.
Objective: Given a scenario, configure the appropriate compute sizing for a deployment. Your organization is now ready to deploy virtual machines or instances in the cloud. However, before launching any instances, some questions will need to be answered: How much will it cost? How powerful will it be? What hardware resources will be available to the virtual machine? You need to know how to determine the right compute size to fix the needs of what you will be using the virtual machine for. If money were no object, you could just deploy the virtual machine on the biggest instance type, getting the maximum CPU performance, highest amount of memory, and massive amounts of storage space. But, of course, money is an important factor. This guide focuses on the considerations you need to make when determining the correct compute size for a virtual machine deployment. Topics: - Virtualization - Central Processing Unit (CPU)/Virtual CPU (vCPU) - Graphics Processing Unit (GPU) - Clock Speed/Instructions per Cycle (IPC) - Hyperconverged - Memory 1. A(n) _____ is essentially a hardware emulator. 2. Which type of hypervisor utilizes a host operating system to communicate with hardware? 3. A(n) _____ is a processor designed to handle graphics rendering data. 4. _____ of memory means that RAM is provided to a virtual machine only asrequested. Answers: 1. Hypervisor 2. Type 2 3. Graphics processing unit (GPU) 4. Dynamic allocation Virtualization One of the primary reasons to migrate on-premises solutions to the cloud is to replace operating systems that run on individual physical systems. Virtualization is the technology that enables multiple operating systems to share a single physical system. Although this technology is utilized in an on-premises environment, it is heavily used in cloud environments. Virtualization enables you to place multiple operating systems on a single hardware platform or server. These operating systems share hardware components, such as the CPU, RAM (memory), storage, and the network interface. Hypervisors Normally, an operating system requires direct access to system hardware, and the operating system won’t share this access with another operating system. Virtualization enables operating systems to share hardware. To allow this sort of abstracted access, a software program called a hypervisor is used. A hypervisor presents to each operating system virtual devices that behave like real hardware devices. A hypervisor can emulate just about any hardware device, like CPUs, USB devices, and network interfaces. When the virtualized operating system communicates with a virtual hardware device, the hypervisor manages the process of communicating with the physical hardware. There are two types of hypervisors: type 1 and type 2. Type 1 A type 1 hypervisor, also called a bare metal hypervisor, runs directly on the physical hardware. It essentially takes on the role of the primary operating system. Type 1 hypervisors are faster than type 2 hypervisors because they have direct access to the system hardware. Type 1 Hypervisor
In most cases, the hypervisor in cloud computing is a type 1 hypervisor. There are some exceptions. For example, some cloud providers allow you to reserve an entire server. If you did that, you could opt to use a type 2 hypervisor to manage your own virtual machines. Type 2 A type 2 hypervisor doesn’t interact directly with the physical hardware but instead interacts with a host operating system. In this scenario, the virtualized OSs are referred to as guest operating systems. While type 2 hypervisors are good for testing different operating systems on a system that already has a host operating system, they generally are not a good choice for production environments. Not only are the virtualized OSs hampered by the extra layer that the hypervisor must go through to access the hardware, but there are also security concerns. The host OS may be able to impact the guest OSs, including potentially installing malware on the guest virtual machines (this is known as hyperjacking). Type 2 Hypervisor Simultaneous Multithreading (SMT) Multithreading is a somewhat complicated and large topic. It essentially refers to the capability of a CPU core to execute multiple threads simultaneously. SMT is one of two types of multithreading (the other is called temporal multithreading and is not an exam objective). If a cloud vendor provides the option to implement multithreading on a virtual machine, it is likely SMT, not temporal. Cloud vendors will also often allow you to either use SMT or temporal multithreading to disable this feature. For example, the below graphic shows the CPU options when creating an AWS virtual machine. CPU options
The choice of whether to use SMT is not a simple one. Some applications don’t take advantage of SMT, and as a result, performance may suffer. Additionally, high performance computing (HPC) isn’t designed to utilize SMT, so it would be best to disable this feature. Benchmark tests for comparing performance with and without SMT may be required in order to make the best choice. Dynamic Allocations For CPUs, the concept of dynamic allocations is that the hypervisor will associate physical CPUs with virtual CPUs (vCPUs) as the physical CPUs become available (are added to the system). This is an important feature in a cloud computing environment, where on any given hardware, virtual machines are often routinely started and stopped. One potential drawback is that many cloud vendors will employ oversubscription methods, which often means that there are potentially more vCPUs than can be associated with the number of physical CPUs. Note that this is often also called overcommitment. See “Oversubscription” in “High Availability and Scaling in Cloud Environments,” for further details. Oversubscription See the “Oversubscription” section in High Availability and Scaling in Cloud Environments. Central Processing Unit (CPU)/Virtual CPU (vCPU) The CPU is a chip located on the main circuit board. It is placed into a special location called a socket. Its responsibility, as the name implies, is to process instructions provided by the operating system or applications running on the OS. The CPU is the brains of the computer or server. The CPU will determine how fast computing operations will be performed. Unless you have access to a dedicated server in a cloud environment, you typically won’t have any direct control over the CPU. Instead, the hypervisor will interact with the CPU and present a vCPU to your virtual machine. When you create a virtual machine, one of the factors that will affect the cost of running the virtual machine will be how many vCPUs the hypervisor provides to the virtual machine. This number is a calculation of the CPU core count multiplied by the number of threads per core. For example, if the number of core CPUs is 8 and the thread count is 3, then the operating system costs would be for 24 vCPUs. While “more is better” is true in the sense that more vCPUs will result in a faster virtual machine, you should also consider that more will end up in higher costs. Recall the objective associated with this guide: “Given a scenario, configure the appropriate compute sizing for a deployment.” This means you need to ensure that you pick a vCPU count that will allow your applications to run at an acceptable speed while also not paying for too many vCPUs. Configuring the appropriate compute size also might be a moving target because the applications that are running on the virtual machine may require more resources in the future. Performing benchmark tests on a regular basis and comparing these tests to a baseline can help you determine if you need to upgrade your system to more vCPUs. Graphics Processing Unit (GPU) Some applications require large amounts of processing power to be able to display graphics. For example, you may have an application that takes an architect’s blueprint and displays full renderings of the building. Video processing also can take a large amount of compute power. A GPU is a processor designed to handle graphics rendering data. In some cases, this processor may not be needed for a cloud-based virtual machine because you may not have any applications that display such data. However, in some cases this may be an important feature. As a result, some cloud providers now offer specific instance classes that have massive GPU processing power. Examples include the AWS p2, p3, and p4 instance classes and Azure’s NC-Series instance classes. Choose these instance classes with care because they will be expensive. You should consider what the use case is to use one of these high-end instance classes before launching a virtual machine on one of them. Virtual In a cloud computing environment, the hypervisor typically provides a virtual GPU to virtual machines. Note that “shared” is a subobjective of the CompTIA exam. When multiple virtual machines share the same physical system, the virtual GPU is sharing the physical GPU. Pass-through In some cases, the hypervisor can be configured to provide pass-through access to the GPU. This means that the virtual machine is provided direct access to the GPU. In this situation, the virtual machine that is provided pass-through access is the only virtual machine on that system that can use the GPU. This option, while providing more power and features to the virtual CPU, is also the most expensive option. Clock Speed/Instructions per Cycle (IPC) When choosing the hardware that a virtual machine will run on, you want to make sure you choose a CPU with a clock speed that will be able to handle the performance needs of the operating system and applications. The clock speed is normally provided in the documentation. For example, in looking at AWS Elastic Cloud Computer (EC2) documentation, you will see information like that highlighted in gray below. CPU Clock Speed Value
The clock speed indicates how many cycles a CPU can handle in a second. A clock speed of 2.5 GHz means that the CPU can execute 2.5 billion cycles per second. This speed is a major component of how fast the CPU can perform calculations, but it isn’t the only factor to consider. Instructions per cycle (IPC) is, as its name implies, the number of instructions that the CPU can handle each cycle. The more IPCs, the faster the CPU can perform instructions. However, IPC is not often advertised by the cloud vendor and often not included in the specifications of the hardware vendor that manufactured the CPU. There are organizations that perform benchmark tests to determine the IPC of chips that can be used to determine the best choice when choosing an instance type. To understand the concept of hyperconverged, let’s focus on a single hardware component: storage. In a converged infrastructure (CI), storage devices that are used by virtual machines are directly attached to the physical server. This is referred to as direct-attached storage (DAS). The primary advantage of this model is that access to storage tends to be very quick when compared to nonconverged infrastructure where storage devices are often connected via the network (such as the storage-area network, or SAN, and network-attached storage, or NAS). The primary disadvantage is that this limits how much storage is available, although more can be added (adding more space is like adding more building blocks to the system). In a hyperconverged infrastructure (HCI), storage is available to the entire node and controlled by software (a storage controller function). This is sometimes referred to as Storage as a Service. Note that the terms converged and hyperconverged don’t just apply to storage. Other hardware components are also part of CI and HCI. The primary advantage of CI and HCI is that they reduce the need for single-purpose, large physical systems. Combined with virtualization, they provide a more efficient use of system components. Memory When you’re installing a virtual machine in the cloud, it is important to determine how much memory (RAM) the system will require. The amount of memory allocated to a virtual machine will have an impact on the cost of running the virtual machine. Dynamic Allocation Like the concept of dynamic allocations for CPUs (see the “Dynamic Allocations” section earlier in this guide), dynamic allocation of memory means that RAM is provided to a virtual machine only as requested. For example, you may launch a virtual machine that is based on an instance that has 8 GB of RAM, but the hypervisor does not immediately reserve 8 GB of RAM for that virtual machine. Because the operating system requires more memory, it is dynamically allocated by the hypervisor, up to the maximum allowed by the instance type. Ballooning Imagine a situation in which a virtual machine is currently using 6 GB of RAM. Applications that require this RAM are currently running, but after a few hours the processing work is complete and the operating system no longer needs 2 GB of that RAM. The reason could either be that the application stopped or the application “returned” the RAM for the operating system to use. However, in this case the operating system no longer needs that 2 GB of RAM at this time. Note that a driver on the virtualized operating system keeps track of what memory is actually in use, and the hypervisor can query this driver. Now, another virtual machine requires more memory, but the hypervisor discovers there is no free RAM left to provide. After querying the other guest operating systems, the hypervisor discovers the 2 GB that is no longer needed in the original virtual machine. The hypervisor reclaims this memory in a process called ballooning and provides it to the second operating system. Ballooning can be an advantage for cloud vendors because it is a technique that allows for oversubscription, but it can cause performance issues when there are a lot of guest virtual machines that use most of the memory allowed for their instance type. Because of potential performance issues, you may consider spending more for a dedicated host. In a cloud environment, a dedicated host is one in which only your virtual machines will reside. This dedicated host provides you with more control and allows you to prevent any oversubscription. Of course, a dedicated host solution does cost more, so the cost must be weighed against the advantages. Quiz: 1. Which type of hypervisor communicates directly with the hardware? A.Type 1 B.Type 2 C.Type 3 D.Type 4 2. Which of the following are types of hyperthreading? (Choose two.) A.SMT B.SHT C.Temporal multithreading D.Massive multithreading 3. Which of the following is a term associated with GPUs? A.IPC B.Clock speed C.PASS-through D.Hyperconverged 4. Which of the following have an impact on the performance of a CPU? (Choose two.) A.Clock speed B.IPC C.Hyperjacking 5. Which of the following would describe an infrastructure where software is used to control access to storage devices? A.CI B.UCI C.DAS D.HCI Answers: 1. Type 1 2. SMT and temporal multithreading 3. Pass-through 4. Clock speed and IPC 5. HCI
Join 4M+ learners. Unlock unlimited quizzes, wrong-answer tracking, flashcards + reminders, study guides, and 1-on-1 challenges.