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