Jump to content

Cheapest Way To Run 100+VM's

DJ_Anuz
1 minute ago, Electronics Wizardy said:

the problem with ssds, esp nand ones are much slower than ram is. The responce time on a normal nvme ssd is about 20000 ns, optane can get than down a bit more, but ram is at about 20ns. Thats why it gets slow slow when you need data from swap. 

 

If OP is on a very tight budget, Id try something lik e64gb, and see how it goes, but Id personally get the extra ram if you have the budget. 

Well, it's not like the OP will constantly be booting Windows, in this case it appears as if we are looking for the absolute cheapest way to run this code, so it can be laggy as long as it gets the job done. Besides we don't even know that the application is RAM intensive, it's sole purpose could be redirecting data that is already on the drives.

In search of the future, new tech, and exploring the universe! All under the cover of anonymity!

Link to comment
Share on other sites

Link to post
Share on other sites

18 minutes ago, Wh0_Am_1 said:

Well, it's not like the OP will constantly be booting Windows, in this case it appears as if we are looking for the absolute cheapest way to run this code, so it can be laggy as long as it gets the job done. Besides we don't even know that the application is RAM intensive, it's sole purpose could be redirecting data that is already on the drives.

the problem isn't the amount of ram used by the program, its just the windows background tasks that need ram.

 

The other problem when using swap is that it increases the iowait and just makes the whole system slow. 

 

the best way to OP to test this is to make a small test setup with like 10vms and see how little ram you can use before it gets very slow. 

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, Wh0_Am_1 said:

Well, it's not like the OP will constantly be booting Windows, in this case it appears as if we are looking for the absolute cheapest way to run this code, so it can be laggy as long as it gets the job done. Besides we don't even know that the application is RAM intensive, it's sole purpose could be redirecting data that is already on the drives.

I get that you're trying to save the OP a few bucks by offering a solution that might be cheaper, but we should be clear to the OP that using an SSD cache as "System RAM" is a bad idea in general, and should be used as the last resort, only if they cannot afford to buy the proper amount of RAM needed.

 

The OP now needs to decide how he will approach the situation and how much budget he can scrounge together.

 

You can easily run 150 Windows 10 VM's on a single dual socket or quad socket server, fully loaded with RAM.

 

It won't be the cheapest thing in the world, but it won't cost that much either, especially if the OP goes with a server that's a few generations behind, and used.

For Sale: Meraki Bundle

 

iPhone Xr 128 GB Product Red - HP Spectre x360 13" (i5 - 8 GB RAM - 256 GB SSD) - HP ZBook 15v G5 15" (i7-8850H - 16 GB RAM - 512 GB SSD - NVIDIA Quadro P600)

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, dalekphalm said:

I get that you're trying to save the OP a few bucks by offering a solution that might be cheaper, but we should be clear to the OP that using an SSD cache as "System RAM" is a bad idea in general, and should be used as the last resort, only if they cannot afford to buy the proper amount of RAM needed.

 

The OP now needs to decide how he will approach the situation and how much budget he can scrounge together.

 

You can easily run 150 Windows 10 VM's on a single dual socket or quad socket server, fully loaded with RAM.

 

It won't be the cheapest thing in the world, but it won't cost that much either, especially if the OP goes with a server that's a few generations behind, and used.

Hey it's better than an HDD, and SSDs only become an issue when you are reading/writing a ton of data at a time, not all that data is necessarily in use when on the RAM.

6 hours ago, Electronics Wizardy said:

the problem isn't the amount of ram used by the program, its just the windows background tasks that need ram.

 

The other problem when using swap is that it increases the iowait and just makes the whole system slow. 

 

the best way to OP to test this is to make a small test setup with like 10vms and see how little ram you can use before it gets very slow. 

Yes SSDs are more laggy, but that only becomes a real issue if the processes overwhelm the bandwidth during operation, the question we need to answer is how much bandwidth is needed for the operations to proceed normally since me know that most of the data is going to be sitting dormant.

In search of the future, new tech, and exploring the universe! All under the cover of anonymity!

Link to comment
Share on other sites

Link to post
Share on other sites

If the app can "run on Windows 2000" then why do you want to use Windows 10? For security?

32-bit VM's can run with far less ram, and a stripped down Windows XP 32-bit will only use a few hundred megabytes ram...a fraction of Windows 10. 

 

If you're trying to put this all on one server, I imagine Windows Update will bring it all crashing down.....

I've seen a Quad Socket opteron with 64 threads trying to run 80 VM's.....when backups try to run, my lord what a shit show...

I cant imagine what the disk contention is going to be like as well if you're using a single datastore / nas.

 

