Does anyone have a clue of the maximum number of users RPi 512 MB could handle if running an IRC server? I'm just looking for an approximate number, is it 100, 10'000 or millions?
3 Answers
Several networks have published minimum hardware requirements for new server applications:
Minimum 512MB RAM (1 GB or higher highly recommended)
For for x86-based machines, a minumum of 600MHz is required. for Sparc, the machine should be a Ultra-10 or better. Other platforms should run a comparable, or better, system. The Operating System kernel must be configured to allow a minimum of 4096 open file descriptors per process, and must support at least 4000 undernet user connections.
Server must be a DEDICATED machine to serve as an IRC server.
Servers should be reasonably powerful machines. An old 386 running Linux/BSD would not be acceptable, although Linux/BSD running on Pentium class machines works fine.
The machine must be a MINIMUM of a Pentium 4 (or equivalent) with 512MB RAM. It is advisable to have a gigabit NIC to mitigate some of the effects of denial of service attacks.
So that gives you an idea of what the current servers out there are running. Most, however, indicate that bandwidth is the most important bottleneck.
If you're looking for something smaller or private, bouncers like ZNC would probably run fairly well on the Pi.
-
1You have to remember though that IRC is a complex mesh of servers that form a global Network. These servers distribute messages across the mesh. A users on server A is most likley to read a message from user B on server B much later than any user on Server A. Sometimes network splits occur and channels get split up. So running 2 Pi's on seperate IP's at the same location will help help with load balancing as the 2 Pi's will relay internally. This network can expand exponentially and a-synchronously. So if limits get met - add more stuff! Commented Mar 8, 2013 at 14:01
-
1@ppumkin True. But if you're trying to make a public server and you're running on a typical residential connection, you're probably going to hit bandwidth issues fairly quickly. Without more info on what the OP is trying to do (make a new network? Add a server to an existing one? Add private chat capabilities for lan parties? Create a private IRC network for a large corporation?) I'm hesitant to try and guess how effective this will be. Commented Mar 8, 2013 at 14:05
-
1Yea- This is quite an interesting question. There is no proper way to measure the capacity. He can thousands of users doing nothing or 50 hammering it. So defiantly- At first all his friends and friends friends can connect and chat. But then only 1 or 2 people are active. As an experiment he should post his server here and see how many people can connect before it explodes. :) hehehe Commented Mar 8, 2013 at 14:26
Used to run an IRC server for 5-10 people on a ~400mhz ARM box with 256mb ram. Worked.
I'm using hybrid-ircd for a remote device management system... A botnet for good, instead of evil.
So far, we've tested at scale by throwing a bunch of VM's at it, and with every agent deployed checking in at ~15 minute intervals with a csv string of data to the "master" bot, which collects into SQL...
500+ machines were fine. The master process bogged a bit when we went over that, but that's about the scale limit we were looking for in regional splits. Additionally, that's not anything to do with the ircd, but more my crap hack python skills (or lack thereof)
It works, built in python on a raspberry pi 1gb to start with, then moved into "the cloud" (shudder).
By the way, Xen is great for a lab, and can be a royal pain the butt to scale manually.