Linuxi jõudluse suurendamine
Linuxi wõrgutuuning
Kõigepealt parema kiiruse saavutamiseks vajalik. Optimeeritud puhuks, kus mõlemad pooled on gigabiti otsas. Mõju on kohati päris suur, näiteks testi puhul kasvas kiirus 500Mbit/s -> 750 MBit/s võrreldes vaikeväärtustega.
TCP akna mõõdud. Normaaljuhul ei tohiks min väärtust nii suureks keerata (default on 4k) ja max väärtuse veel suuremaks ajamisest pole minu katsetuste põhjal kasu. Ühest küljest konservatiivne ja teisest küljest mitteahistav valik võiks olla 4k <midagi> 2M.
net.ipv4.tcp_rmem = 131072 1048576 2097152 net.ipv4.tcp_wmem = 131072 1048576 2097152 net.core.rmem_default = 1048576 net.core.wmem_default = 1048576 net.core.rmem_max = 2097152 net.core.wmem_max = 2097152
Vastuvõtva järjekorra suurus (saatmisjärjekord seevastu peaks olema lühike, seal on liigne puhverdamine kahjulik)
net.core.netdev_max_backlog = 10000
Need on jällegi gigabitist maksimumi pigistamiseks, tavaolukorras las jäävad pigem sisselülitatuks.
net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_dsack = 0 net.ipv4.tcp_sack = 0
Serveri puhul on suure ühenduste arvu teenindamiseks vaja suuremaks keerata järgmisi asju:
fs.file-max net.ipv4.tcp_max_orphans net.ipv4.tcp_max_tw_buckets
Sõltuvalt masinast
net.ipv4.tcp_mem
Ja kui iptablesi reeglid on conntracki käima tõmmanud siis ka
net.netfilter.nf_conntrack_max
Lisaks veel, interruptide sidumise konkreetse tuuma külge teeb tavaliselt ära irqbalance, ise kruvimise huvi korral saab seda /proc/irq kaudu. Protsesside sidumiseks tuumaga on käsud taskset ja schedtool -- viimane oskab ka palju muud huvitavat.
http://www.twam.info/linux/changing-scheduling-parameters-in-linux
The default is to run a process on all CPUs, giving a mask of
0xf for all 4 CPUs 0xff for all 8 CPUs
# schedtool -a 0xff <PID> # schedtool -a 0xff -e /path/to/app arg1 arg2 argN