Whats stopping them from being run on a single OS install? I'm assuming since its reaching out it's not bound to a spacific port (plus that would be easy for your devs to change)

If its an unattended application, have you checked to see if you can run it in a Windows Docker container? then you only need a single instance of Windows....or you could maybe split it into 5 VM's of 30 dockers or something..

Spoiler

Desktop: Ryzen9 5950X | ASUS ROG Crosshair VIII Hero (Wifi) | EVGA RTX 3080Ti FTW3 | 32GB (2x16GB) Corsair Dominator Platinum RGB Pro 3600Mhz | EKWB EK-AIO 360D-RGB | EKWB EK-Vardar RGB Fans | 1TB Samsung 980 Pro, 4TB Samsung 980 Pro | Corsair 5000D Airflow | Corsair HX850 Platinum PSU | Asus ROG 42" OLED PG42UQ + LG 32" 32GK850G Monitor | Roccat Vulcan TKL Pro Keyboard | Logitech G Pro X Superlight  | MicroLab Solo 7C Speakers | Audio-Technica ATH-M50xBT2 LE Headphones | TC-Helicon GoXLR | Audio-Technica AT2035 | LTT Desk Mat | XBOX-X Controller | Windows 11 Pro

 

Spoiler

Server: Fractal Design Define R6 | Ryzen 3950x | ASRock X570 Taichi | EVGA GTX1070 FTW | 64GB (4x16GB) Corsair Vengeance LPX 3000Mhz | Corsair RM850v2 PSU | Fractal S36 Triple AIO | 12 x 8TB HGST Ultrastar He10 (WD Whitelabel) | 500GB Aorus Gen4 NVMe | 2 x 2TB Samsung 970 Evo Plus NVMe | LSI 9211-8i HBA

 

Link to comment
Share on other sites

Link to post
Share on other sites

16 hours ago, Jarsky said:

If the app can "run on Windows 2000" then why do you want to use Windows 10? For security?

32-bit VM's can run with far less ram, and a stripped down Windows XP 32-bit will only use a few hundred megabytes ram...a fraction of Windows 10. 

 

If its an unattended application, have you checked to see if you can run it in a Windows Docker container? then you only need a single instance of Windows....or you could maybe split it into 5 VM's of 30 dockers or something..

You want Windows 10 for PCI-DSS/HIPAA/Other Acronym. Windows 7 Only has another 13 months or so before it's out the door for the same reason. so it's down to Windows 7 now, and then spend time upgrading it in a year, or choose between Windows 8/8.1/10. Choice is easy, go with Windows 10 (or a server OS) and then add it to your patching process as per normal.

 

As you said, containers are the best bet to do this cheaply. I'd say the reason it can be run only once per OS, is hard coded paths or some other BS reason.

Link to comment
Share on other sites

Link to post
Share on other sites

20 hours ago, Wh0_Am_1 said:

Hey it's better than an HDD, and SSDs only become an issue when you are reading/writing a ton of data at a time, not all that data is necessarily in use when on the RAM.

Yeah of course SSD's are better than a HDD - but that's kind of an irrelevant comparison. Running virtual RAM on a HDD is an even worse idea than doing it on an SSD.

 

There is simply put, no reason to suggest or encourage someone to compromise system RAM needs by getting insufficient RAM and compensating with SSD's used as a slower tier of RAM. If said person has to use said solution because of budgetary limitations? That's their choice. But you seem to be pushing this rather hard.

20 hours ago, Wh0_Am_1 said:

Yes SSDs are more laggy, but that only becomes a real issue if the processes overwhelm the bandwidth during operation, the question we need to answer is how much bandwidth is needed for the operations to proceed normally since me know that most of the data is going to be sitting dormant.

You're still intentionally adding in an unnecessary bottleneck.

 

@DJ_Anuz you have multiple suggestions on how you might be able to run the system off of a single (or a couple) server running many VM's.

 

Though, I think, ultimately the proper solution is to have the Dev team fix the software so that it runs properly, and doesn't require 100+ VM's to run.

For Sale: Meraki Bundle

 

iPhone Xr 128 GB Product Red - HP Spectre x360 13" (i5 - 8 GB RAM - 256 GB SSD) - HP ZBook 15v G5 15" (i7-8850H - 16 GB RAM - 512 GB SSD - NVIDIA Quadro P600)

 

Link to comment
Share on other sites

Link to post
Share on other sites

17 hours ago, dalekphalm said:

Yeah of course SSD's are better than a HDD - but that's kind of an irrelevant comparison. Running virtual RAM on a HDD is an even worse idea than doing it on an SSD.

 

 

