Page 1 of 1
Jade 7 on HyperV - Only Using 1 CPU (Processor)
Posted: Mon Nov 24, 2014 6:05 pm
by JasonBolton
After installing Jade on HyperV we noticed that the performance was poor and found that it is not making use of all of the virtual processors. It is only using one. I cannot find where I can force it to use more. Any advice will be appreciated.
Thanks
Re: Jade 7 on HyperV - Only Using 1 CPU (Processor)
Posted: Tue Nov 25, 2014 9:00 am
by JohnP
Is this a Hyper-V question?
Does the same workload on a physical server use more than one cpu?
Re: Jade 7 on HyperV - Only Using 1 CPU (Processor)
Posted: Tue Nov 25, 2014 11:11 pm
by JasonBolton
John
Thanks for your response.
I haven't tried it on a physical server.
The process that is was going through was a data import. Last night I ran it again and instead of using "only" CPU 1 it ran and used "only" CPU 6. (8 Virtual Processors).
Imagine that this is a Physical server - Does Jade have certain tasks that it only uses 1 CPU for, or should all processes make use of all resources?
Re: Jade 7 on HyperV - Only Using 1 CPU (Processor)
Posted: Wed Nov 26, 2014 5:27 am
by ghosttie
If your import is running single user then you only have one JADE process, so it will only use one processor.
If your import is running multi user then you'd have a DB server process, an app server process (if you're running thin client) and a client process, so it could theoretically use up to three processors. However in the case of an import the only work being done is the logic to read the import files and do business logic (fat client or app server process) and update the database (DB server process).
In any case I would expect an import to be IO bound on updating the database, so the speed of your IO subsystem will dictate the speed of the import - the CPU will be spending so much time waiting for the HDD that it probably won't even be using 100% of one CPU, let alone eight of them.
You get the benefit of multiple processors when you have multiple processes (users or server apps).
Re: Jade 7 on HyperV - Only Using 1 CPU (Processor)
Posted: Thu Nov 27, 2014 8:48 am
by JohnP
Actually, each Windows process can use multiple cpu's, depending on the number of threads (JADE applications in this case) active. It is possible for a SingleUser jade.exe to use several cpu's, if there are multiple applications running. The idea that an executable cannot use more than one cpu is one of the common misconceptions in this area. In my experience, for example, it is not uncommon for a jadrap.exe to use 3 or 4 cpu's during peak times. There can be hundreds of threads executing in the jadrap.
The idea that creating objects tends to be IO bound is another common misconception. With JADE's caching, many writes to a database block are accumulated into a single IO. Coupling that with the database's "lazy write" algorithm (blocks don't have to be written to the database for the transaction to be resiliently committed), and a data load scenario is frequently cpu bound. It can become IO bound if there are a lot of inserts into large collections, but otherwise a data load is usually cpu bound.
So Jason, the key in your situation is this: if you are not multi-threading the data import, it is not likely to use more than one cpu.