Windows XP funziona in modo strano quando viene utilizzato intensamente il disco rigido


2

Questo succede in due situazioni: quando uso sabnzbd, dopo aver scaricato un file e sto usando par2.exe per cucirlo insieme, e solo ora, quando sto deframmentando un disco fisso da una VM che sto utilizzando.

Tale uso del disco rigido fa sì che XP diventi veramente insensibile. Un sacco di elementi della GUI non farà clic, o ha dei clic molto ritardati. In Chrome, ogni volta che vado in una scheda che ho appena aperto pochi minuti fa, l'intera pagina si ricarica molto lentamente: posso vedere la grafica della pagina caricarla riga per riga. Una cosa da notare è che nel 1 ° caso, il mio file di paging è su un disco fisso completamente separato rispetto a quello su cui sto eseguendo queste operazioni, mentre nel secondo caso, si trova su una partizione separata ma sullo stesso disco rigido. Lo stesso comportamento si verifica, però.

Qualche spiegazione sul motivo per cui ciò accade? Qualche suggerimento su come farlo accadere?

Ho 4 GB di RAM e un processore dual core, e la mia CPU non è nemmeno vicino al 25% quando queste attività sono in corso, quindi non sembra un caso di mancanza di risorse. XP non è efficiente nel gestire questa situazione?


2
Solo due situazioni? Non aggiornare a Vista se non ti piacciono gli elementi dell'interfaccia utente lenti.
David Thornley

Sai se stai usando dischi SATA o PATA?
Jared Harley

Risposte:


2

Nota: presumo che tu abbia un'unità disco rotante qui. Le metriche delle prestazioni in queste aree differiscono notevolmente per l'archiviazione a stato solido.

Mentre un'unità moderna può sostenere molte decine di Mbyte al secondo quando si eseguono letture e scritture di massa, entrambe le operazioni descritte coinvolgono almeno due posizioni sul disco, quindi sono coinvolti molti movimenti della testa. La latenza dei movimenti della testa ha un effetto enorme sul rendimento, perché ogni volta che l'unità ha bisogno di muovere le teste c'è un ritardo nel metterle effettivamente nel posto giusto, un ritardo in attesa che si stabilizzino, e poi un ritardo in attesa del giusto parte del disco per girare oltre. Questi ritardi sono piccoli sul proprio (nemmeno 10ns per movimento in media in media per la maggior parte delle unità moderne) ma se l'unità può spingere 100 Mbyte / sec in flusso completo di 10 ms ogni movimento spreca il tempo di 1 Mbyte di trasferimento dati. Con molto successo, l'unità può facilmente passare più tempo a spostare le teste di quante non passi effettivamente a leggere e scrivere dati (leggi per un paio di 10 ms, muovi la testa, leggi da lì per un po ', muovi la testa, scrivi per pochi ms, muovi la testa ...).

Mentre si deframmenta il disco, l'utility trascorre la maggior parte del tempo a leggere da un punto del disco e scrivere a un altro, un piccolo numero di blocchi alla volta. Estrarre il contenuto da un set di file protetto è ancora peggiore in quanto vi sono almeno due file da leggere (un file sorgente e uno o più file di parità) e il file di output in fase di scrittura. Anche solo una semplice operazione di copia su un file di grandi dimensioni ha l'effetto. Tutto ciò esclude i movimenti della testa necessari per mantenere aggiornate le strutture delle directory e le mappe dello spazio libero man mano che i blocchi vengono spostati e / oi file estesi. L'esecuzione di una macchina virtuale può essere altrettanto impegnativa a seconda di ciò che la VM sta facendo in quel momento (e la VM ridurrà la RAM disponibile sul computer host da utilizzare come cache / buffer che potrebbe peggiorare la situazione, e qualsiasi operazione di scrittura nella VM può essere molto più esigenti della stessa operazione sull'host direttamente, specialmente se si utilizzano unità virtuali "coltivabili").

Con tutto questo, se un'applicazione GUI deve richiedere anche un piccolo I / O, potrebbe essere messa in coda dietro a tutte le altre cose che stanno succedendo. A meno che l'applicazione sia completamente multi-thread, è probabile che causi il "blocco" in attesa che l'operazione di I / O venga completata, il che significa che non è in grado di rispondere a nessun messaggio (come "l'utente ha fatto clic qui") in la coda degli eventi di Windows fino a quando non arriva il suo turno. Più cose succedendo in una volta, peggio, e non la noterai nelle letture "CPU busy" perché la CPU non è occupato - è seduto in attesa di operazioni di I / O per completare la maggior parte del tempo in queste circostanze.

