]> jfr.im git - irc/quakenet/snircd.git/blame - README
merge with snircd head
[irc/quakenet/snircd.git] / README
CommitLineData
189935b1 1
2 Welcome to ircu2.10.12, the Undernet IRC daemon
3
4Version u2.10.12 of the Undernet ircd incorporates many new features
5over its predecessor, and we feel that using it will make you very
6happy indeed.
7
8New features include:
9 - A completely rewritten network event engine, which make full use
10 of the asynchronous event engines available in FreeBSD (kqueue)
11 and Solaris (/dev/poll), resulting in dramaticaly improved
12 performance.
13 - New F: (feature) lines in ircd.conf, and the GET/SET commands allow
14 many settings to be changed dynamically, rather than by with compile-
15 time configuration.
16 - The new "account" feature added to the P10 protocol, allows people to
17 remain logged in to service bots (i.e., gnuworld) during a netsplit.
18 This means people will not have to login again once the network rejoins.
19
20INSTALLATION
21
22Please see the INSTALL file for installation instructions, for hints on how
23to best configure your OS for running ircu under high load, see the various
24README.<platform> files.
25
26COMPATIBILITY
27
28This version of ircu will only work with servers that use the P10 protocol,
29some of the new features will only work between ircu2.10.12 servers.
30
31GENERAL PERFORMANCE HINTS
32
33For platform-specific notes and hints, see the platform-specific
34sections below. These notes apply to servers that will serve large
35numbers (thousands) of clients simultaneously. If your server serves
36a small amount of users, the defaults should work well enough.
37
38 - Run an OS that supports an asynchronous network event engine; currently
39 these are FreeBSD (kqueue), and Solaris (/dev/poll); possibly other BSDs
40 will also support kqueue. This will have a dramatic effect on performance.
41 - Make things as lean as possible: Make your server dedicated to ircu,
42 disable anything that is not neccesary, and build a custom kernel (where
43 possible).
44 - Tune kernel parameters as described in the platform-specific
45 sections below.
46 - With many clients connecting each second, ircu will be doing lots of DNS
47 lookups. Make sure that the DNS server(s) in your /etc/resolv.conf are as
48 close as possible, or run a local caching DNS server on your IRC server.
49
50TIME SYNCHRONIZATION
51
52Many things can and will go horribly wrong when the clocks on the servers
53on your network become (too far) out of sync. It is therefore highly
54recommended that all servers run a version of ntpd that will keep their
55clocks from going astray.
56
57INFORMATION HIDING
58
59As per undernet-admins CFV-165, this server contains code that will,
60by default, hide certain information from ordinary users. If you do
61not want this, override the default "HIS" feature settings in your
62ircd.conf.
63
64MORE INFORMATION
65
66For more information on this software, see the included documentation
67in the doc/ directory, as well as http://coder-com.undernet.org.
68
69For general information on the Undernet, vist http://www.undernet.org
70
71Happy IRCing!
72
73RUNNING THIS SERVER ON LINUX
74
75If you run Linux 2.6 or above (or 2.4 with appropriate patches), ircu
76can use the epoll family of system calls for much more efficient
77checks of which connections are active. Most pre-epoll systems will
78use 100% CPU with 2000 clients; with epoll, a server may use only a
79few percent of CPU with the same load.
80
81To handle that many connections, the ircd must be started with a high
82enough file descriptor resource. Check your distribution's docs on
83how to set the global and per-user limits according to your expected
84load.
85
86RUNNING THIS SERVER ON FREEBSD
87
88When running on FreeBSD, ircu can make use of the kqueue() event engine, which
89results in much improved performance over the old poll()-based method. kqueue
90is included in the more recent 4.x releases of FreeBSD.
91
92In order for ircu to be able to serve many clients simultaneously, you need
93to increase the maximum allowable number of open files in the system. To do
94this, add commands such as the following during your system's boot sequence:
95
96sysctl -w kern.maxfiles=16384
97sysctl -w kern.maxfilesperproc=16384
98
99Unless you will be serving thousands of clients simultaneously, you will not
100need to do the following, unless of course you just can't stand having a
101system that is not optimized to its limits :)
102
103Build a custom kernel: Make your kernel as lean as possible by removing all
104drivers and options you will not need. The following parameters will affect
105performance, they are listed with suggested values only. For more information
106on what they do exactly, see FreeBSD's documentation.
107
108maxusers 2048
109options NMBCLUSTERS=65535
110options ICMP_BANDLIM
111
112Also, you may wish to run the following at system startup (from /etc/rc.local,
113or whichever other method you prefer):
114
115sysctl -w net.inet.tcp.rfc1323=1
116sysctl -w net.inet.tcp.delayed_ack=0
117sysctl -w net.inet.tcp.restrict_rst=1
118sysctl -w kern.ipc.maxsockbuf=2097152
119sysctl -w kern.ipc.somaxconn=2048
120
121Created by Sengaia <sengaia@undernet.org>, July 20 2002.
122
123RUNNING THIS SERVER ON SOLARIS
124
125When running on Solaris, ircu can make use of the /dev/poll event engine, which
126results in much improved performance over the old poll()-based method. Solaris
127versions 8 and 9 include /dev/poll out of the box, for Solaris 7 you will have
128to grab and install Patch-ID 106541-21.
129
130In order to increase the number of clients ircu can handle, add lines such as
131the following to /etc/system:
132
133* set hard limit on file descriptors
134set rlim_fd_max = 16384
135* set soft limit on file descriptors
136set rlim_fd_cur = 8192
137
138For more useful hints see http://www.sean.de/Solaris/soltune.html
139
140Created by Sengaia <sengaia@undernet.org> on July 20, 2002.