http://wiki.laptop.org/mediawiki/api.php?action=feedcontributions&user=213.96.98.136&feedformat=atomOLPC - User contributions [en]2024-03-29T15:53:55ZUser contributionsMediaWiki 1.31.7http://wiki.laptop.org/mediawiki/index.php?title=Ejabberd_resource_tests&diff=253431Ejabberd resource tests2011-02-24T18:41:06Z<p>213.96.98.136: /* Issues */</p>
<hr />
<div>{{jabber}}<br />
{{Developers}}<br />
[[Category:Jabber]]<br />
[[Category:Telepathy]]<br />
[[Category:SchoolServer]]<br />
<br />
== The purpose of these tests ==<br />
<br />
The XS [[school server]] is going to be installed in schools with more<br />
than 3000 students. In these large schools, ejabberd is crucial for<br />
functional [[Activity sharing|collaboration]]. If all the students<br />
are using their laptops at once, ejabberd might be considerably<br />
stressed. These tests were run to find out how it runs in various<br />
circumstances.<br />
<br />
=== Set up ===<br />
<br />
The cpu of the server running ejabberd reports itself as "Intel(R)<br />
Pentium(R) Dual CPU E2180 @ 2.00GHz". The server has 1 GB ram<br />
and 2 GB swap.<br />
<br />
The client load was provided by<br />
[http://dev.laptop.org/git/users/guillaume/hyperactivity/.git/<br />
hyperactivity]. Each client was limited in number of connections it<br />
could maintain (by, it seems, [[Telepathy Gabble]] or [[dbus]]), so<br />
several machines were used in parallel. Four of the client machines<br />
were fairly recent commodity desktops/laptops -- one was the server<br />
itself -- and four were XO laptops. The big machines were connected<br />
via wired ethernet and could provide up to 250 connections each, while<br />
the XOs were using mesh and providing 50 clients each. From time to<br />
time hyperactivity would fail with these numbers and have to be<br />
restarted.<br />
<br />
It took time to work out these limits, so the tests were initially<br />
tentative. The graphs below, the script that made them, longer<br />
versions of these notes, and perhaps unrelated stuff can be found at<br />
[http://dev.laptop.org/~dbagnall/ejabberd/].<br />
<br />
In order to test, I had to add the line<br />
<br />
{registration_timeout, infinity}.<br />
<br />
to /etc/ejabberd/ejabberd.cfg (including the full-stop).<br />
<br />
The memory usage numbers below were gathered by<br />
[http://www.pixelbeat.org/scripts/ps_mem.py ps_mem.py], and the load<br />
average is as reported by top. These are not peak numbers, but<br />
approximately what ejabberd settled to after running for some time.<br />
For the record, the memory use reported by top track that of<br />
ps_mem.py, but was consistently a little higher (as if it were<br />
counting in decimal megabytes, though I am not sure if this is the<br />
case).<br />
<br />
=== Logging and graphing scripts ===<br />
<br />
The scripts that collected the information and made the graphs are <br />
stored in [http://dev.laptop.org/git/users/dbagnall/ejabberd-tests.git/ git].<br />
<br />
=== benchmark results ===<br />
<br />
====Comparisons====<br />
<br />
* [[Ejabberd_resource_tests/tls_comparison]] -- comparing aspects of tries 6 and 7.<br />
<br />
====With shared roster====<br />
<br />
<br />
* [[Ejabberd_resource_tests/try_9]] -- With ejabberd 2.0.2 and postgres.<br />
* [[Ejabberd_resource_tests/try_8]] -- With ejabberd 2.0.1 and postgres.<br />
* [[Ejabberd_resource_tests/try_7]] -- identical conditions to [[Ejabberd_resource_tests/try_6| try 6]], but with the old SSL code.<br />
* [[Ejabberd_resource_tests/try_6]] -- up to 750 connections with shared roster and new SSL code.<br />
* [[Ejabberd_resource_tests/try_5]] -- up to 450 connections with shared roster<br />
<br />
The results below might be less trustworthy, as the shared roster was not always working.<br />
<br />
* [[Ejabberd_resource_tests/try_1]]<br />
* [[Ejabberd_resource_tests/try_2]]<br />
* [[Ejabberd_resource_tests/try_3]]<br />
* [[Ejabberd_resource_tests/try_4]] Faulty -- shared roster was not working.<br />
<br />
=== Raw benchmark results ===<br />
<br />
http://dev.laptop.org/~dbagnall/ejabberd-tests/ -- includes graphs.<br />
<br />
=== Issues ===<br />
<br />
* Is pounding ejabberd every 15 seconds reasonable? A lighter load actually makes very little memory difference, but it probably saves CPU time.<br />
ok</div>213.96.98.136