Brendan Gregg seems to have worked extensively on extracting maximum performance on all major UNIX kernels ( FreeBSD, Linux, Solaris ) out in the real world. If he writes an essay around performance of these kernels, I feel it will be very close to the true state of the affairs.
Ironically, a swappiness of 0 may be detrimental to the health of software running on a VM, as it severely limits what may be swapped out of memory. This means that the OOM killer ends up being more aggressive against the processes on your system.<p>A better value is one of "2" - this allows the Kernel to swap out data in response to memory pressure, without being overly aggressive about it.
Slideshare is very annoying, when you are trying to get the PDF.<p>First it tells you that you must sign-up sign-in with Linked-In or Facebook. Then after finding a non Linked-In or Facebook sign-up, I need to enter my phone-number to get a link as SMS.<p><i>SIGH</i>
Note: there is some justification in the slides; the article itself just lists the "recommendations" outright.<p>(from the article)<p>> net.ipv4.tcp_tw_reuse = 1<p>(from the man page)<p>> Allow to reuse TIME_WAIT sockets for new connections when it is safe from protocol viewpoint. It should not be changed without advice/request of technical experts.<p>Why? Are sockets in TIME_WAIT a problem somehow?<p>> net.ipv4.ip_local_port_range = 10240 65535<p>Again, why? My understanding is that this controls the range of ports that the kernel selects from for new sockets; e.g., if you make a TCP connection to google.com on port 443, on _your side_ the connection is <your ip> : <a port from that range>; the default range is [32768, 61000], and this is per destination IP. (You can have two connections to two separate IPs with the same local port.) The default range is nearly 30k ports wide. Are you opening >30k connections to a single host?<p>> In the talk I described these tunables as our medicine cabinet, and to "consider these best before 2015".<p>Does that not mean that these are expired now? (This article was written today, though?)
I don't seem to see a mention of the file descriptor limit. As recently as last year the default on Ubuntu was 2048 iirc, which is laughable given that it was 2014.<p>I guess it's not strictly performance related, but should definitely be one of the first parameters to tune.<p><pre><code> # in in /etc/sysctl.conf:
fs.file-max = 100000
# then:
sudo sysctl -p
# in /etc/security/limits.conf
* soft nofile 100000
* hard nofile 100000
# then:
ulimit -n 100000
</code></pre>
(tweak the exact number as required)