Miglioramento delle prestazioni per le copie di riserva di TSM (Tivoli Storage Manager)

In questo scenario, verrà identificato e risolto un problema relativo alle prestazioni del sistema che potrebbe aumentare il tempo necessario per le copie di riserva mediante TSM (Tivoli Storage Manager).

L'ambiente dello scenario è formato da due sistemi: la macchina client TSM utilizzata come server di database e un server per le copie di riserva TSM. La macchina client è collegata al server per le copie di riserva TSM con un collegamento Ethernet punto-punto, in esecuzione a 1 GB al secondo. L'applicazione backint, un programma per la copia di riserva TSM a più thread per ambienti di database SAP, viene eseguito sul client mediante le API di copia di riserva TSM.

Una volta eseguito l'aggiornamento delle macchine server e client TSM da AIX 4.3.3 livello di manutenzione 04 a livello di manutenzione 09 e l'aggiornamento dalla versione TSM 3 alla versione TSM 4, il periodo di tempo per eseguire la copia di riserva del database sul client mediante l'applicazione backint passa da 7 ore a 15 ore.

Per stabilire la causa del peggioramento delle prestazioni e migliorare le prestazioni per le copie di riserva TSM, attenersi alla seguente procedura:

  1. Verificare la capacità di elaborazione della rete utilizzando i comandi ftp e dd dalla macchina client TSM. Eseguire un trasferimento da memoria a memoria per eliminare le operazioni su disco nel client o nel server eseguendo questo comando:
    # ftp <nomehost_server_TSM>
          ftp> bin
          ftp> put "| dd if=/dev/zero bs=32k count=10000" /dev/null
    In questo scenario, l'emissione del comando ftp e dd ha rilevato una capacità di elaborazione di rete di circa 81 MB al secondo, che indica che la rete non rappresenta un problema. (Se la rete fosse stata un problema lo strumento netstat sarebbe stato il successivo passo logico da eseguire).
  2. Verificare le funzioni del programma per le copie di riserva del client, utilizzando l'applicazione backint come segue:
    1. Esaminare i parametri utilizzati dall'applicazione per verificare come funziona e interagisce con AIX. In questo scenario, l'applicazione backint ha utilizzato la chiamate read() sequenziali di 128 k ciascuna per visualizzare i dati dal disco alla macchina client.
    2. Durante l'esecuzione dell'applicazione backint, utilizzare il comando ps -eflm per stabilire se l'applicazione è a singolo thread o a più thread. L'emissione del comando ps restituisce una riga di emissione per ciascun thread di un processo. L'applicazione backint è un'applicazione a più thread e il numero di thread è ottimizzabile. Ciascun thread esegue la lettura da un file diverso di cui è necessario eseguire la copia di riserva e tutti i dati vengono inviati al server TSM per essere scritti sul nastro.
  3. Ottimizzare AIX per far corrispondere le funzioni dell'applicazione come segue:
    1. Utilizzare il comando vmtune (/usr/samples/kernel/vmtune è parte del sottopacchetto bos.adt.samples) per convertire la quantità di dati effettivamente letta dal disco da AIX in una singola I/E, quando l'applicazione esegue chiamate read() sequenziali.

      In questo scenario, il parametro vmtune è maxpgahead -R in quanto i file sono stati memorizzati in un sistema di file JFS (journaled file system) e non in un sistema di file JFS avanzato (JFS2). Il valore assunto per questo parametro è 8, che indica la lettura di un massimo di otto blocchi da 4 KB (32 KB totali) di dati presenti nella memoria con una singola operazione I/E. Poiché l'applicazione backint richiede la visualizzazione di 128 KB su ciascuna chiamata read(), utilizzare il comando di seguito riportato per indicare al sistema AIX di leggere 128 KB in una singola operazione I/E, quando vengono eseguite operazioni read() sequenziali:

      vmtune -R 32
    2. Utilizzare i comandi iostat 1 e vmstat 1 per controllare la macchina client. Durante l'esecuzione di una copia di riserva, immettere il seguente comando:
      iostat 1
      vmstat 1
      In questo esempio, l'elenco di pagine disponibili in AIX (freelist = colonna disponibile nell'emissione del comando vmstat) è talvolta quasi pari a zero. Se il freelist presenta un valore troppo ridotto, il funzionamento di AIX non è regolare.
    3. Utilizzare il comando vmtune -f minfree -F maxfree per aumentare le dimensioni minime e massime del freelist che AIX tenta di mantenere. Le formule per stabilire i valori minfree e maxfree sono:
      minfree = 120 moltiplicato per il numero di processori (in questo caso 12) o [120*12]

      e

      maxfree = 120 + maxpgahead (32) moltiplicato per il numero di processori o [(120 + 32)*12].

      Ottimizzare AIX eseguendo questo comando:

      vmtune -f 1440 -F 1824
    4. Utilizzare di nuovo i comandi iostat 1 e vmstat 1 per controllare un'altra sessione della copia di riserva. In questo scenario, il freelist è risultato appropriato e la capacità di emissione è migliorata in modo evidente, tanto che per la copia di riserva sono necessarie ora solo 8 ore.
  4. Eseguire di nuovo l'ottimizzazione dell'applicazione, se possibile, utilizzando i comandi iostat 1 e vmstat 1 per controllare un'altra sessione della copia di riserva.
Nota:
Nel passo 3d illustrato sopra, i dati iostat mostrano che cicli supplementari del processore e una larghezza di banda del disco sono ancora disponibili, per cui i parametri dell'applicazione backint sono stati modificati per aggiungere un altro thread contemporaneo durante la copia di riserva.

Il tempo necessario per eseguire la copia di riserva è stato ridotto a 7 ore.

Ulteriori informazioni

I comandi iostat, netstat, ps, vmstat e vmtune in AIX 5L Version 5.2 Commands Reference.