<html>
<body>
<br>
I had written much about this a while back. I will repeat a bit of<br>
it here for the sake of those who wish to do this. Want to know why<br>
you should do this, why it works and a bit on how it works...<br><br>
Linking the binaries allows the CPU to share the same Code segment pages.
Servers<br>
will be allocated their own data segments for both Heap and Stack<br>
(Which grow towards one another)... One of the reasons Ryan was 
able<br>
to so quickly find that original prob back in 1.1.)<br><br>
If there is a write attempt to the code segment, that server/user is
given<br>
their own copy. In the case of most of the shared libs in Linux, the
code<br>
is reentrant, and hence these writes don't happen.<br><br>
One other recommendation, I am not certain if I made...<br><br>
You can reduce the spikes you get when a server is restarted by<br>
setting the &quot;Sticky&quot; bit on the executable.&nbsp; (Do a man on
&quot;mode&quot; command)<br>
What this does is the first time the executable is loaded, the
entire<br>
executable is copies to SWAP space. Once copied to swap, executable<br>
pages are copied in to ram to be executed.<br><br>
The best way to keep a server at optimum is to never have to page.<br>
However, under certain conditions, this does happen.&nbsp; It the
executable<br>
is sticky, it remains in swap, and the page segment need only be<br>
brought back in to memory from swap.<br><br>
Also note, when a second and subsequent&nbsp; user of the Sym Linked
executable<br>
starts his/her server, the executable IS NOT copied in to swap again, it
uses<br>
the one already in swap (hence the concept &quot;sticky&quot;)... it
sticks there.<br><br>
Thus on new startup, A call is made to load the executable, however
the<br>
Kernel immediately updates the CS and ES code pointers to the 
shared<br>
memory mbufs where the executable code exists, allocates a DS data<br>
segment, and moves your process back to the scheduler for CPU as<br>
your I/O is complete.<br><br>
You skip the copy of the executable to SWAP.<br>
You skip the copy of pages to Real RAM.<br>
You execute off shared pages in memory already with your own set of
executable<br>
&nbsp;&nbsp; registers CS, ES.&nbsp; Get your data segment, and your
server starts up.<br><br>
Not only do you save ram, but start impact on the other servers due to
I/O<br>
DMA transfer setup, and context switching between system and user
space,<br>
but you spare the CPU spike as well.<br><br>
Regards<br><br>
Dr. D<br><br>
<br>
At 05:08 PM 9/24/2004, you wrote:<br>
<blockquote type=cite class=cite cite>I just had that question recently
also.&nbsp; I did some research on the internet<br>
and a lot of peeps are doing symlinks.&nbsp; I tried it with MOH:AA and
it works<br>
beautifully, not sure if that's the &quot;right&quot; way to do it but
it's pretty<br>
cool cause' you have one base install and symlinks in the other
client<br>
folders.&nbsp; <br><br>
--<br>
NateDog<br><br>
<br>
&gt; -----Original Message-----<br>
&gt; From: John Kennington
[<a href="mailto:john.kennington@buzzcard.gatech.edu" eudora="autourl">mailto:john.kennington@buzzcard.gatech.edu</a>]<br>
&gt; Sent: Friday, September 24, 2004 3:04 PM<br>
&gt; To: cod@icculus.org<br>
&gt; Subject: RE: [cod] Semi off topic: COD rentals<br>
&gt; <br>
&gt; Depending on the number of cpus in the box, you can run 10 to 15
CoD<br>
&gt; servers per<br>
&gt; box.&nbsp; So it is quite cost effective.<br>
&gt; <br>
&gt; John Kennington<br>
&gt; <br>
&gt; -----Original Message-----<br>
&gt; From: Jafo
[<a href="mailto:jafo@nowhere.ca" eudora="autourl">mailto:jafo@nowhere.ca</a>]<br>
&gt; Sent: Friday, September 24, 2004 3:58 PM<br>
&gt; To: cod@icculus.org<br>
&gt; Subject: [cod] Semi off topic: COD rentals<br>
&gt; <br>
&gt; Hello,<br>
&gt; <br>
&gt; If this isn't the forum for this question, please forgive me for
asking<br>
&gt; here.<br>
&gt; <br>
&gt; There seems like a lot of people on this list that run &quot;server
rental&quot;<br>
&gt; operations. Just curious how people are doing that cost
effectively?<br>
&gt; Obviously one can't run each customer's game server on seperate
hardware.<br>
&gt; Are people using some sort of &quot;virtual linux&quot; installs to
run multiple<br>
&gt; servers on one box with seperate IP addresses? If that is the case
how<br>
&gt; many servers would one dual 2.4 Xeon w/2gig RAM run?<br>
&gt; <br>
&gt; Thanks,<br>
&gt; Jafo<br>
&gt; </blockquote>
<x-sigsep><p></x-sigsep>
<tt>-------------------------------------------------------------------------------<br>
Mark J.
DeFilippis&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
defilm@acm.org<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
defilm@ieee.org<br><br>
<br>
</body>
</html>