I'm running on Rackspace Cloud. I don't think I can run a custom kernel out there.
Michael Marano -- Senior Manager of Web Development Future US, Inc. desk: 650-238-2530 cell: 650-580-2132 twitter: @mmarano aim: michaelvicmarano skype: mmarano > From: Jonah Horowitz <[email protected]> > Date: Wed, 7 Oct 2009 15:18:29 -0700 > To: Michael Marano <[email protected]>, <[email protected]> > Cc: <[email protected]>, Mark Kramer <[email protected]> > Subject: RE: Kernel tuning recommendations > > I ended up just building a kernel without conntrack, module or otherwise. I'm > sure you could prevent conntrack from loading somehow, but this was easier > from my perspective. > > Jonah > > >> -----Original Message----- >> From: Michael Marano [mailto:[email protected]] >> Sent: Wednesday, October 07, 2009 3:03 PM >> To: [email protected] >> Cc: [email protected]; Mark Kramer >> Subject: Re: Kernel tuning recommendations >> >> I've made a handful of changes based up on Chris and Willy's >> suggestions, >> which I've included below. This avoids the nf_conntrack errors in the >> logs. >> >> I would like to skip nf_conntrack altogether. I've been digging around >> to >> try to learn how to do that, but I now admit I don't know how. I can't >> just >> drop the module, as it's currently in use. >> >> [mmar...@w1 w1]$ sudo modprobe -n -r nf_conntrack >> FATAL: Module nf_conntrack is in use. >> >> What do I need to change in my iptables rules to pave the way for >> removing >> this module. Once I've got that straight, how do I then disable the >> module. >> I'm happy to get an RTFM response if I'm just being stupid. Point me at >> the >> right M ;) >> >> Michael Marano >> >> >> ---- iptables rules script --------------- >> #!/bin/sh >> >> sudo /sbin/iptables -F >> sudo /sbin/iptables -A INPUT -i lo -j ACCEPT >> sudo /sbin/iptables -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT >> sudo /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j >> ACCEPT >> sudo /sbin/iptables -A OUTPUT -j ACCEPT >> >> # don't track incoming or outgoing port 80 >> sudo /sbin/iptables -t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK >> sudo /sbin/iptables -t raw -A PREROUTING -p tcp --dport 8080 -j NOTRACK >> sudo /sbin/iptables -t raw -A PREROUTING -p tcp --dport 81 -j NOTRACK >> >> # don't track traffic starting from the private ip >> sudo /sbin/iptables -t raw -A PREROUTING -p tcp -s 10.176.45.165 -j >> NOTRACK >> >> # these may not actually be useful, but I'm leaving them in. >> sudo /sbin/iptables -t raw -A OUTPUT -p tcp --sport 80 -j NOTRACK >> sudo /sbin/iptables -t raw -A OUTPUT -p tcp --sport 8080 -j NOTRACK >> sudo /sbin/iptables -t raw -A OUTPUT -p tcp --sport 81 -j NOTRACK >> >> sudo /sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 22 -j >> ACCEPT >> sudo /sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT >> sudo /sbin/iptables -A INPUT -j REJECT >> sudo /sbin/iptables -A FORWARD -j REJECT >> ---- iptables rules script --------------- >> >> >> >> ---- additions to sysctl.conf --------------- >> # >> # TCP tuning >> # >> # from >> http://agiletesting.blogspot.com/2009/03/haproxy-and-apache- >> performance-tuni >> ng.html >> net.ipv4.tcp_tw_reuse = 1 >> net.ipv4.ip_local_port_range = 1024 65023 >> net.ipv4.tcp_max_syn_backlog = 10240 >> net.ipv4.tcp_max_tw_buckets = 400000 >> net.ipv4.tcp_max_orphans = 60000 >> net.ipv4.tcp_synack_retries = 3 >> net.core.somaxconn = 40000 >> >> # from >> http://serverfault.com/questions/11106/best-linux-network-tuning-tips >> net.ipv4.route.max_size = 262144 >> net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 18000 >> net.ipv4.neigh.default.gc_thresh1 = 1024 >> net.ipv4.neigh.default.gc_thresh2 = 2048 >> net.ipv4.neigh.default.gc_thresh3 = 4096 >> net.netfilter.nf_conntrack_max = 128000 >> net.netfilter.nf_conntrack_expect_max = 4096 >> >> # additions based on questions to the haproxy mailing list >> # http://www.mail-archive.com/[email protected]/msg01321.html >> net.ipv4.tcp_timestamps = 1 >> net.core.netdev_max_backlog = 40000 >> # these were all lower than the default values already set, so I left >> them >> out >> #net.ipv4.tcp_rmem = 4096 8192 16384 >> #net.ipv4.tcp_wmem = 4096 8192 16384 >> #net.ipv4.tcp_mem = 65536 98304 131072 >> >> ---- additions to sysctl.conf --------------- >> >> >> >>> From: <[email protected]> >>> Date: Wed, 07 Oct 2009 11:24:23 +0100 >>> To: Michael Marano <[email protected]> >>> Cc: <[email protected]> >>> Subject: Re: Kernel tuning recommendations >>> >>> Here is the adjusted IPv4 settings I use on my haproxy box - I picked >>> these up from around the web, and they seem to work for me, not that >>> they are in use on a particularly high volume site currently. >>> >>> Chris >>> >>> net.ipv4.tcp_tw_reuse = 1 >>> net.ipv4.ip_local_port_range = 1024 65023 >>> net.ipv4.tcp_max_syn_backlog = 10240 >>> net.ipv4.tcp_max_tw_buckets = 400000 >>> net.ipv4.tcp_max_orphans = 60000 >>> net.ipv4.tcp_synack_retries = 3 >>> net.ipv4.tcp_max_syn_backlog = 45000 >>> net.ipv4.tcp_timestamps = 1 >>> net.ipv4.tcp_rmem = 4096 8192 16384 >>> net.ipv4.tcp_wmem = 4096 8192 16384 >>> net.ipv4.tcp_mem = 65536 98304 131072 >>> net.core.somaxconn = 40000 >>> net.core.netdev_max_backlog = 40000 >>> >>> >>> >>> Quoting Michael Marano <[email protected]>: >>> >>>> Subsequent load tests proved me wrong. I¹m still getting the >> nf_conntrack >>>> messages. Perhaps I¹ve misconfigigured my iptables rules? >>>> >>>> >>>> # bits of /var/log/messages >>>> >>>> Oct 6 21:58:40 w1 kernel: [3718555.091684] printk: 2 messages >> suppressed. >>>> Oct 6 21:58:40 w1 kernel: [3718555.091705] nf_conntrack: table >> full, >>>> dropping packet. >>>> Oct 6 21:58:41 w1 kernel: [3718290.353966] device eth0 entered >> promiscuous >>>> mode >>>> Oct 6 21:58:43 w1 kernel: [3718558.070993] nf_conntrack: table >> full, >>>> dropping packet. >>>> Oct 6 21:58:44 w1 kernel: [3718559.097679] nf_conntrack: table >> full, >>>> dropping packet. >>>> >>>> >>>> I¹ve got this in a shell script: >>>> >>>> >>>> ---- >>>> #!/bin/sh >>>> >>>> sudo /sbin/iptables -F >>>> sudo /sbin/iptables -A INPUT -i lo -j ACCEPT >>>> sudo /sbin/iptables -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT >>>> sudo /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j >> ACCEPT >>>> sudo /sbin/iptables -A OUTPUT -j ACCEPT >>>> >>>> # tell iptables to skip tracking on ports haproxy is monitoring >>>> sudo /sbin/iptables -t raw -A PREROUTING -p tcp --dport 80 -j >> NOTRACK >>>> sudo /sbin/iptables -t raw -A PREROUTING -p tcp --dport 8080 -j >> NOTRACK >>>> >>>> # ... Rules to allow stuff... >>>> >>>> sudo /sbin/iptables -A INPUT -j REJECT >>>> sudo /sbin/iptables -A FORWARD -j REJECT >>>> ------ >>>> >>>> But then when I list my tables, I¹m not seeing anything about the >> NOTRACK >>>> rules. >>>> >>>> ----- >>>> Chain INPUT (policy ACCEPT) >>>> target prot opt source destination >>>> ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 >>>> REJECT all -- 0.0.0.0/0 127.0.0.0/8 reject- >> with >>>> icmp-port-unreachable >>>> ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state >>>> RELATED,ESTABLISHED >>>> ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp >> dpt:81 >>>> ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp >> dpt:80 >>>> ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp >> dpt:443 >>>> ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp >> dpt:8080 >>>> >>>> ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state >> NEW tcp >>>> dpt:22 >>>> ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp >> type 8 >>>> REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject- >> with >>>> icmp-port-unreachable >>>> >>>> Chain FORWARD (policy ACCEPT) >>>> target prot opt source destination >>>> REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject- >> with >>>> icmp-port-unreachable >>>> >>>> Chain OUTPUT (policy ACCEPT) >>>> target prot opt source destination >>>> ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 >>>> >>>> Chain RH-Firewall-1-INPUT (0 references) >>>> target prot opt source destination >>>> >>>> ----- >>>> >>>> >>>> >>>> >>>> Michael Marano >>>> >>>> >>>> From: Michael Marano <[email protected]> >>>> Date: Tue, 06 Oct 2009 13:49:02 -0700 >>>> To: Stefan Johansson <[email protected]>, <[email protected]> >>>> Conversation: Kernel tuning recommendations >>>> Subject: Re: Kernel tuning recommendations >>>> >>>> Stefan, >>>> >>>> That seems to have eliminated any log messages in my staging >> environment >>>> under a load test. I think that will do the trick. Thanks for your >> help. >>>> >>>> Any general recommendations for sysctl settings would still be >> appreciated. >>>> This is the first time I¹ve had to tune the kernel settings so any >> guidance >>>> will help. >>>> >>>> Michael Marano >>>> >>>> >>>> From: Stefan Johansson <[email protected]> >>>> Date: Tue, 6 Oct 2009 22:27:49 +0200 >>>> To: Michael Marano <[email protected]>, <[email protected]> >>>> Subject: RE: Kernel tuning recommendations >>>> >>>> iptables -t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK >>>> >>>> >>>> >>> >>> >>> >>> ---------------------------------------------------------------- >>> This message was sent using IMP, the Internet Messaging Program. >>> >> >

