#CPU Performance Hits
16 messages in this thread
Hi Jonas,
I'm still trying to track down the source of some chronic performance problems.
I have six computers (3 486/66's and 3 P-90's). Whenever even one machine is
in slave mode (idle or rendering), the performance of the "server" i.e., the
machine on which the "network" directory resides, is substanially degraded.
I have been using Norton Utilities "sysinfo" to observe the performance of the
server's CPU. On the 486 server, the normal cpu speed is about 183. As soon as
even one machine comes on line in slave mode, the speed will go down to 20 or
so for about a second or two and then return to full speed. This "dip" in
performance occurs regularly about every four seconds.
When a P-90 is used as a server, it's cpu performance is also reduced although
not as much but at more frequent intervals.
Can you tell me:
1. Is this normal?
2. What the heck does a network slave do to draw down a server's cpu?
3. What can I do to fix it?
Thanks,
Alec Jason
This is a problem of the network software. There are, actually, two problems
here. First is the raw performance of the "Server" software. This is the
program running all the time waiting for requests and replying to those
requests. The better the "Server" program the better the performance. The
second problem is that when using a workstation as a server, this server
software must run concurrently with whatever else is running on the foreground.
DOS simply wasn't meant to do this. The whole process of "Terminate and Stay
Resident" (TSR) is a kludge to say the least. For instance, if a file requests
arrives in the middle of a DOS call, the request is queued 'till DOS is free
again. This is because DOS cannot handle more than one call at a time. The
problem is compounded when the foreground application is running in protected
mode such as the case with 3D Studio or Windows. As the server software is a
simple DOS TSR, the CPU must switch contexts (going from 386 protected mode to
8088 real mode) each time a request arrives. This context switch takes a heck
of a long time (in terms of computer cycles).
The simple solution to this is to dedicate a machine as a server. I think
Lantastic has such option. You should be able to determine the gain in
performance and compare that to the fact you've lost a rendering machine. Also
make sure you've got lots of disk cache (8 to 16 megs depending on how much
texture maps and such you're using – 4 Megs is enough for writing files only).
Another, more elaborate (read "more expensive") solution is to use a heavy duty
network software. Novell, Windows NT, or even a Unix box. In neither of those
you should see much of a degraded performance for a 5 (or 6) workstation
network.
Thanks Gus.
Jonas,
This is an official 3DS user tech support question and I believe I have a right
to a serious, complete response to my question (which I have asked previously).
What functions or operations do the slave machines perform which requires cpu
activity from the server during non-rendering time?
Alec Jason
I'm not 100% aware of everything that goes on while net rendering but I can
tell you that an idle machine will check the server (NET-PATH) looking for
stuff to do. I assume it does that by opening 3DS.MCS. In order to avoid
problems, it also probably "locks" the file while reading it. I don't know how
often this happens but all these "requests" are being serviced by the server.
The degradation of performance on the server is directly related to the amount
of time it takes to process these requests times the frequency of requests
times the number of idle machines.
Gus,
The performance reduction in the cpu occurs with even one slave sitting idle.
When other slave machines are brought on line, the hits are more frequent but
something occurs every four seconds which reduces the cpu performance by about
90 percent. From my limited understanding of the mechanics, this should not
occur with simple file locking or checking operations.
I can have all sorts of other more intensive network operations going on
without significant performance degradation — only 3DS slaves cause this
problem.
Thanks,
Alec Jason
Hi Alec,
<< official question.. >>
Brian Rudolph will be back at work on Monday. He's most knowledgable in network
rendering. I'll make sure he sees this thread.
jonas[adesk]
Thanks, Jonas.
Alec Jason
Alec:
>> I believe I have a right to a serious, complete response to my question…
On this forum? <bg>
OK, reasonably seriously – when you first start a slave, it writes a file out
to the server telling the system that it is available. It then constantly
checks to see if there is anything to do.
In your 3DSNET.SET file there are a number of settings for what is going on
between the slaves and the server. How often it happens is governed by those
settings. Here are the relevant settings:
;—————————————————– ; NET COMMUNICATIONS
SETTINGS ;Sets time interval in minutes between "squawks". Each ; machine
"squawks" periodically to notify network of ; its status. Range is 1-10.
NET-SQUAWK = 1 ; ;Sets time interval in seconds between inquiries from this ;
system to others on the network. Range is 1-100. NET-POLL-TIME = 3 ; ;Sets the
time interval in minutes that a machine is allowed ; to sit without squawking
before it's treated as having ; crashed. Range is 1-60. NET-TIMEOUT = 4
;—————————————————–
Was that serious and complete enough? :^)
Greg Pyros
Hi Greg,
Thanks much for your response but it doesn't answer my question. My network
functions quite well with all other non-3DS operations. File tansfers, etc all
go smoothly and nothing else except the 3DS slaves draw down my server's CPU.
I want to know what the idle slaves do that will affect the server's cpu. I am
aware of all the things you mentioned (net polling time, etc) but those little
operations should not bring a 486/66 cpu to its knees. Something ELSE is going
on, I believe, and that's is what I'm trying to learn about.
Thanks,
Alec Jason
Alec:
>> Something ELSE is going on, I believe…
The butler did it! <g>
I don't think anything that Gus or I didn't mention is happening. Perhaps
something else could be causing a problem? Is the shared drive properly
locking the control files (as it has to)? If not, many of the computers will
open it up at the same time and try to write to the same file, messing
everything up. I've seen this happen before – do you have SHARE running?
Greg Pyros
Greg,
Aha! I think you're on the right track.
I do have share running but something is probably set wrong somewhere. Have you
got any ideas how share should and should not be setup? The line in my
autoexec.bat file shows: C:\dos\share.exe /l:500 /f:5100 (with Qemm loading it
high).
Alec Jason
Thanks Gus,
I don't know anything about all this but I suspect there is more going on than
simply the standard network operations you very well described. The network
functions very well with everything else except 3DS in slave mode.
And I'm not the only person using Lantastic with 5 machines or so but I seem to
be (once again) the only one with this performance problem. Do you mean that
the situation I'm experiencing is normal and predictable for anyone using
Lantastic and 6 machines?
I'd still like to know WHAT THE IDLE SLAVE MODE MACHINE DO WHICH REQUIRES CPU
TIME FROM THE SERVER. No one at Autodesk nor YG seems to know.
The best solution I've found so far is to simply map the network directory to
one of the P90's as they don't seem to be affected.
Thanks again for your insight,
Alec Jason
Alec,
I think if I were putting together a 6+ machine rendering farm for 3DS, I'd
definitely consider setting up a dedicated server running Windows NT network
software. I'v seen it done a couple of times recently with good results.
Just a thought,
-Alan
Thanks Alan,
I've got enough problems without trying to set up a new network with new
software. I'm getting by now and I can't afford new problems. But thanks for
the advice.
Alec Jason
Alec,
<< WHAT THE IDLE SLAVE MODE MACHINE DO WHICH REQUIRES CPU TIME FROM THE
SERVER?>>
The slaves periodically check the 3DS network control files — but I can't
imagine that this eats up noticable CPU time — unless it is a slow machine
and/or you are using it as a workstation.
-Donald