Indeed, as the OP wanted the cheapest possible solution to get it working.

 

17 hours ago, dalekphalm said:

 

 

There is simply put, no reason to suggest or encourage someone to compromise system RAM needs by getting insufficient RAM and compensating with SSD's used as a slower tier of RAM. 

 

The OP stated this 

On 11/7/2018 at 3:58 PM, DJ_Anuz said:

 but our devs for whatever reason don't want to do it so I'm exploring whether or not it's possible to achieve this through virtualization. .

and this

On 11/7/2018 at 3:58 PM, DJ_Anuz said:

 but our devs for whatever reason don't want to do it so I'm exploring whether or not it's possible to achieve this through virtualization. Technically speaking each instance runs the program for 8 different clients, so we're actually running about 1000 instances off of those 150+ VM's.

and as he is exploring, and as that is the case I believe that in this instance there is reason to suggest such an option as all they need is something that gets the job done, and thereby it may be the only option that financially makes sense, and as he is presenting this to his Boss, I argue that we remain open on supplying alternative options. And regardless of all that it could also (possibly) be used as an excuse to  get the devs to do this properly. 

 

17 hours ago, dalekphalm said:

But you seem to be pushing this rather hard.

I am just debating the validity of the option, as once again this is for corporate and not personal use, thereby how economic the server is may very well prove to be the deciding factor in the end.

In search of the future, new tech, and exploring the universe! All under the cover of anonymity!

Link to comment
Share on other sites

Link to post
Share on other sites

There are options you as the Tech person should never even mention for OP. Just because they are horrible ideas, and can be solved other ways.

The fact that this is corporate makes it even worse idea telling the OP that you can use SSD as RAM. While the real truth is that you actually might just need one bloddy instance of the software if the dev team did their job properly in the first place.

Link to comment
Share on other sites

Link to post
Share on other sites

On 11/7/2018 at 10:51 PM, DJ_Anuz said:

Hey all,

 

I need to be able to run about 150 instances of a program, and there can only be 1 program installed per OS. The nice thing is that this program can run just fine on old dental servers that are running windows 2000.

Because of this we need to build a server that can run about 150+ Instances of windows 10 dedicated to the sole purpose of running this 1 program from 11pm to 4 am MST.

 

I'm familiar with hardware building and virtualization, but I've honestly never run into a use case like this so I was wondering if anyone would have advice on the most cost effective way to do this. The application itself is only about 20 mb, large so the biggest system drain is going to be the OS itself for each instance. The only requirement for the OS that needs to be used is that it runs .net 4.6 or higher.

 

Thanks!

 

Wow that's some use case! If .NET 4.6 is a requirement could you not run this program as a Docker container on a Windows environment?

Link to comment
Share on other sites

Link to post
Share on other sites

On 11/7/2018 at 11:14 PM, Wh0_Am_1 said:

 

He/She could setup an SSD as RAM to save costs.

Or you could explore using swap files and something like Intel Optane in order to minimise the load on RAM. However I agree that is does seem like a bit of a crazy solution!! We ended up having to do a similar thing in the business I work for, but that was due to a limitation of an old software suite the business was unwilling to replace and whose manufacturer had gone bust! Having gone down this road I would advise you to talk to the Devs if they are still around.

Link to comment
Share on other sites

Link to post
Share on other sites

I know its an obvious question, but have you considered what sort of CPU core allocation you want/need for each individual VM, and what sort of network interface speed would be required?

Link to comment
Share on other sites

Link to post
Share on other sites

So elephant in the room.. what in the world are you going to do about licensing? Going to be an insanely expensive endeavor. Managing that many VMs is an administrative nightmare, especially for one perosn. Ehhh... even worse without some centralized management.

 

Depending on how the limitation is put into place, you could simply copy the application into a new directory and do a runas with a different user account. There the application has a new directory, separate appdata, and a separate user registry hive. I would rather create 150+ users than running that many VMs. So 150 directories, and 150 user accounts. You could even have a batch file to start them all up.

 

**Windows 10 with bloat-services disabled will run happily with 1GB if you don't need to browse the internet and the like.

***You may want to look at Azure and running your app in the cloud vs a local nightmare of a solution. License + labor is too expensive.

Link to comment
Share on other sites

Link to post
Share on other sites

As a .NET developer, this sound absolutely ridiculous. I have written high throughput integration software before and if implemented right, it should be a breeze to scale out to any number of instances. A major strong point of object orientated programming is reuse within the same application domain. A well written integration engine should not even require multiple instances unless clustering is required for performance reasons.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×