Performancing Metrics

solutioncafe IT

Il System Architect è il punto di unione tra IT, processi aziendali, e esigenze del cliente

apr
2010
4

In questi giorni, avendo un pochino di tempo a disposizione mi sono deciso a dedicarne una parte al blog che da un po’ di tempo giaceva abbandonato.
Mentre davo un’occhiata alle statistiche generate da “Statpress” ho notato che i dati venivano estratti con estrema lentezza e nonostante il server sul quale risiede attualmente Mysql non sia un fulmine (devo decidermi a mettere in produzione la nuova VM) non era sicuramente una situazione “accettabile”.
Fatta una piccola analisi alla tabella di Statpress (wp_statpress) ho notato un indice solo sul campo “id” che da un’occhiata veloce al codice del plugin sembra anche essere inutile, anzi un indice sul campo “date” e sul campo “time”, seppur contenente valori non univoci, avrebbe giovato.
Ho provveduto quindi alla creazione degli indici.

Per il campo “date”:

mysql>ALTER TABLE wp_statpress ADD INDEX wp_statpress_date_idx (date(8));

Per il campo “time”:

mysql>ALTER TABLE wp_statpress ADD INDEX wp_statpress_time_idx (time(8));

Per verificare:

mysql>desc wp_statpress;

Risultato: Un quarto, circa, del tempo precedente per estrarre le statistiche.

Tag:

Scrivi un commento

feb
2009
23

Uno dei principali tool messi a disposizione all’amministratore di MySQL per effettuare il backup dei dati è mysqldump.
mysqldump è molto versatile, permette di effettuare backup in formato ASCII contenenti le istruzioni SQL dal quale è possibile ripristinare il database da zero oppure, apportandone semplici modifiche, ripristinare la singola tabella.
Un altro vantaggio dei backup creati con mysqldump è rappresentato dal fatto che possono essere ripristinati su piattaforme diverse dall’originale.
Di seguito ecco illustrato uno script per effettuare il backup di tutti i database MySql del vostro server Linux.

#!/bin/bash

ADMINUSER="backup"
ADMINPASS="password"
SERVERNAME=`uname -n`

MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
MUTT="$(which mutt)"
GZIP="$(which gzip)"

NOW=`date +%Y%m%d%H%M`
DUMPDIR=/opt/dumpdb
MAILINGLIST=mysql@vostrodominio.it

RETVAL=0

# SKIPPED BACKUP LIST
SKIP=""

[ ! -d $DUMPDIR ] && mkdir -p $DUMPDIR || :

$CHOWN root.root -R $DUMPDIR
$CHMOD 0600 $DUMPDIR

DBLIST="$($MYSQL -u $ADMINUSER -h $SERVERNAME -p$ADMINPASS
-Bse 'show databases')"

for db in $DBLIST
do
        skipdb=-1
        if [ "$SKIP" != "" ]
        then
                for i in $SKIP
                do
                        [ "$db" == "$i" ] && skipdb=1 || :
                done
        fi

        if [ "$skipdb" == "-1" ]
        then
                FILE="$DUMPDIR/$db.sql.$SERVERNAME.$NOW.gz"
                $MYSQLDUMP -u $ADMINUSER -h $SERVERNAME
-p$ADMINPASS $db | $GZIP -9 > $FILE
                RETVAL=$?
                if [ $RETVAL -eq 0 ]
                then
                 # Cancella i file con data superiore a 7 GG
                 find $DUMPDIR -name $db.sql.$SERVERNAME.*
-mtime +7 \! -type d -exec rm -f {} \;

                        $MUTT -s "Dump database $db on
$SERVERNAME --> OK" -a $FILE $MAILINGLIST < /dev/null
                else
                        $MUTT -s "Dump database $db on
$SERVERNAME --> FALLITO"  $MAILINGLIST < /dev/null
                fi
        fi
done
Tag:

Scrivi un commento

mag
2008
14

In questi giorni ho deciso di pubblicare un mio sito web e su suggerimento di un mio carissimo amico ho deciso di optare per un nuovo CMS: Silverstripe.
Così come mi aveva anticipato il mio suggeritore, Silverstripe è meno potente del più diffuso Joomla, ma per coloro che non hanno esigenze particolari e necessitano di modificare\implementare CSS in maniera più semplice è sicuramente la scelta più azzeccata.
Scrivo questo post perchè ho “litigato” un pò con la messa a punto della configurazione del web server e spero che la mia esperienza possa tornarvi utile per farvi risparmiare un pò di tempo. Per le istruzioni dell’installazione di Silverstripe indicherò in seguito i riferimenti ufficiali.

