Originally posted by: Wouter Liefting
There are three main reasons to use dedicated processors.
1. If your OS doesn't support shared processors, such as older AIX versions.
2. If you are doing real-time work (such as controlling robots) or work that requires really low latencies (VIO servers come to mind) and you cannot run the risk of not being active when an interrupt comes in.
3. If you are using licensed software that's tied to the CPU ID, so you need to make sure you get the same CPU every time, even after a cold restart of the managed system.
I don't know of any other reason to choose dedicated processors over shared processors.
If you have two dedicated processors you are obviously guaranteed to have these available. If you're in "dedicated-donating" mode, then their spare cycles will be donated to the shared pool if you're not using them. This is done on a per-timeslice basis (10 ms) and only if the actual usage is below 75% or so.
If you are using shared processors with an entitlement of 2.0, then you will be allocated the equivalent of two full CPUs per timeslice (10 ms). Depending on the number of virtual processors, this may be two CPUs for the full timeslice, or four 5 ms slices spread out across four CPUs, possibly all running in parallel. Or even twenty 1 ms slices spread across twenty CPUs, all running in parallel. The advantage of running "uncapped" is that if the other partitions are not busy, you can use the spare capacity in the shared pool. So if your LPAR needs it, it can theoretically use 200 ms worth of CPU time in each 10 ms time slice. But that requires that you have the number of virtual CPUs set to 20, and it requires that your OS and application are able to spread out the work across at least 20 threads.
Dedicated-donating will behave very much like shared-capped. You are guaranteed two CPUs (or, at least, the equivalent processing power of two CPUs), any unused cycles will be fed back to the shared pool, but you cannot exceed two CPUs (or equivalent). Once you go from shared-capped to shared-uncapped, you can use the excess cycles in the shared pool if they're available, but only if you have defined sufficient virtual processors, and if your OS and application have enough threads to do so.
Tuning CPU performance, especially when using shared-uncapped is a pretty complicated affair with lots of variables and issues to consider. There are some rules of thumb, but to do things properly you first need to understand the application(s) that are running, and what you're trying to achieve.
#AIX-Forum