Results of a quick performance test for Prosody - a popular open-source XMPP server.
Prosody v0.7 with libevent enabled
Lua 5.1
Hardware: entry-level Digital Ocean box, 512MB RAM, 20GB SSD drive
ulimit -n
:
100000
lscpu
:
Architecture: i686
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 2
Stepping: 3
CPU MHz: 1999.999
BogoMIPS: 3999.99
Virtualization: VT-x
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
uname -a:
Linux hll-prosody 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:32:08 UTC 2012 i686 i686 i686 GNU/Linux
5000 user accounts registered on the server with prosodyctl
For 50 seconds, 100 new connections to the server are created
Every user sends 200 messages to another online user chosen at random (message size varies from 64 to 128 characters). There is a pause of ~1 second between every message.
Once a user has sent 200 messages, they disconnect.
Memory consumption - Number of connections - CPU usage, sampled every 10 seconds.
4884 2 0.6
16604 435 2.6
46684 1427 10.2
81276 2309 21.7
108656 3180 34.3
134256 3658 43.0
153976 3935 49.4
169600 4064 54.4
177704 4064 58.4
179168 4093 61.0
183632 4095 63.7
193928 4099 66.0
202224 4228 67.9
207804 4228 69.6
218624 4228 70.6
222124 4228 71.9
228196 4237 73.2
236084 4241 74.3
237176 4256 75.3
237328 4256 75.8
244476 4256 76.7
250792 4357 77.5
251988 3767 78.2
254888 3379 78.8
264920 2982 79.1
267032 2698 79.7
272840 2213 80.2
280884 1711 80.7
280960 1599 81.1
282228 1474 81.4
280244 1386 81.6
273548 1263 81.9
272104 1263 81.2
272104 1263 80.4
272104 1263 79.6
272104 1263 78.9
272104 1134 78.0
272104 1134 77.1
272104 1134 76.4
272104 1134 75.6
272104 1134 74.9
272104 1134 74.2
272104 1134 73.5
272104 1134 72.9
272104 1001 72.3
272104 1001 71.6
272104 1001 71.0
272104 1001 70.3
272104 1001 69.7
272104 1001 69.0
272104 869 68.5
272104 869 67.8
272104 589 67.1
272104 2 65.8
272104 2 64.6
CPU usage then drops down to 0 and memory consumption stays the same.
(Load generated with Heavy Artillery)
Thanks for the detail. Never realized that Prosody is so good with system resources. Any idea - how many errors?