If you really want to the best multicore performance from a CPU, the only way to get it is by opting for a Workstation laptop or a gaming laptop.
The 4th Ryzen 9 processors holds only 8 cores/16 threads but does have better processing power which means you can use the extra CPU power to either choose to run more background processes in each VM or run more VMs
The only downside is the GPU here, you probably won’t need unless you want to game or put heavy GPU load on a VM/software application.
This is the cheapest laptop you’ll find for pretty much anything.
That doesn’t mean you can’t run a VM in it. You can but probably no more than 2 before it starts to feel slugish.
You don’t really need to spend a thousand dollars to run a VM or Two.
This is good if you want to test light software on different VMs or try out different Distros. Nothing else really.
What about MacBooks?
All MacBook Pros are capable of virtualization, you just have to download the Mac Version of whatever software you are using. The best Macbook for virtualization (more specifically the configuration : RAM + CPU) will depend on how many VMs you plan on running:
This subject is way too broad to simply list the specs and be done with it. And as a mentioned in the intro, there are dozens of users with different types of needs from virtual machines and therefore will require quite different specs for their purposes. The problem also lies there being tons of misconception about Virtual Machines.
So before you end up with brain damage reading this section. Let me clarify a few definitions for those newbies into virtualization (it may be CS students focusing on virtualization courses).
If you are not new to Virtualization, you can entirely skip to recommended specs section right after.
1. VM Terminology
HyperVisor: This is basically the virtualization program you are going to use. It basically makes the OS you launch think it has its own hardware: processor memory and other resources etc. Of course this is all a big lie and the hypervisor is behind this entire shanda.
VMWare ESXi: This is anenterprise-class type-1 hypervisor developed by VMWare. It’s not a software application as Oracle Virtual VM Box that’s installed on a operating system. You could say it’s an OS itself with its own kernel from which you can launch several VMs.
KVM: (Kernel Virtual Machine). This is for Linux OSs, it’s a kernel that makes your Linux distro turn into a hypervisor (hold VMs inside the distro).
Domain Controller: this is a computer/server that manages who gets in/out or which requestes get access to the networks. Basically in charge of network security.
VMware Workstation: this is a hypervisor that’s istalled on an OS. You can host Windows and Linux OSs on it.
VMware Fusion: this is a desktop virtualization tool for Mac.
Firmware: this is the software automatically installed within any machine to provide low level control for all the hardware in it. This also called the “BIOS” for PC machines and you see at the start of the booting process. For example, let’s say you want to switch the “booting device” from the Hard Disk Drive (where your OS is instaleld) to a CD-ROM Drive (perhaps to install the OS again).
VPN: This is a virtual private network, it has nothing to do with Virtual Machines. It just allows you to connect to a specific network from your device (perhaps your school’s network). You can access that network’s resources remotelly and even launch software.
Why mentioned VPN:
PenTesting: because this term is found nearly on every virtualization post you’ll find.. Virtual Machines are used to simulate VPN or other types of real world noteworks and pen testers basically test for any faults/security holes in these networks(as well as strenghts).
VT: this is the virtualization technology provided by Intel Processors. They’re basically special instructions installed on processors to optimize the use of Virtual Machines. You can use “InterlArk” to find which processors are “VT” capable processors but today most modern processors, be it for desktop or laptop devices, already have this feature. You should check on this only if you’ve got your hands on an old laptop or planning to buy one.
Hyper-V: This is a native hypervisor installed in most machines and is actually activated most of the time. When it is activate it and VT-x is also enable, Hyper-V will make use of VT-x and VMWare or VirtualBox or any other VM software will no longer see “VT-x” as enabled and will consequently be unable to run. So you need to deactiavte Hyper-V to make use of VT-x.
2.Virtual Machines FAQ
With definitions out of the way, let’s clear a few misconceptions/contradictions you’ll find about Virtua Machines:
- Virtual Machines & Cores Utilization: this one is the most widespread misconception. Some say “each VM gets at least core and this core will no longer be usable for the host or other VMs”.
Is This True?
Well without getting into many details: No. Hypervisors, generally, do not reserve cores. All cores are balanced across all the virtual machines you have. But obviously having more cores will come more and more in handy if you run several Virtual Machine with heavy executions on each.
2. Do multiple cores slow down Virtual Box a lot?
This is a tough cookie. Some say it varies between versions of VM and some new releases will handle it better but generally yes If you assign more CPUs to a guest, there will be more overhead in the CPU. More Overheads means more waiting times. Unless your specific software makes efficient use of multi-cores, then it’s not worth adding more CPUs to the guest VMs it won’t make it go anything faster.
3. Some recommend the best hardware your money can get.
We’ll discuss this in the next section but let me just say for now that CPU is rarely the bottleneck. Today we have literally CPUs that are too powerful for what most people do and RAM & Storage will be the main bottleneck most of the time.
4. Some recommend older hardware, so that Linux will have all the needed drivers.
There’s no need to get older hardware. It is true that Linux will have the drivers for older hardware but Linux is an open-source OS, it’s constantly being updated daily and new drivers are being developed as we speak. Of course, if you don’t like waiting and would rather get the best Linux compatibility out of the box, don’t opt for very recently released hardware.
5. Some recommend Intel, others AMD.
It really doesn’t matter. As long as the processor supports virtualization you should be fine. Intel processors that are 10 years old do not have this feature and so do many old AMD processors out there.
Depending on the type of user you are , the type of virtual machines you will run (and obviously the number) will vary and so will the hardware:
- Students: Well there are two types of students. Those still in undergrad taking classes that use software that runs only on very specific software and Cybersecurity/IT/Networking students. The former does not even need to read this post as any machine out there will do, check my post on CS students. The latter however will usually run several Windows 10 VMs for classes.
- Software tester: These guys test software they write on a different OS. Likewise these guys don’t need any specific set up to run VMs. As long as the laptop has been released within the past several years and has an intel core i5 with 8gb RAM in it, it’ll be able to virtualize any OS out there. Even horrible Windows 8 and Linux Mint will simultaneously run at decent speeds.
3. IT professionals: I have a separate post for these folks. Usually they just need to build a lab on their workstation or laptop for that matter, that is, integrating Cisco Firewalls,routers, switches with ESXi hosts and VMs. Long story short, these processes are not really CPU intensive but they’ll consume a lot of memory.
4. Pen-Testing: These guys are the ones who’ll need the beefiest most powerful laptops for Virtualization and yes “get all the hardware you can get for your money applies here” even dedicated graphics card may come in handy sometimes (more on to this later).
In this scenario, CPU will usually be bottlenecked as older CPUs will not be able to handle a variety of virtual machines with different types of OS. Ex: Running a Win VM and Kali VM simultaneous, say, using Windows to repliate internal services and then Kali to run Responder to poison requests. An earlier generation (even an i7) CPU will find the instructions to complex and cut off executions altogether.
There’s also of course the need to have as much resources available as possible to be able to test environments/domains and run full vulnerability scans by setting up huge networks composed of several virtual machines. .They also need to take into account “compatible network adapters” with the Operating systems they want to test to be able to monitor any “sniffing ” in network traffic and wifi testing. Main brands that offer pretty compatible hardware with (Kali) for example are Dell, Lenovo and HP which all have mobile enginering laptops with the usual specs for pen-testing. Usually mobile Xeon processors, 32GB RAM and dGPU with an SSD are standard for these purposes (the extra power might come in handy if you want to record the entire procedure for evidence purposes).
For anything not that complex any laptop can be used for PenTesting. It, really depends on your use case. As long as your CPU has a few cores, support for VT-x/VT-d, plenty of RAM and a fast large SSD it’ll run lots of VMs for malware analysis and security assessments.
4.Hardware For Virtualization
I remember a friend who got an ASUS ROG with the latest Core i7 and 16GB RAM jammed into it last year. He would run 4 VMs and as we monitored the sources (using CTRL+ALT+SUPR), there was still A LOT OF JUICE left from the processor but the RAM was on its last legs , entirely being used.
16GB vs 32GB
Most laptops are limited to 32GB RAM but they come with 16GB RAM. Only the T and P series from Lenovo support 32GB RAM. Most mid range laptops though will take up to 16GB RAM but nearly all workstation laptops/gaming notebooks will take 32GB RAM.
If you end up with a laptop with 16GB RAM make sure it’s upgradeable to 32GB RAM so you can have the option for more breathing room in the future if you ever need it.
Why should you try to opt for 32GB RAM? Well besides being the maximum amount for most laptops. 32GB RAM will allow you to virtualized nested VMs with a storage appliance and Windows Instance running vCenter. Though you can pull this off with 16GB RAM, the experience is far better with 32B GB RAM.
16GB RAM is not too bad either though. Here’s an example of what you can do with 16GB:
ESXi Host 1 – 4GB of RAM – 20GB of Hard drive
ESXi Host 2 – 4GB of RAM – 20GB of Hard drive
Windows Server 2012 R2 installation – 15 GB of hard drive
+ linked clone – Domain controller & iSCSI target – 1GB of RAM – 35 GB of hard drive
+ linked clone – vCenter Server 5.5 – 4GB of RAM – 35 GB of hard drive
Total 16GB RAM, 240GB HDD.
RAM is always the main limiting factor for Virtualization. A good hypervisor can divide an average cpu time pretty well, but RAM has to be committed to specific VMs.
16GB is doable for Workstation on Windows w/ nested server but 32GB gives you more breathing room
After you max out RAM. CPU is the next bottleneck(though as you’ll see soon rarely).
Which Processor is best for Virtualization?
Dual Core vs Quad Core vs Hexa Core
You should always look out for more cores (ie: a slower-clocked quad core as opposed to a faster clocked dual core) so that ideally (though not necessary) that each logical machine (including the host) can have at least one dedicated core.
Intel vs AMD for virtualization: Intel VT, Hyper V, AMD V
As long as the number of cores and clock speed are nearly the same. It really doesn’t matter.
More important than that, you should check if your particular CPU has specific technology for better VM support.: “Intel Hyper V” or “AMD-V”. Also note that the prefixes x86 and x64 stand for 32bit and 64 bit plataforms.
.With the exception of certain netbook-class processors, any processor/motherboard on the market today will support these technologies. So yes, almost all newer server, desktop and mobile Intel processors support VT-x, with some of the Intel Atom processors as the primary exception.
However, these options sometimes are disabled by default in the BIOS/UEFI settings users must enable Intel’s VT-x feature in the BIOS setup before applications can make use of it.
In the past, this feature was limited to Intel processors. In case you didn’t know HyperThreading splits a physical core into two or more virtual cores. So yeah, they are helpful for VMs. Note however that having a quad core won’t limit you to have 4 or 8 cores(with hyperthreading), VM software is able to handle more VMs if you want as mentioned before, it can split the CPU’s resources across the number of VMs machines you want.
However with the advent of 8th generation CPUs & AMD Ryzen line series, both of them have about the same type of “multi-threading”. Although the name is different, they’re essentially the same.
Core i3/AMD A-9
A few years ago I’d advice people to buy core i7s for their hyperthreading to have 8 execution units but now it is irrelevant which brand you get but you should be careful on choosing the model. Core i3 and AMD-9 and many other AMD Models do not support hyperthreading.
Finally, after maxing out on CPU & RAM: storage!
Running multiple VMs for simulating environments can sometimes create a lot of IO pressure, so a good SSD (Preferably PCIe NVMe SSDs) or RAID setup would go a long way.
For example running a 3 node cluster (Requires at least 5 VMs) with only one hard drive will get you into IO issues.
Putting your host OS on an SSD and adding another, fast (7200 RPM) Sata 3 drive and then spreading the VMs across your drives.
Upgrading Storage & Work Arounds
Which of course requires you to upgrade your laptop (if your rig doesn’t have 3 or 2 drives).
Note that if your rig does not have enough space for an SSD or another hard drive on top of the current one, you can always use CD/DVD room to install a second or even a third hard drive.
Limited on-board storage can also be worked around with USB3 drives. (I ran VMs from an external USB drive and it was good enough – just.)
HDDs vs SSD (Hard Disk Drive vs Solid State Drive)
Also fast storage is expensive. Regardeless if you are going to do any upgrades, you should always prioritize SSDs. HDDs are definitely a bottleneck for VMs and should be avoided unless on a extreme budget or simply being faced with one VM.
A typical 7200 rpm HDD will read/write data ~ 150 MB/sec versus 500 MB/sec of an SSD, which ~3x faster.
Best Storage Systems
In fact you’ll see the best performance out of Virtual PCs if you run them off of a separate hard drive so a machine that supports multiple hard drives is the next best thing after having 32GB RAM.
Most laptops are limited to one or two drives but there are a few models out there supporting more than two drives. For example, Sages NP9262 supports three drives.
If you go the laptop/SSD route, I also recommend you purchase fast, external storage that either has USB 3.0, eSata, or Thunderbolt ports. I also have a 2 TB NAS device on my gigabit network, which is a great place to store ISOs, and commonly used utilities. These are cheap and easy to own/manage.
If you’re just starting out and have a decent laptop, I recommend that you start by upgrading it. You can always add dedicated hardware later.
When possible, I buy waterproof and shockproof electronics. I am a huge fan of the durable Adata HD720 product line ($0.065/GB) for secure project archival and system backups. It is the only external Hard Drive brand I’ve owned of which the drives outlasted other brands, generation upon generation.
GPU isn’t really a requirement as you will not be utilizing heavy GPU sessions unless your VM is doing something like Media Development or anything with highly detailed 3D images and viewport.
Note that having a GPU is unvoidable in most cases since gaming rigs are the ones who have the fastest CPU and large RAM capacities. You aren’t likely to find the same specs without the added & expensive GPU from gaming/consumer laptops.
Due to the fact that there will be powerful components inside your laptop, design also becomes important. By design I mean a well assembled laptop that can deal with high temperatures & heavy load which will unvoidabily happen when you start adding more and more Virtual machines.
Usually, thick & heavy laptops, will deal with heat better since there is plenty of space for ventilation/bigger & more powerful fans too.
Among gaming/consumer laptops, the ones with essentially an open grill at the base will deal with high temperatures much better.
Laptop vs Desktop
With the huge amount of hardware needed for running several VMs and nested networks, why not go for a desktop?
If you are expecting to be an IT professional, then you are going to need a decent lab. What’s decent will vary over time as you make progress inyour career and activities. Going for the desktop route will allow you to scale your hardware as needed.
Few more advantages of having a desktop:
Your daily rig isn’t affected.
Though the performance gap has been rapidly closing in, powerful desktop hardware is still cheaper and faster than most laptops.
Desktops are often louder than laptops.
You will lose access to your lab if you go on a 2 week trip (unless you set up a VPN).
More hardware requires more management/maintance.
It’s a bit more expensive to upgrade.
If you’re just starting out and have a decent laptop, I recommend that you start by upgrading it. You can always add dedicated hardware later.
Using your regular laptop has advantages:
It’s cheap to upgrade.
It will several times faster when you upgrade it.
It’s highly portable so you can easily take your lab on the road with you.
But it also has disadvantages:
You may find yourself always running out of disk space.
If you run enough VMs, using it for anything else (at the same time) can get annoying.
Your employer may not allow you to upgrade whatever laptop was given to you.
I almost didn’t mention this because most people these days have a wireless router, and technically if you run all VMs locally, you don’t need one.
The right router can be key if you travel and go the dedicated desktop route. The VPN setup is invaluable whenever you are on the road, you can hityour desktop/lab.
I personally find the Asus RT-N66U the best because it has excellent wireless range, a fast internal processor, Gigabit ports, and the ability to set up a VPN without flashing the firmware to a home built version like Tomato.
- Your virtual environment (workstation) is going to be allocated as many resources as you decide. If you choose a vMachine to have 8GB of RAM and 2 cores. That is what you’re taking away from your primary environment. So choose whatever you’d like to have your virtual environments to take away from your specs.
- It would be best to analyze what your real constraing resource is (RAM or CPU); then find a platform that will support that or upgrade whatever you have accordingly.
- Armed with this info, pick your favourite brand, check online for specs, get as much computing goodness as you can for as few dollars as possible, visit amazon or your favourite consumer electronics store and have a play.