Visualizzazione post con etichetta TCP/IP. Mostra tutti i post
Visualizzazione post con etichetta TCP/IP. Mostra tutti i post

martedì 13 aprile 2021

Windows: Accesso lento a file e cartelle su share di rete

Quando si riscontra lentezza nell'accesso a file e cartelle su share di rete, il problema può avere diverse cause. I controlli e le prove da effettuare sono molteplici tra cui:
  • Verificare la configurazione di rete (configurazione indirizzo IP, Gateway, DNS, file hosts, ecc).
  • Assicurarsi che non ci siano problemi di connessione sia sul PC che si sta utilizzando sia sul computer/server remoto dove risiede la share.
  • Dal registro eventi verificare che non vi siano riportati errori o problemi hardware/software.
  • Provare a ricreare e rimappare la share di rete.
  • Disattivare temporaneamente le applicazioni che possono potenzialmente rallentare l'accesso al disco come Antivirus, Enhanced Mitigation Exploerience Toolkit (EMET), software di backup, ecc.
  • Verificare che non sia attiva l'indicizzazione sulle share mappate.
  • Eseguire il tool Pulizia disco sia in locale che sui dischi remoti per eliminare file temporanei.
  • Eseguire il tool System File Checker. Eseguendo il tool SFC con l'opzione /SCANNOW viene analizzata l'integrità di tutti i file protetti di sistema e i file che presentano problemi verranno ripristinati.
  • Assicurarsi che ci sia sufficiente spazio libero sia sul disco locale che su quello remoto.
  • Rimuovere dispositivi USB connessi.
  • Chiudere tutte le applicazioni.
  • Armeggiare con le impostazioni di Esplora file (ad es. evitando la visualizzazione di icone grandi o troppi dettagli).
  • Provare con un nuovo profilo utente e da altre postazioni.
  • Da Gestione attività verificare se il PC è impegnato in altre operazioni, l'utilizzo della CPU, del disco, della RAM e il traffico di rete.
  • A livello Hardware ci sarebbe da verificare la scheda di rete, il disco fisso e la RAM

Se le verifiche/prove effettuate non hanno prodotto alcun risultato ci sono altre tre cose che possiamo provare:
  • Reset TCP/IP;
  • Reset Winsock;
  • Disabilitare SMB2 Client Redirector Cache;

Reset TCP/IP

TCP/IP non è un singolo protocollo ma si tratta di una suite di protocolli su cui si basa il funzionamento logico della rete Internet. Viene chiamata suite di protocolli TCP/IP in virtù dei due più importanti protocolli in essa definiti: il Transmission Control Protocol (TCP) e l'Internet Protocol (IP).
Problemi di connessione possono essere causati dallo stack TCP/IP corrotto. In questi casi è possibile provare a ripristinare TCP/IP tramite il tool netshell (Netsh) incluso in Windows. Prima di eseguire il reset dello stack è bene prendere nota della configurazione IP del computer. Nel caso di IP statico, infatti, potrebbe essere necessario dover procedere alla sua riconfigurazione dopo il reset. Se l'indirizzo IP viene assegnato dal DHCP, come normalmente avviene per le aziende con numerosi computer, non dovremmo preoccuparci di nulla.
Per eseguire il reset dello stack TCP/IP:
  • Avviare il Prompt dei comandi come amministratore
  • Eseguire il comando
    netsh interface ip reset
    al posto di  interface è possibile utilizzare l'abbreviazione int.
    Reset TCP/IP
    FIG 1 - Reset TCP/IP

  • Terminato il reset dello stack TCP/IP sarà necessario procedere al riavvio del sistema.

Reset Winsock

In ambiente Windows i protocolli TCP/IP vengono implementati nei driver tcpip.sys e tcpip6.sys. Per utilizzare tali driver, generalmente, si passa per la libreria Winsock che consente una programmazione più semplice e favorisce la portabilità del codice. Winsock agisce da interfaccia gestendo le comunicazioni tra un'applicazione client TCP/IP (come il browser web, un client FTP, ecc) e lo stack TCP/IP sottostante. Se il reset del TCP/IP non ha risolto il nostro problema di connessione, si può provare ad eseguire anche il reset di Winsock. Anche in questo caso ci viene in soccorso il tool netshell:
  • Avviare il Prompt dei comandi come amministratore
  • Eseguire il comando
    netsh winsock reset

    Reset Winsock
    FIG 2 - Reset Winsock

  • Come per il reset TCP/IP, per completare l'operazione è necessario riavviare il sistema

