PDA

View Full Version : [Script] windows scripting host o autoit + mydefrag


einstein1969
16-04-2012, 09:13
Salve,

sto cercando di scrivere uno script automatico per poter riempire tutti i gaps del disco di sistema di windows XP.

Il linguaggio che vorrei usare e' windows hosting script o autoIT (ancora non so decidere non conoscendoli) + lo scripting di Mydefrag

Il problema che sta alla base e' l'ottimizzazione di un vecchio portatile con poca ram.

Ho gia' ottimizzato il sistema a mano ora vorrei fare degli script per automatizzare questo processo.

Uno dei problemi che ho dovuto affrontare e' l'algoritmo "BEST FIT" di ntfs.

Mi spiego meglio.

L'XP su NTFS quando scrive un nuovo file lo alloca nel primo posto piu piccolo che ben si adatta a riceverlo.

Se questo posto e' molto lontano da dove generamelmente si trova la testina del disco si ha un notevole rallentamento, nel caso in cui venga acceduto frequentemente.

Quindi una soluzione che ho trovato e' quella di riempire tutti i gaps (spazi liberi) lontani da dove avvengono gli I/O.

A meno che non esista gia' una utility che fa questo (e devo dire che non l'ho cercata) vorrei creare uno script automatico che fa questo.

Visto che mydefrag permette di riempire i gaps in vari modi ho scelto di usarlo per realizzare questa cosa.

Questa era la premessa.

Ho realizzato questo schema e sembra funzionare abbastanza bene. Con un aumento delle performance da tenere in considerazione. Specialmente per sistemi con poca ram e dischi non troppo veloci (come il mio vecchio portatile)

http://i40.tinypic.com/2aaax43.jpg

Il mydefrag permette di ottimizzare il layout del disco a nostro piacimento (non del tutto , ma una gran parte)

Ho trovato questa soluzione per riempire i gaps , ma e' da integrare con uno script di ottimizzazione.

1) Creo un file "vuoto" tramite l'utility "fsutil".


fsutil file createnew filler.$$$ <dimensione>


2) utilizzo uno script mydefrag per riempire i gaps di una zona del disco con questo file.


// questo script e' da finire

VolumeSelect
CommandlineVolumes()
VolumeActions

FileSelect
Not ( FileName("filler.$$$") )
FileActions
FileEnd

makegap(VolumeSize*0.2)

FileSelect
All
FileActions
sortbysize(ascending)
FileEnd

VolumeEnd




Ora debbo risolvere due problemi:

1) calcolo della dimensione del file Filler.$$$

2) La posizione del file nel disco

3) Uno script che unisca il tutto

Chi mi dà una mano?

Grazie

ingframin
16-04-2012, 11:31
A me non sembra lavoro per uno scriptino, secondo me ti serve di pensare un programma vero e proprio in un linguaggio un po' piu' sofisticato.

banryu79
16-04-2012, 11:55
L'XP su NTFS quando scrive un nuovo file lo alloca nel primo posto piu piccolo che ben si adatta a riceverlo.

Se questo posto e' molto lontano da dove generamelmente si trova la testina del disco si ha un notevole rallentamento, nel caso in cui venga acceduto frequentemente.

Quindi una soluzione che ho trovato e' quella di riempire tutti i gaps (spazi liberi) lontani da dove avvengono gli I/O.

A meno che non esista gia' una utility che fa questo (e devo dire che non l'ho cercata) vorrei creare uno script automatico che fa questo.

Visto che mydefrag permette di riempire i gaps in vari modi ho scelto di usarlo per realizzare questa cosa.

Ciao, ho visitato l'home page di questo Mydefrag (carino :) ).
Domanda banale: dato che a legger lì pare che Mydefrag già tenga conto di queste problematiche (gaps, velocità di accesso ai file in base alla posizione nel disco e file usati più spesso) negli script standard forntiti in bundle, non puoi usare quelli? Hai già fatto delle prove in tal senso? Perchè gli script di default mi sembrano ben bilanciati.
Ad esempio tengono già conto (a legger il sito almeno) del fatto che è il caso di non riempire la zona iniziale del disco e lasciare dei gap per accogliere appunto nuovi file senza penalizzarli.

banryu79
16-04-2012, 12:16
*edit

einstein1969
16-04-2012, 13:38
A me non sembra lavoro per uno scriptino, secondo me ti serve di pensare un programma vero e proprio in un linguaggio un po' piu' sofisticato.

Hai qualche suggerimento?

Visualbasic express puo' andare?

einstein1969
16-04-2012, 13:55
Ciao, ho visitato l'home page di questo Mydefrag (carino :) ).
Domanda banale: dato che a legger lì pare che Mydefrag già tenga conto di queste problematiche (gaps, velocità di accesso ai file in base alla posizione nel disco e file usati più spesso) negli script standard forntiti in bundle, non puoi usare quelli? Hai già fatto delle prove in tal senso? Perchè gli script di default mi sembrano ben bilanciati.
Ad esempio tengono già conto (a legger il sito almeno) del fatto che è il caso di non riempire la zona iniziale del disco e lasciare dei gap per accogliere appunto nuovi file senza penalizzarli.

Si, li ho provati un po' tutti. Poi avendo testato a fondo su un portatile vecchiotto con 128MB e 600Mhz , ho dovuto ottimizzare ancora di piu'...

Sul sito ci sono altri script che ho provato oltre quelli standard , ma quello che sto facendo io va oltre :cool:

Sto facendo i test con il bootvis per intenderci, a livello molto approfondito...
tipo dove va a finire la testina del disco...

E da quello che ho visto e' nato questo layout che sto creando e che gia' ho testato e funziona.


Questo e' il disco non ottimizzato, e' un esempio di un I/O di un file creato al momento dell'avvio che va a finire in un punto lontano del disco alla fine. Proprio per via dei GAPS che lasciano gli script di ottimizzazione di mydefrag e di tanti altri defragmenter....

Ma ho fatto anche altri test con la macchina sotto stress per capire come realizzare il layout ottimale....


http://i42.tinypic.com/jfkf1i.png

In realtà gli script sono ottimizzati per far funzionare al meglio il mydefrag.

Io invece voglio far funzionare al meglio il pc. Oltre che al mydefrag

Ecco dove sta la differenza...

einstein1969
16-04-2012, 14:42
Questo e' un I/O sotto stress su un disco "quasi ottimizzato" (una versione intermedia a quella che sto finendo di realizzare)

http://i41.tinypic.com/33zehxi.png

Notare il numero di I/O al secondo del primo grafico.

E in basso nel terzo grafico il sector offsets sotto i 2 Milioni. Nel grafico precedente all'ottimizzazione arriva a 20 Milioni... (E' la distanza che percorre la testina)

Kralizek
16-04-2012, 15:57
quanti punti di 3d mark ti dá sta roba?

ingframin
17-04-2012, 12:01
Hai qualche suggerimento?

Visualbasic express puo' andare?

Penso di si, io userei python, ma e' questione di gusti personali