Linux: come individuare la frequenza del kernel timer degli interrupt

Per individuare nel kernel in esecuzione la frequenza del timer degli interrupt va usato il comando:

[email protected]:~$ grep HZ /boot/config-`uname -r`
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ=y
CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_MACHZ_WDT=m

I valori che ci interessano sono quelli di CONFIG_HZ= e CONFIG_HZ_valore=, che nel mio caso sono settati a 1000.
Qualora sia presente la voce CONFIG_NO_HZ allora siamo in presenza di un kernel tickless dove la generazione degli interrupt avviene on-demand e non ad intervalli predefiniti di tempo.
Nel mio caso, essendo definito anche il valore CONFIG_NO_HZ_IDLE, ho un kernel in cui la generazione degli interrupt è mista: on-demand se il processore è idle e ogni 1000Hz se il processore è sotto carico.

 

Linux e XFS: come controllare la frammentazione del filesystem e deframmentarlo

Per gestire le partizioni XFS in Linux è necessario il pacchetto xfsprogs, mentre il pacchetto opzionale xfsdump contiene alcune preziose utility per controllare la frammentazione del filesystem e dei file.

Per verificare lo stato di frammentazione di un filesystem XFS lanciare il comando xfs_db e verificare il valore fragmentation factor:

# xfs_db -c frag -r mount_point
actual 288787, ideal 286616, fragmentation factor 0,75%

Nel mio caso il valore è molto basso, non è quindi necessario riorganizzare il filesystem.

E’ possibile controllare la frammentazione anche solo di singoli file, tramite il comando xfs_db:

# xfs_bmap -v nome_file_frammentato
nome_file_frammentato:
 EXT: FILE-OFFSET          BLOCK-RANGE          AG AG-OFFSET                 TOTAL
   0: [0..524159]:         499404728..499928887  1 (134240184..134764343)   524160
   1: [524160..2097023]:   504064368..505637231  1 (138899824..140472687)  1572864
   2: [2097024..27320671]: 542998144..568221791  1 (177833600..203057247) 25223648

In questo caso nome_file_frammentato ha 3 frammenti (extents).

Nel caso in cui invece il fragmentation factor sia consistente, io considero consistenti valori >= 20%, per deframmentare un filesystem XFS lanciare il comando:

# xfs_fsr -v -t 600 mount_point

oppure per deframmentare un singolo file:

# xfs_fsr -v nome_file_frammentato

 

Windows7: ottimizzare il sistema operativo per utilizzo in un virtualizzatore (GuestVM)

Una serie di consigli su come ottimizzare Windows7 per essere utilizzato come GuestVM: un sistema operativo ottimizzato è più veloce e responsivo, occupa meno risorse e ci permette di lavorare più efficacemente.

  • disabilitare i servizi di Windows non necessari;
  • disinstallare le funzionalità di Windows non necessarie (es. “Componenti TabletPC”);
  • utilizzare il profilo energetico “Prestazioni elevate”: sarà compito del virtualizzatore gestire gli idle-state ed il throttling della vCpu;
  • disattivare la sospensione (Sleep) del sistema operativo: non vogliamo occupare la RAM / HD del nostro host con una VM in sospensione, vero?;
  • disattivare il System Restore e cancellare i punti di ripristino: è nettamente più comodo e flessibile lavorare con le snapshot dell’intera VM, ed in caso di bisogno è molto più veloce ripristinarle;
  • disattivare tutti gli effetti grafici, regolando le impostazioni in modo da ottenere prestazioni migliori;
  • eseguire l’utility Pulitura Disco per rimuovere i file temporanei, i file di backup del Service Pack e di Windows Update;
  •  eseguire l’utility Deframmentazione Disco per consolidare e riorganizzare i file frammentati;
  • disattivare l’esecuzione automatica dell’utility Deframmentazione Disco: non vogliamo che una VM in idle inizi improvvisamente a deframmntare il disco;
  • disattivare il timestamping su filesystem dell’ultimo accesso ai file tramite fsutil con il comando:
    fsutil behavior set disablelastaccess 1
  • aumentare il valore del timeout sugli HD tramite regedit, modificando TimeOutValuea “190” (decimale) in:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Disk
  • aumentare la memoria della scheda video virtuale a 128MB;
  • disabilitare IPv6, a meno che non sia necessario usarlo;

VMware vSphere: come avviare o arrestare le VM remotamente da riga di comando

In situazioni di emergenza, è molto comodo usare SSH (sempre che abbiate precedentemente attivato il servizio) per collegarsi ad un host vSphere ed avviare o arrestare le VM: per fare questo ci viene in aiuto il potente tool vim-cmd.

Per prima cosa enumeriamo tutte le VM presenti sul host ed individuiamo il VMID della VM che ci interessa:

vim-cmd vmsvc/getallvms

Per precauzione verifichiamo lo stato della VM:

vim-cmd vmsvc/power.getstate VMID

Per avviare la VM lanceremo il comando:

vim-cmd vmsvc/power.on VMID

Per arrestare, cioè eseguire uno shutdown “pulito,” la VM (a patto che abbia a bordo i Vmware Tools), lanciare il comando:

vim-cmd vmsvc/power.shutdown VMID

In caso il sistema operativo della VM non risponda più ai comandi di shutdown, è possibile “staccare brutalmente la spina” e terminare la VM con il comando:

vim-cmd vmsvc/power.off VMID

 

Windows Server: come collegarsi alla sessione console del server (sessione 0) via RDP

Tramite RDP è possibile collegarsi remotamente ai server Windows per visualizzarne il desktop come se fossimo fisicamente di fronte al monitor collegato al server.
In realtà queste sessioni RDP, di norma, sono sessioni virtuali e non quello che effettivamente vedremmo sullo schermo del monitor.

E’ possibile però istruire RDP per collegarsi non ad una sessione virtuale bensì alla cosiddetta “sessione 0”, cioè la sessione vera e propria della console del server attiva al momento, lanciando il client RDP mstsc.exe con la seguente riga di comando:

mstsc.exe /ADMIN /v:nome_server

Attenzione!!
Se si utilizzano versioni meno recenti del client RDP (per esempio quelle fornite con WindowsXP, Windows2003 e precedenti), la sintassi per collegarsi alla console è differente: è necessario usare lo switch /console al posto di /admin

 

AIX: come capire ed identificare la versione, la TL e il SP del sistema operativo

Spesso può essere utile sapere su quale versione e release del sistema operativo si sta mettendo mano: su AIX abbiamo a disposizione il comando oslevel.
Lanciando il comando:

# oslevel -s

il sistema ci restituirà una stringa che contiene le specifiche complete del OS sotto forma di numeri, ad esempio:

5300-12-06-1216

Interpretare questi valori è facile:

  • le prime quattro cifre 5300 indicano la major release di AIX, in questo caso si tratta di AIX 5.3;
  • le successive due cifre 12 indicano l’aggiornamento della Technology Level (TL), in questo caso TL12;
  • le successive due cifre 06 indicano la release del Service Pack installato, cioè il SP6;
  • le ultime quattro cifre 1216 indicano l’anno e la settimana di rilascio del SP installato (YYWW), in questo caso 2012 sedicesima settimana;