X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=README;h=e722967fe52ccee705680e096153c3e5f9971f13;hp=cd9cea9c49afd132eb2359b8b2e63a6edb7452ae;hb=refs%2Fheads%2Fupstream;hpb=ae91ef6320f611af74e70a0db2620c338fbaa7d5 diff --git a/README b/README index cd9cea9..e722967 100644 --- a/README +++ b/README @@ -1,97 +1,140 @@ -README for ircu2.10.10.beta -Please read this completely before running the server - -* If you run ircu2.10.10 on the production network and expect - more than 1000 local clients to connect you will want to make - sure you add -DNDEBUG to the extra CFLAGS setting when you do - a make config. -* Ircu now uses asserts in a lot of places to insure referential - integrity and that impossible situations do not occur. Also - memory integrity checking is defaulted to on as well. The asserts - and memory checking both use cpu and in the case of memory checking - extra memory. We have not had an assert trigger in quite some time - but would prefer to leave the checks enabled for beta testing. - The asserts insure that if the server is going to core it will do - so in well defined places where the problem will be easy to trace, - without them the server could core in not so well defined places. - If you want to disable the checks, add -DNDEBUG in the extra CFLAGS - when you do a make config. - -* Ircu no longer uses separate C/N lines, the functionality of both - has been combined in C:lines, see the example.conf for more information. - -* Ircu has an different mechanism for defining ports than the previous - versions. Please see the example.conf for information on configuring - them. Ircu also ignores the port specified on the M:line, you MUST define - a server port with a P:line if you want servers to connect to you. - -* For beta releases, please understand that there may be bugs we haven't - found yet, (that's why you're beta testing it in the first place :)). - Please report any bugs found in the server to bugs@undernet.org or - coder-com@undernet.org with as much information as you can provide - about how to reproduce the problem. Stack traces for coredumps are - usually helpful, however we aren't expecting any of those ;-). - -* Ircu 2.10.08 is a P10 only server, and cannot be used to host P9 - links. On a mostly P10 network this is not a major issue, it does - mean that you cannot connect services directly to a 2.10.08 server, - but does not preclude it's use as a leaf or a hub. For now, services - need to continue to be hosted by 2.10.07 servers. - -* EXTENDED_NUMERICS is not defined by default, we need to get everyone - using 2.10.07 before we can allow it to be turned on anywhere. If you - are using 2.10.08 on a network where everyone is up to at least 2.10.07 - it is safe to turn them on. We have tested them on testnet and they do - work. :) - -* The masked notices using #*.mask has changed to use $@*.mask instead. - Since most of the servers on the net will not understand the new masking - mechanism, this probably won't work for a while. The server notice mask - ($*.us.undernet.org) still functions properly. This was a trade off - between backwards compatibility and the improved protocol, we chose to - not maintain backwards compatibility for this command. The #*.mask - functionality is easily circumvented, and the command is rarely used - it is not considered to be a major issue. - -* The server no longer sends notices for errors on connections that are - suddenly dropped during connection setup. If you really want to see - them, we suggest you get a life. :) - -* Removed: unix domain sockets, uping, m4 preprocessor spawning, - dozens of bugs. - -* New stuff: - Added ISUPPORT code to match dalnets. - Added connection progress notices. - Cleaned up operating system checks. - /invite with no arguments lists the channels you're invited to. - Many speedups, ipdiffer, faster strncpy, faster inetntoa. - Passive lag and numerics now displayed by map command. - Server to server tokenization. - Much larger TCP windows/kernel buffers for server connections, - smaller for clients. - Removed BOOT_OPER security hole. - Complete listener port specifications including per port virtual - hosting and hidden listeners. - Default server port for connects (config option). - Speed up some channel ops using new Membership struct. - Hash table performance stats are available now (basic). - Much of the socket code has been rewritten, we now only make one - pass through the local client array. - Added initial support for PROTOCOL command. - Many functions have been made reentrant. - Resolver now uses callbacks for all queries. - Almost every command that is sent to a server uses full P10 numerics - and tokenization, this reduces netburst sizes by at least 10% and - many server to server message sizes by 10-50%. - Major source code reorginization to support engine model. - Parser now uses an indexed table for commands, which elminates - the need to do IsServer IsUser IsOper checks and allows much more - efficient implementation of user/server/oper command handlers. - -* For a much longer winded explanation of all this stuff, see the - ChangeLog in this directory, or the cvs log at the coder-com - web site at http://coder-com.undernet.org/ + Welcome to ircu2.10.12, the Undernet IRC daemon +Version u2.10.12 of the Undernet ircd incorporates many new features +over its predecessor, and we feel that using it will make you very +happy indeed. +New features include: + - A completely rewritten network event engine, which make full use + of the asynchronous event engines available in FreeBSD (kqueue) + and Solaris (/dev/poll), resulting in dramaticaly improved + performance. + - New F: (feature) lines in ircd.conf, and the GET/SET commands allow + many settings to be changed dynamically, rather than by with compile- + time configuration. + - The new "account" feature added to the P10 protocol, allows people to + remain logged in to service bots (i.e., gnuworld) during a netsplit. + This means people will not have to login again once the network rejoins. + +INSTALLATION + +Please see the INSTALL file for installation instructions, for hints on how +to best configure your OS for running ircu under high load, see the various +README. files. + +COMPATIBILITY + +This version of ircu will only work with servers that use the P10 protocol, +some of the new features will only work between ircu2.10.12 servers. + +GENERAL PERFORMANCE HINTS + +For platform-specific notes and hints, see the platform-specific +sections below. These notes apply to servers that will serve large +numbers (thousands) of clients simultaneously. If your server serves +a small amount of users, the defaults should work well enough. + + - Run an OS that supports an asynchronous network event engine; currently + these are FreeBSD (kqueue), and Solaris (/dev/poll); possibly other BSDs + will also support kqueue. This will have a dramatic effect on performance. + - Make things as lean as possible: Make your server dedicated to ircu, + disable anything that is not neccesary, and build a custom kernel (where + possible). + - Tune kernel parameters as described in the platform-specific + sections below. + - With many clients connecting each second, ircu will be doing lots of DNS + lookups. Make sure that the DNS server(s) in your /etc/resolv.conf are as + close as possible, or run a local caching DNS server on your IRC server. + +TIME SYNCHRONIZATION + +Many things can and will go horribly wrong when the clocks on the servers +on your network become (too far) out of sync. It is therefore highly +recommended that all servers run a version of ntpd that will keep their +clocks from going astray. + +INFORMATION HIDING + +As per undernet-admins CFV-165, this server contains code that will, +by default, hide certain information from ordinary users. If you do +not want this, override the default "HIS" feature settings in your +ircd.conf. + +MORE INFORMATION + +For more information on this software, see the included documentation +in the doc/ directory, as well as http://coder-com.undernet.org. + +For general information on the Undernet, vist http://www.undernet.org + +Happy IRCing! + +RUNNING THIS SERVER ON LINUX + +If you run Linux 2.6 or above (or 2.4 with appropriate patches), ircu +can use the epoll family of system calls for much more efficient +checks of which connections are active. Most pre-epoll systems will +use 100% CPU with 2000 clients; with epoll, a server may use only a +few percent of CPU with the same load. + +To handle that many connections, the ircd must be started with a high +enough file descriptor resource. Check your distribution's docs on +how to set the global and per-user limits according to your expected +load. + +RUNNING THIS SERVER ON FREEBSD + +When running on FreeBSD, ircu can make use of the kqueue() event engine, which +results in much improved performance over the old poll()-based method. kqueue +is included in the more recent 4.x releases of FreeBSD. + +In order for ircu to be able to serve many clients simultaneously, you need +to increase the maximum allowable number of open files in the system. To do +this, add commands such as the following during your system's boot sequence: + +sysctl -w kern.maxfiles=16384 +sysctl -w kern.maxfilesperproc=16384 + +Unless you will be serving thousands of clients simultaneously, you will not +need to do the following, unless of course you just can't stand having a +system that is not optimized to its limits :) + +Build a custom kernel: Make your kernel as lean as possible by removing all +drivers and options you will not need. The following parameters will affect +performance, they are listed with suggested values only. For more information +on what they do exactly, see FreeBSD's documentation. + +maxusers 2048 +options NMBCLUSTERS=65535 +options ICMP_BANDLIM + +Also, you may wish to run the following at system startup (from /etc/rc.local, +or whichever other method you prefer): + +sysctl -w net.inet.tcp.rfc1323=1 +sysctl -w net.inet.tcp.delayed_ack=0 +sysctl -w net.inet.tcp.restrict_rst=1 +sysctl -w kern.ipc.maxsockbuf=2097152 +sysctl -w kern.ipc.somaxconn=2048 + +Created by Sengaia , July 20 2002. + +RUNNING THIS SERVER ON SOLARIS + +When running on Solaris, ircu can make use of the /dev/poll event engine, which +results in much improved performance over the old poll()-based method. Solaris +versions 8 and 9 include /dev/poll out of the box, for Solaris 7 you will have +to grab and install Patch-ID 106541-21. + +In order to increase the number of clients ircu can handle, add lines such as +the following to /etc/system: + +* set hard limit on file descriptors +set rlim_fd_max = 16384 +* set soft limit on file descriptors +set rlim_fd_cur = 8192 + +For more useful hints see http://www.sean.de/Solaris/soltune.html + +Created by Sengaia on July 20, 2002.