La configurazione che ho adottato per il web server è la seguente:

  • Centos 4.4 – Installazione minimal aggiornata con yum
  • Apache 2.2
  • Php 5.2
  • MySql 5.0.5

Di seguito la procedura che ho utilizzato per l’installazione.

Ho installato il sistema operativo in configurazione minimal e successivamente ho utilizzato Yum per l’aggiornamento utilizzando l’opzione –enablerepo per scaricare gli aggiornamenti dai repository di Centos:

yum –enablerepo=centosplus update

Al termine dell’update ho proceduto al download dei sorgenti e degli RPM che Silverstripe richiede come requisiti:

httpd-2.2.8.tar.gz
php-5.2.6.tar.gz
MySQL-client-community-5.0.51a-0.rhel4.i386.rpm
MySQL-devel-community-5.0.51a-0.rhel4.i386.rpm
MySQL-server-community-5.0.51a-0.rhel4.i386.rpm
MySQL-shared-compat-5.0.51a-0.rhel4.i386.rpm

Prima di procedere alla compilazione dei pacchetti appena citati, ho installato gli strumenti che mi permattano la compilazione stessa:

yum install libgcc libgc-c++ ncurses-devel xml2

…e poi ho compilato….

tar zxvf httpd-2.2.8.tar.gz
cd httpd-2.2.8
./configure –prefix=/usr/local/apache2.2 –enable-modules=most
make
make install

tar zxvf php-5.2.6.tar.gz
cd php-5.2.6
./configure –prefix=/usr/local/php5.2 –with-apxs2=/usr/local/apache2.2/bin/apxs –with-config-file-path=/usr/local/apache2.2/php5.2 –with-mysql –with-gd –with-zlib –with-jpeg-dir –with-png-dir –with-openssl –with-tiff-dir –with-mysqli
make
make install

E’ possibile che durante la compilazione si verifichino degli errori dovuti alla mancanza di alcuni pacchetti nel sistema operativo, ma in quel caso gli errori sono estremamente comprensibili e Yum si conferma una gran bella invenzione.

Ora è la volta di MySql, ma qui ho utilizzato gli RPM scaricati da MySql e ho proceduto come di seguito…

rpm -iUh MySQL-client-community-5.0.51a-0.rhel4.i386.rpm MySQL-devel-community-5.0.51a-0.rhel4.i386.rpm MySQL-server-community-5.0.51a-0.rhel4.i386.rpm MySQL-shared-compat-5.0.51a-0.rhel4.i386.rpm

Una volta installato e startato il servizio del nostro DB ho configurato l’accesso con la seguente istruzione:

mysqladmin -u root password “password”

per testare che l’operazione sia andata a buon fine accedo al DB…

mysql -u root -p
“password”

Se riuscite ad entrare in MySQL vuol dire che la configurazione è andata a buon fine.

Ora non vi resta che scaricare Silverstripe.
Un consiglio che mi sento di suggerirvi, frutto del lavoro di alcune notti, è quello di scaricare silverstripe-v2.2.2-rc3.tar.gz invece della silverstripe-v2.2.1.tar.gz. Quest’ultima anche se definita stabile, ha diversi bug nei files di configurazione che impediscono una installazione in ambiente in cui non sono utilizzate le installazioni di default e navigando non si trovano molte soluzioni ai problemi che ho riscontrato.

Per “attivare” il nostro cms procediamo come segue:

tar zxvf silverstripe-v2.2.2-rc3.tar.gz
mv silverstripe-v2.2.2-rc3 silverstripe
cp silverstripe /usr/local/apache2.2/htdocs

e (come anticipato ad inizio post) seguire il tutorial sul sito di silverstripe il quale è estremamente chiaro ed esauriente.

In linea di massima tuttodovrebbe funzionare correttamente, ma in ogni caso sono qui per ricevere\dare consigli sulla ottimizzazione della configurazione, del resto come disse uno famoso (forse il mio compagno di banco??) “nessuno nasce imparato!”.

Tag:

Scrivi un commento

Banner