Il reset di Winsock resetterà il Winsock Catalog ma non avrà alcun impatto su Winsock Name Space Provider.


SMB2 Client Redirector Cache

Il componente SMB Redirector implementa la parte client della funzione di condivisione file e stampa di Windows attraverso Microsoft Networkking. Il protocollo SMB permette al computer client di accedere ai file e stampanti su un altro computer che implementa la parte server del protocollo per la condivisione di tali risorse. Il protocollo SMB prevede anche la cache sul client al fine di rendere più efficiente l'accesso ai file, metadati e per l'enumarazione di file e directory. 
Con il rilascio di SMB 2.0 in Windows Vista e Windows Server 2008, sono state implementate tre cache indipendenti al fine di velocizzare la visualizzazione di informazioni su file e directory utilizzate di recente. Tali cache riducono anche le interazioni tra il client e il server SMB per le comuni operazioni di navigazione tra file e cartelle e oltre a migliorare i tempi di risposta del client nella visualizzazione delle risorse remote, sono importanti anche per la scalabilità e per le prestazioni generali del server SMB.
Le impostazioni di default per queste tre cache sono pensate per migliorare le prestazioni su connessioni a bassa larghezza di banda o alta latenza. In alcuni contesti, come per le applicazioni che richiedono un alto livello di coerenza sui file/cartelle accessibili e modificabili contemporaneamente da più client, possono rappresentare un problema.

Le tre cache sono:

File Information Cache 
La cache delle informazioni sui file riguarda le informazioni sugli attributi dei file contenute nella struttura File_Network_Open_Information, utili per conservare l'IO di rete per recuperare le informazioni comuni sui metadati dei file. 
Il valore predefinito è 10 secondi: Il periodo che deve trascorrere prima del timeout della cache con le informazioni dei file.
Per disattivare File Information Cache è necessario assegnare 0 al valore DWORD nominato FileInfoCacheLifetime presente all'interno della chiave di registro
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters
Se il valore FileInfoCacheLifetime non è presente, crearlo manualmente.

Disattivare la cache delle informazioni sui file non è raccomandato in quanto potrebbe quasi raddoppiare il numero di transazioni di rete richieste per eseguire un dato scenario.


File Not Found Cache
Si tratta di cache di file che il client non è riuscito ad aprire perché il file non era presente sul server. Questo impedisce al client di tentare ripetutamente di aprire i file che non esistono più sul server. Questa cache è in grado di influenzare le applicazioni distribuite in esecuzione su più computer che accedono a un insieme di file su un server dove le applicazioni utilizzano un meccanismo per segnalarsi a vicenda l'aggiunta/modifica/cancellazione di file sul server.
Il valore predefinito è 5 secondi: Il periodo che deve trascorrere prima del timeout della cache dei file non trovati.
Per disattivarla assegnare 0 al valore DWORD nominato FileNotFoundCacheLifetime presente all'interno della chiave di registro
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters
Se il valore FileNotFoundCacheLifetime non è presente, crearlo manualmente.


Directory Cache 
Directory Cache contiene le recenti enumerazioni di directory eseguite dal client. Le successive richieste di enumerazione fatte dalle applicazioni client, così come le richieste di metadati per i file nella directory, possono essere soddisfatte dalla cache. Il client usa anche la cache della directory per determinare la presenza o l'assenza di un file nella directory e usa questa informazione per evitare che i client tentino ripetutamente di aprire file che non esistono sul server. È probabile che questa cache influenzi le applicazioni distribuite in esecuzione su più computer che accedono a un insieme di file su un server dove le applicazioni utilizzano un meccanismo per segnalarsi a vicenda l'aggiunta/modifica/cancellazione di file sul server.
Il valore predefinito è 10 secondi: Si tratta del timeout della cache delle directory.
Per disattivarla assegnare 0 al valore DWORD nominato DirectoryCacheLifetime presente nella chiave di registro
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters
Se il valore DirectoryCacheLifetime non è presente, crearlo manualmente.
Regedit, DirectoryCacheLifetime
FIG 3 - Regedit, DirectoryCacheLifetime 


