General Optimization


File /etc/profile

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]#


Parametri in /etc/sysctl.conf

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)


Eliminare riferimento a NIS

nel file /etc/nsswitch.conf


File /root/.bashrc

verificare ulimit -a

aggiungere

ulimit -u unlimited -n 90000

verificare nuovamente ulimit -a

parametro -u :

parametro -n :


ATIME e NOATIME

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


Partizione di swap

meglio posizionarla all'inizio del disco, e magari su un disco diverso


HDPARM per dischi IDE

/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


Aumentare il numero di connessioni tramite /etc/sysctl.conf

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