1) ottimizzazione compilatore per processore:
-O9 per x686
-fomit-frame-pointer usa stack per variabili ma non funziona piu' il debugger
processore | CFLAGS= |
i686 pentiumpro pentium2 pentium3 | CFLAGS='-O9 -funroll-loops -ffast-math -malign-double
-mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer
-fno-exceptions' |
i586 pentium | CFLAGS='-O3 -march=pentium -mcpu=pentium -ffast-math
-funroll-loops -fomit-frame-pointer -fforce-mem -fforce-addr
-malign-double -fno-exceptions' |
i486 | CFLAGS='-O3 -funroll-all-loops -malign-double -mcpu=i486
-march=i486 -fomit-frame-pointer -fno-exceptions' |
Spiegazione delle opzioni:
2) aggiungere CFLAGS LANG LESSCHARSER alla linea contenente EXPORT
export PATH PS1 HOSTNAME HISTSIZE USER LOGNAME MAIL INPUTRC
CFLAGS LANG LESSCHARSET
3) attivare le modifiche con logout e login
4) verificare che egcs sia installato:
[root@maalox /root]# egcs --version
egcs-2.91.66
[root@maalox /root]#
1) testo da inserire in /etc/sysctl.conf
# modifica performance filesystem
vm.bdflush = 100 1200 128 512 15 5000 500 1884 2
# modifica performance virtual memory
vm.buffermem=80 10 60
# modifica range porte ip
net.ipv4.ip_local_port_range= 32768 61000
# numero di handles per files aperti
fs.file-max=8192
# numero di inode aperti
fs.inode-max=32768
2) attivare riavviando network: /etc/rc.d/init.d/network restart
3) spiegazione e commenti ai parametri indicati
parametro bdflush
default= "40 500 64 256 500 3000 500 1884 2"
spiegazione a pag.76
spiegazione su /usr/src/linux/Documentation/sysctl/vm.txt
parametro buffermem
default= "2 10 60"
spiegazione a pag.77
spiegazione su /usr/src/linux/Documentation/sysctl/vm.txt
parametro ip_local_port_range
default= "1024 4999"
parametro file-max
num. max di file handles allocabili dal kernel
default= "4096"
consigliato= 256 per ogni 4M di RAM ( 128M = 8192 )
parametro inode-max
max. numero di inode handlers
default= 16384
consigliato= 3 o 4 volte il parametro file-max (es. 8192 x 4 = 32768)
nel file /etc/nsswitch.conf
verificare ulimit -a
aggiungere
ulimit -u unlimited -n 90000
verificare nuovamente ulimit -a
parametro -u :
parametro -n :
ATIME: {spiegazione}
per cambiare un file:
chattr +A filename
per cambiare una directory+contenuto:
chattr -R +A path
Non serve sulle directory:
chattr -R +A /var/spool/
chattr -R +A /cache
chattr -R +A /home/httpd/www
NOATIME: {spiegazione} - opzione di mount su partizioni complete
es. per partizione montata su /chroot modificare /etc/fstab
/dev/sda7 /chroot ext2 rw,noatime 0 0
meglio posizionarla all'inizio del disco, e magari su un disco diverso
/sbin/hdparm
Parametri | |
-c 1 | abilita I/O a 32bit su bus PCI |
-d 1 | abilita DMA |
-d 1 -X 34 | abilita multiword DMA modo 2 |
-d 1 X 66 | abilita UltraDMA modo2 |
-m {settori} | usa multisector mode
Per leggere valore da usare: hdparm -i ed usare parametro MaxMultSect= |
verificare con hdparm -t e con hdparm -T
Una volta trovati i parametri corretti, inserirli in /etc/rc.d/rc.local e riavviare
diminuendo il tempo di default
# diminuisce il tempo di default per tcp_fin_timeout
net.ipv4.tcp_fin_timeout=30
# diminuisce il tempo di default per keepalive connection
net.ipv4.tcp_keepalive_time=1800
# spegne window scaling
net.ipv4.tcp_window_scaling=0
# spegne tcp sack
net.ipv4.tcp_sack=0
# spegne tcp_timestamps
net.ipv4.tcp_timestamps=0
e poi /etc/rc.d/init.d/network restart