<div dir="ltr">I'd be interested in seeing the output of  vmstat over a period of time. Because only 3 of the 8 CPUs are being used, it sounds as if either the app is suffering from some sort of lock contention, or is I/O bound. If it's IO bound, then putting the database tables on heavily-memory-cached RAID or SAN hardware like EMC could make a huge difference. I know that probably doesn't help because if you're like most people, you don't have the megabucks one needs for such a device. However, maybe a lower-end (but still fast) RAID would be useful.<br>
<br>Is there any way you could run the app for 15 minutes under full load and capture the system performance using vmstat?<br><br>Ed<br><br><div class="gmail_quote">On Fri, Sep 12, 2008 at 1:41 PM, Joel Reymont <span dir="ltr"><<a href="mailto:joelr1@gmail.com">joelr1@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
On Sep 12, 2008, at 5:35 PM, Hynek Vychodil wrote:<br>
<br>
> It not seems as good as I realize from your previous messages. It<br>
> looks like you can get less than 1kreq/s.<br>
<br>
Right.<br>
<br>
> I don't know if it is load which you can manage for example 5,<br>
> 10, ... minutes.<br>
<br>
Yes and no, see below.<br>
<br>
> You can serve 15k concurrent players. Sound it still to much bad for<br>
> you?<br>
<br>
15K concurrent players would be excellent. The stats I posted before<br>
don't paint the full picture, though. The part that I didn't post<br>
looks like this...<br>
<div class="Ih2E3d"><br>
Simulating gameplay with 1000 games...<br>
Waiting for games to end...<br>
50 games started, 262 players<br>
100 games started, 504 players<br>
...<br>
950 games started, 4777 players<br>
1000 games started, 5066 players<br>
<br>
</div>4 Mnesia overloaded error reports<br>
<br>
=ERROR REPORT x 4==== 12-Sep-2008::16:34:40 ===<br>
<div class="Ih2E3d">Mnesia('1@mothership'): ** WARNING ** Mnesia is overloaded: {dump_log,<br>
<br>
write_threshold}<br>
<br>
</div>And 11 more<br>
<br>
=ERROR REPORT x 11 ==== 12-Sep-2008::16:34:44 ===<br>
<div class="Ih2E3d">Mnesia('1@mothership'): ** WARNING ** Mnesia is overloaded: {dump_log,<br>
<br>
write_threshold}<br>
<br>
</div>And then the real bummer, a whole lot of these:<br>
<br>
=ERROR REPORT ==== 12-Sep-2008::16:35:01 ===<br>
** State machine <0.9390.0> terminating<br>
** Last timer event in was 'CHECK'<br>
** When State == dispatch<br>
...<br>
** Reason for termination =<br>
** {timeout,{gen_server,call,[<0.9391.0>,{'SEATS',119}]}}<br>
<br>
The above says that even with just 5K players the card game FSM times<br>
out when requesting seats matching a certain mask, e.g. the reply<br>
takes longer than 5 seconds. The game bombs out at this point.<br>
<br>
I could increase the timeout or make the call just wait forever. I<br>
don't want to do this, though, as this timeout serves as a performance<br>
indicator.<br>
<br>
        Thanks, Joel<br>
<div><div></div><div class="Wj3C7c"><br>
--<br>
<a href="http://wagerlabs.com" target="_blank">wagerlabs.com</a><br>
<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br>
<br>
</div></div></blockquote></div><br></div>