Generalmente, nel caso si notino rallentamenti nell'accesso a file o directory sulla rete, basta disattivare la Directory cache. Se si sospetta che la cache dei metadati nel reindirizzatore sia la causa del cattivo funzionamento delle applicazioni e si intende disabilitarle tutte e tre, disabilitarle nel seguente ordine
  1. Directory cache, impostando DirectoryCacheLifetime a 0.
  2. File Not Found cache, impostando FileNotFoundCacheLifetime a 0.
  3. File information cache, impostando FileInfoCacheLifetime a 0.
Le operazioni di disattivazione delle cache sopra riportate possono essere eseguite sui sistemi Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008.




mercoledì 25 giugno 2014

Windows: Configurare il TCP/IP tramite il prompt dei comandi


Spesso la configurazione della scheda di rete in Windows viene effettuata tramite interfaccia grafica che risulta più intuitiva e semplice da utilizzare. Tuttavia in alcuni casi ciò non è possibile o non è conveniente (ad es. nel caso in cui bisogna cambiare spesso i parametri di rete) ed è preferibile agire tramite il prompt dei comandi. 

Per configurare il protocollo di rete TCP/IP (indirizzo IP, Subnet Mask, Gateway, DNS e altre impostazioni di rete) è possibile utilizzare il comando Netsh dal prompt dei comandi

Netsh è un comando che consente, sia in locale che in remoto, di visualizzare o modificare i parametri di rete. Netsh mette a disposizione anche funzionalità di scripting che consentono di eseguire un insieme di comandi in modalità batch su uno specifico computer.
E' possibile utilizzare Netsh per i seguenti scopi:

  • Configurare l'interfaccia di rete;
  • Configurare i protocolli di routing;
  • Configurare filtri;
  • Configurare l'instradamento dei pacchetti;
  • Configurare l'accesso remoto per i router di basati su Windows che eseguono il servizio RRAS (Routing and Remote Access Server)
  • Visualizzare i parametri di rete di un pc o di un router;
  • Eseguire una serie di comandi in modalità batch sfruttando le funzionalità di scripting fornite da Netsh


Vediamo come impostare i parametri di rete attraverso il prompt dei comandi utilizzando Netsh:

Visualizzare le impostazioni TCP/IP
netsh interface ip show config

Impostare l'indirizzo IP e altri parametri TCP/IP
netsh interface ip set address name="Connessione alla rete locale (LAN)" static 192.168.0.10 255.255.255.0 192.168.0.1 1
Con questo comando si imposta l'indirizzo IP, la Subnet Mask e il gateway dell'interfaccia relativa alla connessione di rete chiamata "Connessione alla rete locale (LAN)".

Salvare/ripristinare le impostazioni di rete in un file
netsh -c interface dump > c:\configurazione.txt 
In questo modo è possibile salvare le impostazioni di rete in un file di testo. Per ripristinare le impostazioni di rete utilizzando il file creato con il comando visto sopra basta digitare
netsh -f c:\configurazione.txt 
E' possibile utilizzare anche l'opzione EXEC al posto dello switch -f
netsh exec c:\configurazione.txt

Impostare il DHCP per ottenere automaticamente l'indirizzo IP
netsh interface ip set address "Connessione alla rete locale (LAN)" dhcp

Impostare il DNS
netsh interface ip set dns "Connessione alla rete locale (LAN)" static 192.168.0.100

Impostare il WINS
netsh interface ip set wins "Connessione alla rete locale (LAN)" static 192.168.0.100

Impostare un DNS dinamico
netsh interface ip set dns "Connessione alla rete locale (LAN)" dhcp


netsh
FIG. 1 Netsh