Se si dispone di due o più unità, è possibile ridurre notevolmente l'effetto che questo ha su di voi diffondendo il carico sulle unità. Se la VM è su un'unità separata dal sistema operativo principale, non competerà per la manutenzione I / O quando la macchina virtuale è occupata mentre l'host sta deframmentando la partizione di sistema. Inoltre, l'estrazione di un archivio da un'unità e la scrittura dell'output su un altro sarà notevolmente più veloce rispetto all'estrazione sulla stessa unità poiché l'operazione di lettura non è in competizione diretta con l'operazione di scrittura per il posizionamento della testina su un'unità.


Immagino che questa sia probabilmente la risposta. L'unica cosa è che non ho solo un hard disk. Diciamo che ho un disco, Z, tutto da solo, e faccio tutte le operazioni intensive lì. Ciò influirebbe sulle prestazioni del mio sistema, anche se il resto del sistema non guarderebbe mai Z?
user9430

Ho guardato e: il disco fisso VM era sullo stesso disco rigido del mio file di scambio (ma non l'unità di sistema o l'unità in cui sono installate tutte le mie applicazioni). Forse questo spiega il 2 °. Per il primo, il file che si stava cercando era sulla stessa unità dello swap e il suo output veniva inviato all'unità con le mie app e dove è installato Windows. Probabilmente è la risposta quindi .. grazie!
user9430

soluzione? comprare un disco a stato solido da 256GB ... = P.
user9430

La posizione dei file di swap farà la differenza solo se lo spazio di swap viene utilizzato attivamente (in questo caso più RAM potrebbe essere la risposta, sebbene ciò significhi un aggiornamento del sistema operativo se si esegue a 32 bit e si dispone già di 4Gb).
David Spillett

Anche se la macchina si sta scambiando con tutte le altre attività del disco in corso, ciò spiegherebbe sicuramente la mancata risposta della GUI.
David Spillett

3

La deframmentazione di un disco rigido su una macchina causerà il rallentamento di qualsiasi macchina. Sta spostando molti dati dappertutto.

Che tipo di computer hai? Hai un processore single o dual core? Quanto ram? Ci sono molti fattori che potrebbero entrare in gioco qui.

Molto probabilmente è un processo di sospensione o qualcosa del genere. Hai detto che stai utilizzando una VM. Quelli possono occupare molte risorse se si sta eseguendo un lavoro nella VM e nel SO host. Le VM sono operazioni molto intensive della CPU. È in esecuzione un intero altro sistema operativo sotto il sistema operativo principale.


È vero, ma è una macchina virtuale, quindi sta elaborando solo un file sul disco rigido reale. Perché la mia macchina host rallenta di conseguenza? Se clicco su Start- & gt; i programmi non dovrebbero essere influenzati quando un disco fisso è separato dalla mia unità Windows e il mio file di paging è in fase di accesso.
user9430

Quanto Ram ha il computer? e quanto Ram è allocato alla VM?
Troggy

Un file pesantemente elaborato potrebbe occupare la maggior parte della velocità di trasferimento disponibile del disco rigido in modo particolare in una VM, quindi tutto il resto rallenterà.
Troggy

500 MB su VM, 4 GB su host (quindi 3 GB di limiti XP). processore dual-core. ma la stessa cosa accade anche senza una VM, ma solo quando par2.exe (da un downloader di newsgroup) è in esecuzione per elaborare un download da 5 gb.
user9430

la tua VM non sa che è un disco rigido virtuale e certamente non gestisce il VHD come un singolo file. se vuoi che il VHD sia un file contiguo, esegui il backup temporaneamente, elimina l'originale, deframmenta l'HD reale, quindi ripristina il backup nella posizione originale

2

Onestamente sembra che tu stia facendo troppo tutto in una volta. Quello che stai vedendo è un collo di bottiglia: all'hard disk viene chiesto di fare diverse cose contemporaneamente (alcune con più priorità di altre), quindi cose come i clic della GUI "aspettano" che il loro turno venga elaborato.


Tuttavia, sembra che i clic della GUI e gli accessi al disco rigido possano essere eseguiti allo stesso tempo.
user9430

2

Il problema potrebbe essere causato dall'attività in questione (ad esempio la deframmentazione) che occupa una percentuale molto elevata della CPU. Questo lascia molto poco all'interfaccia utente, quindi alla mancanza di reattività.

Potresti provare a ridurre la priorità di par2.exe o la deframmentazione. Vai a Task Manager & gt; Processi, fare clic con il tasto destro del mouse sul processo incriminato e selezionare Imposta priorità & gt; Basso.

Stai usando un processore single core? Avere 2 o più processori (o core) permetterà all'interfaccia utente di funzionare su quello non assegnato.


In realtà la mia CPU, sia per il par2 che per la deframmentazione, ha un utilizzo dello 0-5%. Ho provato ad abbassare la priorità sia su par2.exe che su sabnzbd, ma non ha avuto alcun effetto. Se fosse un uso elevato della CPU, capirò, ma qui sembra che il mio computer abbia un sacco di risorse disponibili e non le stia semplicemente utilizzando ..
user9430
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.