Posts Tagged cache
Pulire la ARP cache in Linux
Posted by mAx in programmazione, sistemi on 08/09/2010
Dato che in Linux non è previsto un comando che effettua la pulizia della
tabella di ARP, risolviamo il problema alla vecchia maniera:
for i in `awk -F ' ' '{ if \
( $1 ~ /[0-9{1,3}].[0-9{1,3}].[0-9{1,3}].[0-9{1,3}]/ ) \
print $1 }' /proc/net/arp` ; do arp -d $i ; done
Accelaratore PHP – eAccelerator
Qui di seguito un esempio di implementazione di eAccelerator allo scopo di avere una cache di pagine HTML già pronte da fornire a chi le richiede senza dover necessariamente attendere la risposta (generazione della pagina) da parte dell’interprete PHP ogni volta, risparmiando anche cicli di CPU sul server:
Installiamo quanto necessario alla compilazione:
# apt-get install php5-dev build-essential
Scaricare l’archivio del software da internet reperibile su http://www.eaccelerator.net/ oppure:
# wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2
# tar xvfj eaccelerator-0.9.6-rc1.tar.bz2
# cd eaccelerator-0.9.6-rc1
# /usr/bin/phpize
# ./configure
# make
# make install
Creiamo una directory che conterrà le pagine di cache e diamo permessi di lettura scrittura a $pigsANDdogs
# mkdir /var/cache/eaccelerator
# chmod 0777 /var/cache/eaccelerator
Adesso creiamo il file di configurazione:
# nano /etc/php5/conf.d/eaccelerator.ini
e inseriamo al suo interno quanto segue:
extension=”eaccelerator.so”
eaccelerator.shm_size=”16″
eaccelerator.cache_dir=”/var/cache/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
Impostazioni di eAccelerator
eaccelerator.shm_size è il parametro che indica quanta memoria condivisa viene adoperata da eAccelerator per memorizzare la cache php. Il numero è in megabyte quindi eaccelerator.shm_size = “16″ significa attribuire 16 megabyte.
Eseguendo il comando:
cat /proc/sys/kernel/shmmax
Il numero restituito rappresenta la dimensione massima di memoria che un processo può allocare. Dividendolo per 1024 fissa il massimo valore per eaccelerator.shm_size. Ovvero eaccelerator.shm_size non deve mai superare (value di shmmax)/1024.
eaccelerator.cache_dir è la cartella dove eAccelerator salva la cache del codice php.
eaccelerator.enable se ha valore 1 allora eAccelerator è in funzione mentre se è a 0 (zero), il programma è disattivato. Questa funzione è molto utile perché consente di disabilitare temporaneamente la cache magari mentre si testano le performance del codice php appena sviluppato.
eaccelerator.optimizer funziona similmente a eaccelerator.enable; se impostato a 1, eAccelerator ottimizza le pagine mentre a zero l’esecuzione del codice php risulta lenta (come se non fosse in funzione il software).
eaccelerator.debug se attiva crea messaggi informativi nel file di log per il debugging.
eaccelerator.log_file qualora si voglia fare debugging è opportuno indicare dove memorizzare i log generati dal programma. eaccelerator.log_file = “/var/log/apache2/eaccelerator_log” memorizza un file testuale nella directory dei log usata anche da Apache.
eaccelerator.check_mtime assegnando 1 al parametro, eAccelerator controlla che la cache sia aggiornata, se è stata fatta una modifica ad una pagina questa deve essere ricompilata e memorizzata nuovamente. Disabilitando quest’opzione se una pagina già in cache viene modificata è necessario cancellare manualmente la cache per vedere la nuova versione della pagina. Ovviamente è consigliata l’attivazione.
eaccelerator.filter specifica quali file vengono memorizzati nella cache. Per esempio indicando eaccelerator.filter=”*.php”, solo i file con estensione .php saranno trattati dal programma. Con eaccelerator.filter=”!/home*”, eAccelerator non gestisce i file il cui nome contenga la stringa /home seguita da qualsiasi carattere; attenzione però perché un eventuale file /home/utente/script.php non viene processato da eAccelerator in quanto /home compare nel suo nome. Il punto esclamativo indica la non inclusione.
eaccelerator.shm_max indica il numero massimo in byte usati dalla memoria condivisa. Non c’è un limite come c’è per eaccelerator.shm_size. Per limitare la dimensione massima della memoria condivisa a 1 megabyte si può impostare eaccelerator.shm_max=”1M”, anche se è preferibile mettere zero per non restringere la cache. Non ha nulla a che vedere con la massima dimensione di una pagina singola memorizzata.
eaccelerator.shm_ttl quando non c’è più memoria a disposizione di eaccelerator.shm_only le pagine più vecchie, che sono state richieste da prima del valore messo in eaccelerator.shm_ttl, sono cancellate. Mettendo zero le pagine non sono cancellate. Settando eaccelerator.shm_ttl=”600″ il tempo è di 10 minuti (60 sec x 10).
eaccelerator.shm_prune_period simile a eaccelerator.shm_ttl, solo che vengono eliminate le pagine più vecchie.
eaccelerator.shm_only abilita o disabilita la memorizzazione sul disco rigido delle pagine elaborate da eAccelerator. Mettendo eaccelerator.shm_only=”0″ eAccelerator salva le pagine anche sul disco e non solo in memoria. E’ preferibile indicare zero.
eaccelerator.compress attiva la compressione delle pagine per risparmiare memoria. eaccelerator.compress=”0″ lascia le pagine non compresse.
eaccelerator.compress_level indica quanto comprimere le pagine elaborate. Nove è il massimo fattore di compressione.
Pulizia dei pacchetti e files di configurazione in Debian
MI appunto qui di seguito una serie di metodi per tenere il sistema debian pulito da pacchetti non piu’ utilizzati e da files di configurazione imbastarditi:
Deborphan
Il suo scopo è quello di generare una lista di pacchetti `orfani’, ovvero pacchetti che per dipendenza non vengono piu’ utilizzati da nessun software presente sul sistema:
# apt-get install deborphan # deborphan
o si puo’ usare l’opzione –libdevel che crea una lista con le librerie di sviluppo
# deborphan --libdevel
quindi passiamo la lista di pacchetti generata ad apt con:
# apt-get --purge remove `deborphan` # apt-get --purge remove `deborphan --libdev`
File di Configurazione
Con questo comando e’ possibile pulire /etc dai files di configurazione che sono rimasti sul sistema dopo disinstallazioni di pacchetti senza aver utilizzato l’opzione –purge:
# dpkg --purge `COLUMNS=300 dpkg -l | egrep "^rc" | cut -d' ' -f3`
Localepurge
Una volta installato questo software provvede da solo dopo ogni installazione di pacchetti di rimuovere le lingue che non ci interessano
# localepurge
La cache di apt-get
Apt ci mette a disposizione alcuni efficacissimi strumenti per tenere pulita la cache:
# apt-get clean # apt-get autoclean
La cache di apt-build
Lo stesso vale per apt-build:
# apt-build clean-sources # apt-build clean-build # apt-build clean-repository