Re: Unexpected low CPU usage
Johan Stuyts <[email protected]> Mon, 21 Jan 2008 11:23:57 +0100
| Newsgroups | gmane.comp.windows.devel.java.advanced |
|---|---|
| Message-ID | <[email protected]> |
> I didn't find anything there. Sorry, I forgot about the limit of maximum 10 downloads. I now uploaded it here: http://www.files-up.com/129WT7NJRPDT/CPU-utilization.png.html > However - one core is fully loaded - okay, that really points to a big > point, doesn't it? Is the CLIENT multi-threaded? No, none of the clients are. > Why don't you just fire up 100 clients, and see if the box goes to 100% > then? Why not load it both internally and externally (from another > physical box), preferably with _several_ external boxes? That's my idea > of fun, at least: load it till DIES, and try to pull some information > out of that. I will have to do those extreme load tests too because I will run into other problems then. One problem I encountered with the RMI client is the exhaustion of free ports under Windows. I will need to modify my socket factories so they accept a port range. What I don't understand is that a protocol that is lightweight when it comes to serialization of the parameters and results, can keep one of my cores busy (indicating it is not disk-/network-bound), but when I switch to a protocol that apparently requires more CPU power for serialization the CPU is no longer used fully. > Again: if the client (or server) is "single threaded", or at least > single-access in some way (it waits until reply before posting a new > request), you will of course never get two CPUs loaded 100% - you'll > maybe even have a hard time filling one CPU, since there will inevitably > be _some_ IO bound (not-CPU-loading, e.g. lag) elements in there per > request/response round trip. (Or maybe not if this is done fully in the > OS, that is, nothing goes out on any wire, and hence there aren't > actually any CPU-waiting moments in a request/response roundtrip - but > that will just fill one CPU at any rate). In my earlier posts when I mentioned 'CPU' I meant a single core CPU. When I posted the CPU graphs, they were of course not showing 100 % usage because I have two cores. I realize I can never get my dual core CPU fully utilized with a single-threaded client. I get one of my cores fully utilized using RMI and XML-RPC and I don't understand why this is not happening for SOAP. > You didn't answer the question (or do what I told you there)! I am sorry, but I think my issue lies elsewhere. I have a CPU intensive protocol which is not fully utilizing the CPU. I am just trying to understand what the underlying issue can be? I have looked at locking and synchronization, background file access, background network access, etc. > And btw, here you even state "single threaded" - is it really this > obvious? Do you mean that I would never be able to get one core fully utilized with a single thread? If so, see above. Johan =================================== This list is hosted by DevelopMentor® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com