MongoDB Performance : Windows 2016 Server DC vs Same machine running Hyper-V Ubuntu - mongodb

I have read a few articles that say that running MongoDB on Windows is a lot slower than Linux. They mention filesystems like XFS is better than NTFS etc, and that it's more designed for Linux.
Reference Why Mongodb performance better on Linux than on Windows?
So my question is, has anyone done any benchmarking of MongoDB performance on Windows (e.g installed directly on the server) vs the same machine (running Windows) but it running a VM (Ubuntu 18.04, XFS) via HyperV?

the same machine (running Windows) but it running a VM (Ubuntu 18.04, XFS) via HyperV
The reason why Linux performs better than Windows for MongoDB is because Linux is more efficient with hardware resources (disk, memory and networking were called out in the post you referenced). Putting Linux in a Windows VM does not eliminate the overhead of Windows that makes it slower for MongoDB. Instead you would have two overheads (Linux AND Windows).
You should also troubleshoot your actual performance problems (per your other post) rather than trying random things like OS changes in the hope that they will make your performance issues go away. The particular issue might go away but chances are you'll run into another one down the road, then what?

Related

What is meant by a "lightweight vm" as discussed in the technology stack for WSL2?

My understanding is that Docker on Windows currently uses a "regular VM" under the hood. WSL2 (and Docker) will switch to using a lightweight VM. But what does this actually mean; is it just using a smaller initial memory foot print with some memory passthrough technnique, or is there more to it?
TL;DR
The big change is in the move from a virtualized Linux system call interpreter for the Windows kernel in WSL to a full-on Linux kernel provided in WSL2. This move dramatically cuts down on virtualization overhead.
Juicy Details
Directly from the DevBlogs Post on the announcement of WSL2:
Microsoft will be shipping a Linux kernel with Windows ... This kernel has been specially tuned for WSL 2. It has been optimized for size and performance to give an amazing Linux experience on Windows.
This is a departure from the ways of the current (as of writing) WSL which doesn't make use of a proper Linux kernel, demonstrated in the original WSL overview from 2016.
WSL executes unmodified Linux ELF64 binaries by virtualizing a Linux kernel interface on top of the Windows NT kernel.
The WSL LXCore service runs an interpreter of sorts for native Linux system calls as well as running its own VolFs and DriveFs operations to provide file access between WSL and Windows 10, which essentially performs the role of a traditional VM's translation layer the likes of VirtualBox.
Citation: MSDN Blog
Little is known as of yet about the exact system employed for WSL2, what we do know is from the Build2019 WSL2 talk. To help answer the question regarding file system changes and the light VM:
Here, we see that the Linux kernel runs alongside the NT Kernel instead of as a virtualized environment on top of it. (as a Windows service). The lightweight VM likely comes into play for facilitating the necessary interactions between the two kernels.
This gives a peek into the inner workings of that interoperability layer. Discussed verbally in the Build2019 talk, the two kernels serve each other files via natively hosted file servers (inaccessible to the Windows userspace via means other than WSL2).
Again, much is still up in the air from our perspective as users due to the limited details currently available to us at the time of writing.

Newbie Hypervisor Questions

If I install a bare-metal hypervisor (say, ESXi), would it allow me to run Windows 7 concurrently with Linux?
Would it allow me to run multiple instances of Windows 7?
When I'm sitting at the PC that's running Win7 and Linux on a hypervisor, which OS do I see when I look at the screen? (I'm suspecting that the only way to access either OS is to do a remote login.)
Assuming the answer to #2 is yes, how do you manage multiple installs of Win7 on the same hard drive?
Thanks in advance!
If you simply want to run Linux and Windows in parallel you may of course do this on e.g. ESXi. Still, the OSes would run with virtualized (or emulated) hardware available to them, i.e. you would not be able to easily access all the hardware directly and the hypervisor itself not only introduces an overhead but this overhead is not deterministic.
If you want to run an RTOS (like Real-Time Linux) or any other RTOS, then you need a "real-time hypervisor".
You can google for such hypervisors - there are a few out there.
(I dont want to recommend one here as we are a vendor of such a solution our selves)
Regards
GFL

Best Self-Hosting Solution for TFS 2010?

I want to install TFS 2010 on my own machine - a Dell Laptop with 8GB RAM, running Windows 7. Now, since installing on Win7 means I can't run SharePoint or Reports, and I don't want to reformat my machine to Win 2008, I need to virtualize.
I would like something that I can have always on, and treat like a server on my LAN, or at the very least, something that I can activate quickly, when needed. Oh, and I'd like it to be free :).
As far as I can tell, my options are MS Virtual PC, Virtual Box, VMWare.
What would be my best option? Are there any other options?
Thanks,
Assaf
You can either use MS Virtual PC or VMWare. I have been using TFS2010 installed on MS Virtual PC and its working fine.
If you want to use 8 GB RAM, you'll want to use either VMWare or repave your machine (but save the TFS databases) as Windows Server 2008 R2 and use Hyper-V.
You can then install TFS 2010 again but point it at your set of restored databases. You'll be able to enable the SharePoint and Reporting for your newly restored TFS instance.
I've ran it on a VM from my Dev box and the performance wasn't the best. Memory and disk IO are very important when running SQL and the competition with multiple instances of Visual Studio, plus the overhead of VMWare made it unbearable. With enough memory and RAID or a SSD, you may be okay.
I know it's not free, but there are a few hosted solutions that are decently priced (TFS Server Hosting). They also allow you to access it from anywhere and your code will be backed up.

How do i create a VM Ware Image of an AIX LPAR?

I want to clone a AIX LPAR and was wondering if the physical machine could be converted into a VM Image?
I have used the VMWare Converter to create a VM Image of a physical windows box and the documentation states that you can do that for Linux Boxes too.
http://www.vmware.com/products/converter/
I don't see information on AIX or the other UNIXes.
If creating an VM Image of an existing physical AIX box is not feasible is there any easy way to clone the AIX image to another AIX machine.
The primary intent is to avoid re-creating the setup that is already performed for the current AIX box and we want a duplicate environment with the same setup.
VMware supports x86 (and x86_64) architectures for host and guest only. IBM AIX runs on the Power architecture, and VMWare does not do architecture emulation, so what you want does not exist.
If you want to back up/clone your AIX instance to another machine, look for information regarding mksysb and AIX Sysback.
You might want to take a look at the following, but there are no guarantees, and I'm fairly certain running AIX on anything but a Power architecture is still not a reality at this time:
Qemu
PearPC
Based on further reading, i understand that VMWare does not support AIX. The guest OS can primarily be Windows, various distros of LINUX and Mac-OSX. I also see Solaris as a supported guest OS, but i don't see AIX. So i don't think this is possible.
I would have to look at the Virtualization features supported from IBM for this activity.
Thanks,
Manglu

ubuntu on virtual machine vs ubuntu install, what the difference?

I have windows xp in my work and i programming on zend framework.
I need to install ubuntu for execute doctrine orm commands from linux console, I faile to do it on windows.
I thinking about 2 option of UBUNTU installation:
1.install ubuntu 10.04 on Virtual Box (Sun Virtual Machine).
2.create new primary partition and install ubuntu 10.04 directly.
Which options do you suggest to do?
Thanks
If it's something you won't be using much, just stick it in a Virtual Machine.
It's slower because it's running inside another system, so you'll have the windows stuff running as well as the ubuntu stuff, but if you're not going to be using it all the time, then not installing it as a stand alone means you don't mess with your MBR, and it's easier to get rid of when you don't need it anymore.
It's more easy, quickly, and safe if you use a VM, so you don't have to mess with the disk partition and so on.