1. Serve many clients with each thread
2. Serve one client with each server thread
3. Build the server code into the kernel
If that is actually the case, the document gets its myth correction wrong (by a lot) :)
Can anyone clarify this?
About the suggested sysctl.conf settings: I think you'd also need to adjust net.core.rmem_max and net.core.wmem_max in order for the net.ipv4.tcp_rmem and net.ipv4.tcp_wmem settings to be effective.
Furthermore it couldn't hurt to increase net.core.netdev_max_backlog, which is the maximum number of packets queued on the input side, when the interface receives packets faster than kernel can process them.
Thanks for the feedback!
How many did you get running?
1) If you have lots of short connections and you want to tune the amount of time that the kernel will keep half-closed connections around then you can play around with changing the values of net.ipv4.tcp_fin_timeout, net.ipv4.tcp_tw_reuse, net.ipv4.tcp_tw_recycle, and net.ipv4.tcp_max_tw_buckets.
2) If you have a modern NIC then you probably need to tweak the txqueuelen in your ifconfig options.
3) If you are get hits from a large number of random browsers then sometimes setting net.ipv4.tcp_no_metrics_save and net.ipv4.tcp_moderate_rcvbuf to turn off cacheing of flow metrics helps.
4) Increase net.core.somaxconn to increase your listen queue size.
5) If you have a local firewall like iptables in place make sure you increase net.ipv4.ip_conntrack_max, direct your high-traffic ports to the NOTRACK table, and play around with all of the various net.ipv4.netfilter.ip_conntrack_tcp_timeout_* settings.
So, moving a /var/log (not just /var) on separate device connected to distinct controller port is a big deal.
If you're running, say, mail server, you should separate /var/spool and /var/log and /var/db/mysql if any.
Partitioning, serious network card (think Broadcom) and big CPU caches are good things to begin with.
http://news.ycombinator.com/item?id=1755575
Is maximum number of connections that you can reach on largest EC2 instance is the same as on physical server?
Even Oracle providing much more good advices, let alone some individual pros.
Good starting point: http://www.puschitz.com/InstallingOracle10g.shtml
Update: Oh, yes, I understood. Newfags doesn't know what Oracle is. MySQL = RDBMS, I see. ^_^