Posts Tagged cache

Pulire la ARP cache in Linux

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

Share

, ,

No Comments

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.

Share

, , , ,

1 Comment

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


Share

, , , , , , , ,

No Comments