2

We have a computer that we share. As an example, user A logs in starts a process and it uses 80% of the RAM and 70% of the CPU. When user B logs in they can only use 20% of the RAM and 30% of the CPU. Is there a way to limit RAM and CPU usage to 50% per user to make sure that every user have the same amount of resources? We have the following OS:

  • Edition: Windows 10 Enterprise
  • Version: 1809
  • OS build: 17763.1339

Thank you very much!

Attila

  • As long as we don't talk about programs that make extensive computation in background the applications of the user not actively logged in should be mainly in idle state. Hence the OS can swap most of the used RAM into swap file and the RAM is free for user2. Make sure that there is enough free HDD space on the system drive and that the swap file size is not limited. – Robert Aug 10 '20 at 12:09
  • You need a more powerful computer. If a single process already consumes so much RAM and CPU time, it's doubtful that *either* user would be satified. – DrMoishe Pippik Aug 10 '20 at 20:03
  • How much RAM do you have and how many cores/threads does your CPU have? – cybernard Aug 11 '20 at 02:53
  • I think you are missing the point :) Yes, you can add more RAM, but you can always run more processes so at the end we will always have limited resources. My point was to ensure that both users have equal amount of resources. If there is no way to ensure that I can understand it, but that was my point. Thank you! – Attila Horvath Aug 11 '20 at 16:02

1 Answers1

0

Well the CPU to a degree can be divided, but it requires manual intervention.

Going into the task manager you can go to the details tab.

You can sort by CPU usage.

Find the tasks consuming the most CPU and right click. Select processor affinity.

affinity

You can now uncheck half of the cores listed, and it will only be able to use 50% of the CPU.

Memory allocation has no direct equivalent.

Frequently, and depending on how much RAM your existing system has, just doubling the RAM is sometimes the easiest solution.

The only way to limit a user with that level of precision is to create a virtual machine using oracle virtual box or etc. When creating a virtual machine a precise amount of CPU and memory can be specified. However, that means one user is always in a virtual box, in some cases it matters and it others it won't. If the user in the virtual box needs direct access to the GPU it isn't currently possible. Gaming and GPU acceleration are not possible inside the virtual machine.

cybernard
  • 13,380
  • 3
  • 29
  • 33