Monthly Archives: May 2011

lighttpd: attiviamo la compressione

MicroServer, il mio home-server che eroga i servizi web, è connesso alla WAN attraverso una line ADSL. Questa tecnologia, assimetrica, comporta velocità di upload abbastanza limitate (384 Kbit/s nel caso in esame): negli ultimi tempi, con un uso intenso di css e js (che arrivano anche a 200KB) nelle applicazioni web, questa limitazione è diventata ancora più evidente.

Per ovviare è possibile utilizzare la compressione trasparente delle pagine (ma non solo) lato webserver; a patto che il browser supporti la decompressione “on-the-fly” (ormai qualsiasi browser degno di tal nome la supporta) è possibile ridurre notevolmente la banda necessaria. Lo scotto è la necessità di un po’ più di potenza di calcolo, ma d’altro canto mai nel passato abbiamo avuto a disposizione tanta potenza a buon mercato.

Per attivare la compressione dei contenuti statici attraverso lighttpd è sufficiente abilitare il supporto e definire quali MIME comprimere (principalmente quelli testuali):

creiamo il file compress.conf in /etc/lighttpd/conf.d

server.modules += ( "mod_compress" )
 
compress.allowed-encodings = ("bzip2", "gzip", "deflate")
compress.filetype = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml")

Per attivare la compressione dei contenuti dinamici generati dall’interprete php è sufficiente attivare il supporto a zlib nel file php.ini

zlib.output_compression = On

Al termine riavviamo i servizi

bash$ service lighttpd restart

Riferimenti:

http://redmine.lighttpd.net/projects/lighttpd/wiki#Documentation

KVM: nested virtualization

Se si possiede un processore AMD con supporto alla virtualizzazione è possibile attivare la nested virtualization di KVM che permette di esporre le istruzioni di virtualizzazione al guest. Questo permette ad esempio di usare KVM, Xen, Hyper-V […] dentro una macchina virtualizzata con KVM, molto utile per i test.

Ecco come fare

  1. Per prima cosa verificare che il processore sia un AMD e che supporti la virtualizzazione
    cat /proc/cpuinfo |grep svm
    flags           : [...] svm [...]
  2. Caricare il modulo kvm_amd con in supporto nested abilitato
    modprobe kvm_amd nested=1
  3. Creare uno script wrapper per qemu-kvm in /usr/local/bin/qemu-kvm-nested
    #!/bin/bash
    /usr/bin/qemu-kvm -enable-nesting $*
  4. Modificare (o prima creare se è necessario) il file xml della macchina virtuale utilizzando virsh edit e sostituendo
    <emulator>/usr/bin/qemu-kvm</emulator>

    con

    <emulator>/usr/local/bin/qemu-kvm-nested</emulator>
  5. Lanciare la macchina virtuale
    [root@cloud ~]# cat /proc/cpuinfo
    processor       : 0
    vendor_id       : AuthenticAMD
    cpu family      : 6
    model           : 2
    model name      : QEMU Virtual CPU version 0.13.0
    stepping        : 3
    cpu MHz         : 1297.873
    cache size      : 512 KB
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 4
    wp              : yes
    flags           : fpu de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx lm up unfair_spinlock pni cx16 popcnt hypervisor lahf_lm svm abm sse4a
    bogomips        : 2595.74
    TLB size        : 1024 4K pages
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 40 bits physical, 48 bits virtual
    power management:


Esempio di CloudStack (richiede supporto a KVM) installato su RHEL6 all’interno di una VM KVM ospitata dal MicroServer

Gnome 3: gli stumenti indispensabili

Il 6 aprile 2011 è (finalmente?) uscito Gnome 3: l’idea di desktop è stata in buona parte rivoluzionata; devo dire che tuttavia sul netbook non è così male la nuova impostazione.

La prima impressione che ho avuto con Gnome 3 è stata l’impossibilità di accedere a molte impostazioni per personalizzare almeno un poco il comportamento del desktop: infatti il pannello di controllo, almeno attualmente, molto limitante nella configurazione.

Tuttavia esistono due tool, a mio dire indispensabili, che permetto di aggirare parzialmente questo limite.
Essi sono:

gnome-tweak-tool


E’ una gui molto semplice per abilitare e/o modificare alcuni comportamenti e caratteristiche di base.

dconf-editor

Sostituisce il vecchio gconf-editor e permette una gestione più completa e raffinata delle impostazioni.

Per installarli, su Fedora 15 (beta), è sufficiente usare yum

yum install -y dconf-editor gnome-tweak-tool

Personalmente ho fatto le seguenti modifiche

  • Attivata la data a fianco dell’orologio
  • Attivato il pulsante di minimizzazione delle finestre
  • Attivato il pulsante “power-off” nel menu utente (tramite il pacchetto gnome-shell-extensions-alternative-status-menu)