Regolazione parametri OS/2 − OS/2 Performance Tuning Tips Roberto Sozzani Regolazione parametri OS/2 − OS/2 Performance Tuning Tips Tabella dei contenuti Ottimizzazione parametri OS/2......................................................................................................................................1 Indice.....................................................................................................................................................................1 1. Regolazione parametri della Cache dell'Hard Disk...........................................................................................1 1.1 Partizioni HPFS...............................................................................................................................................1 1.2 Partizioni FAT.................................................................................................................................................2 2. Considerazioni sul File di Swap........................................................................................................................3 3. Parametri relativi al Multitasking......................................................................................................................3 3.1 Controllo della priorità di un'applicazione......................................................................................................3 3.2 Controllo dei Threads.....................................................................................................................................4 3.3 Object Snooze Time........................................................................................................................................4 i Ottimizzazione parametri OS/2 Autore: Micho Durdevich Data: 18/12/2001 Revisione: 1.0 Progetto: PIDO/2 Traduzione: Roberto Sozzani Indice 1. Regolazione parametri della Cache dell'Hard Disk 1. Partizioni HPFS 2. Partizioni FAT 2. Considerazioni sul File di Swap 3. Parametri relativi al Multitasking 1. Controllo della priorità di un'applicazione 2. Controllo dei Threads 3. Object Snooze Time 1. Regolazione parametri della Cache dell'Hard Disk 1.1 Partizioni HPFS I parametri base sono controllati dalla seguente istruzione nel CONFIG.SYS: IFS=X:\OS2\HPFS.IFS /CACHE:x [/force] [/quiet] /CRECL:y /AUTOCHECK:zzz Dove X è la lettera della partizione di boot e: x = Dimensione della RAM, in kilobytes, utilizzata per la cache HPFS. y = La dimensione massima di ogni singolo blocco nella cache. I valori possibili variano da 2K a 64K. zzz = Lista delle partizioni HPFS su cui verrà effettuato automaticamente il CHKDSK (con l'opzione /F), nel caso il sistema non venga spento correttamente. Se si fa precedere una lettera di partizione dal segno "+", questa partizione verrà controllata ad ogni avvio del sistema. Lo switch opzionale /force (non documentato), permette l'accesso immediato ad una partizione HPFS impropriamente arrestata, senza eseguire il CHKDSK /F su di essa (questo drive non appare nella lista /AUTOCHECK). Lo switch /quiet disabilita i messaggi di errore. Non deve essere utilizzato come ultimo parametro della riga IFS. Ottimizzazione parametri OS/2 1 Regolazione parametri OS/2 − OS/2 Performance Tuning Tips La regolazione "fine" della cache HPFS si ottiene con il comando CACHE. Questi i vari switch per questa istruzione: /diskidle:x Stabilisce il tempo, in millesecondi, in cui il disco resterà "idle" (inattivo), prima che i dati nella cache possano essere scritti. Il valore di default è 1000. /maxage:y Stabilisce il tempo massimo, in millisecondi, prima che un blocco nella memoria cache venga scritto su disco. Il valore di default è 5000. /bufferidle:z Determina il tempo minimo, in millesecondi, che deve passare prima che un buffer nella cache possa essere scritto su disco. Il default è 500. /dirtymax:u Definisce il massimo numero consentito di buffer non scritti nella cache. Quando questo numero viene raggiunto, tutti i buffers non scritti vengono cancellati. /writecache:v Stabilisce la dimensione massima (in bytes) di un blocco di dati che può essere inserito nella memoria cache. Di default ha la dimensione di 64*1024. /readahead:0/1 Abilita o disabilita le operazioni "read−ahead". /dstg:on Abilita il display per esteso dello stato della cache (incluso /writecache e /dirtymax). /lazy:ON/OFF Questa istruzione, per sua natura, deve essere data con un comando CACHE separato. Abilita e disabilita la cache HPFS. Se settata su n, abilita esattamente per n volte il lazy writing. L'istruzione CACHE può essere eseguita da una riga di comando in finestra OS/2 o dal CONFIG.SYS, attraverso uno o più comandi RUN. (Torna all'Indice) 1.2 Partizioni FAT La sintassi dell'istruzione CACHE per le partizioni FAT è: DISKCACHE=x, LW, T, AC:zzz ove LW indica le operazioni di lazy−write della cache. Se viene omesso, si ha l'immediata scrittura della cache sul disco. T rappresenta la dimensione limite del numero di settori FAT che possono essere inseriti in cache, ed il suo valore deve essere compreso tra 4 e 128. Il valore di default è 4. Gli altri parametri sono: x = La dimensione della cache FAT in kilobytes. zzz = La lista delle lettere delle partizioni FAT che devono essere controllate automaticamente all'avvio, nel caso di chiusura impropria del sistema. (Torna all'Indice) Ottimizzazione parametri OS/2 2 Regolazione parametri OS/2 − OS/2 Performance Tuning Tips 2. Considerazioni sul File di Swap L'indirizzo e la dimensione del file di swap sono controllate dalla seguente istruzione nel CONFIG.SYS: SWAPPATH = indirizzo x y ovvero: indirizzo = Indica la directory del file di swap (SWAPPER.DAT). Di default viene installato in X:\OS2\SYSTEM. x = La dimensione minima di spazio libero sulla partizione, in kilobytes. Quando il file di swap aumenta, lasciando meno di questo spazio libero, appare un messaggio di avvertimento. y = La dimensione iniziale del file di swap, in kilobytes. Il file di swap cambia dinamicamente dimensione. E' importante assegnargli un'adeguata dimensione iniziale, in modo che il sistema possa lavorare senza rallentamenti, dovuti ai frequenti ridimensionamenti del file di swap. Si raccomanda di posizionare il file di swap nella radice della directory della partizione più usata, dell'hard disk utilizzato meno frequentemente. (Torna all'Indice) 3. Parametri relativi al Multitasking 3.1 Controllo della priorità di un'applicazione L'istruzione: PRIORITY_DISK_IO=YES/NO determina come il sistema tratterà le applicazioni in primo piano. Quando settata su YES, le operazioni di I/O di disco, relative alle applicazioni in primo piano, avranno una priorità maggiore ed una più veloce esecuzione rispetto ai processi che lavorano in background. Questo è il comportamento di default. Similarmente, l'istruzione: PRIORITY=DYNAMIC/ABSOLUTE controlla come il sistema tratti le applicazioni in primo piano, dal punto di vista del tempo CPU a loro destinato. Il default è DYNAMIC, ovvero le applicazioni in primo piano godono di un aumento di prestazioni. Inoltre, muovendo il puntatore sulla finestra dell'applicazione, si aumenta la sua priorità. Settando PRIORITY su ABSOLUTE significa che tutte le applicazioni, sia in primo piano che in background, verranno trattate allo stesso modo. Nel caso di utilizzo come server, è ragionevole considerare di settare le suddette variabili su NO/ABSOLUTE, in modo che i processi in background non siano penalizzati da quelli in primo piano. (Torna all'Indice) Ottimizzazione parametri OS/2 3 Regolazione parametri OS/2 − OS/2 Performance Tuning Tips 3.2 Controllo dei Threads L'istruzione: THREADS=n definisce il numero massimo dei threads che possono essere eseguiti simultaneamente dal sistema. Il valore di "n" deve essere compreso tra 64 e 4096. L'istruzione: TIMESLICE=x,y definisce il tempo minimo=x e massimo=y (in millesecondi) che il sistema dedica all'esecuzione di un thread, prima di passare ad un altro thread di pari priorità. L'istruzione TIMESLICE, di default, non è presente nel CONFIG.SYS, ed il sistema operativo usa un algoritmo dinamico per stabilire automaticamente i valori "x" e "y". Ciò significa che i valori minimi e massimi dipendono dalle condizioni attuali del sistema. L'istruzione: MAXWAIT=z definisce la durata massima di attesa di un thread (in secondi), prima che il sistema operativo assegni un valore più alto di priorità al thread stesso. Per definizione, quanto detto funziona solo se PRIORITY è settata su DYNAMIC. Il valore di "z" deve essere compreso tra 1 e 255. Il valore di default è 3. Il sistema operativo (assieme alle applicazioni, quando previsto) assegna una priorità ad ogni thread in esecuzione. Esistono quattro classi di priorità, ciascuna divisa in 32 sottolivelli di priorità. Il sistema gestisce i threads in base alle seguenti operazioni: • Assegnando le priorità ed eseguendo i threads (TIMESLICE). Threads con la stessa priorità hanno le stesse possibilità di essere eseguiti; • Cambiando la priorità di ogni singolo thread (MAXWAIT). Ciò viene chiamato "Round−Robin Scheduling". (Torna all'Indice) 3.3 Object Snooze Time La variabile globale OBJECTSNOOZETIME determina lo "snooze time" degli oggetti WPS (in secondi). Questo è il periodo di tempo che la WPS aspetterà, dopo la chiusura di un oggetto, prima di scaricare dalla memoria tutte le DLL dell'oggetto stesso. Così l'oggetto passerà dallo stato di attività allo stato di inattività. Il valore di default è di 90 secondi e non è necessario definirlo nel CONFIG.SYS. (Torna all'Indice) Ottimizzazione parametri OS/2 4