Re: [twsocket] [ICS] mmorpg capacity question

2005-11-01 Thread Wilfried Mestdagh
Hello Jack,

There is no limitation. The difference is that the server versions will
hadle more efficient this kind of huge IO.

The only limitation is the amount of non-paged memory pool (the part
that not be swapped to disk). On Intel86 systems this pool can grow to
maximum 1/8 of phisical RAM. Also there is a hard maximum of 256 MB (128
MB on NT).

A socket use around 2 KB of memory, but it will also send and receive.
This is done by overlapped IO whitch also use the non paged pool.
Overlapped IO is done in blocks of 4 KB. So a socket that read and write
eat 10 KB. This can be (not calculatable) very mutch higher if you do
very fast data on fast networks. On the other hand many sockets only
are sitting there while another is doing the work. So take 6 KB as
average.

There can be other programs running on same machine using non-paged pool
also, so be carefull if you have to write specs for a target machine.

---
Rgds, Wilfried [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html
http://www.mestdagh.biz

Wednesday, November 2, 2005, 04:40, Jack wrote:

 I wonder what the limitations on workstation versions are?
 A few hundreds?

 You need to have a Windows _server_ version to support
 1000 simultaneous connections.




-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] [ICS] mmorpg capacity question

2005-10-31 Thread Stadin, Benjamin
[EMAIL PROTECTED] wrote:

 Would TWserversocket, when implemented correctly, be able to run an
 online game with +/- 1000 connection/players, using tcp/ip?

 The Mmorpg is semi-realtime where each connection send an average of
 6 short packets ( 50bytes/packet) per second.

 My server is a 2.8 Ghz 1mb ram and needs to runs a mysql database on the
 localhost as well, to store/autosave player data.


The database will become a bottleneck if you have that much concurrent
clients. You could  use an in-memory sql table like SqlMemTable
http://www.aidaim.com/articles/dbmemtests.php#Results. I've never tested it
myself.
But the best thing would be if you only write to the mysql database for long
term storage and use your own data structure alogorithm (like an AVL tree or
red-black tree for example) - if you can avoid to use SQL. You can expect it
to be as much 100 times faster than this in-memory sql table. For example an
AVL tree can insert 100,000 records in about 100 ms compared to the 9
seconds(!) SqlMemTable needs.

Benjamin Stadin

 vult
 www.endless-online.com
 -- 
 To unsubscribe or change your settings for TWSocket mailing list
 please goto http://www.elists.org/mailman/listinfo/twsocket
 Visit our website at http://www.overbyte.be


-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be