Cygwin da Windows è molto lento / ritardato


22

Improvvisamente tutti i comandi Cygwin che avvio dalla riga di comando di Windows hanno un ritardo di circa 10-20 secondi prima di essere eseguiti, in modo che Cygwin diventi totalmente inutilizzabile. Ho già provato a reinstallare senza successo.

L'esecuzione dei comandi dall'interno di una finestra della shell di Bash funziona perfettamente (all'avvio di Bash vedo il ritardo). La rimozione di tutte le voci dalla mia variabile PATH locale non ha influenza. Uso Windows 7 x64 e Cygwin x64 v 1.7.34 (0.285 / 5/3).


non lo so ma è lo stesso da cmd.exe quando non si avvia cygwin.bat? es.C:\cygwin\bin>.\ls.exe <ENTER>
barlop,

Eventuali aggiornamenti per favore?
y__

Risposte:


15

Di tanto in tanto lavoro in un dominio Windows con migliaia di utenti.

Non voglio fare alcun approccio ipotetico. Preferirei che Cygwin memorizzasse nella cache le informazioni dell'utente in base alle necessità. Si scopre che è facile da fare.

Esegui semplicemente cygserveral login.

Per configurarlo correttamente, esegui cygserver-configuna sola volta. Questo verrà impostato cygserverper essere eseguito come servizio Windows con le credenziali corrette. Fallo da una finestra Cygwin dell'amministratore .

$ cygserver-config
Generating /etc/cygserver.conf file

Warning: The following function requires administrator privileges!

Do you want to install cygserver as service?
(Say "no" if it's already installed as service) (yes/no) yes

The service has been installed under LocalSystem account.
To start it, call `net start cygserver' or `cygrunsrv -S cygserver'.

Further configuration options are available by editing the configuration
file /etc/cygserver.conf. Please read the inline information in that
file carefully. The best option for the start is to just leave it alone.

Basic Cygserver configuration finished. Have fun!

Cosa fa cygserverper me?

Dai un'occhiata alla documentazione sul sito di Cygwin . Fondamentalmente fa la memorizzazione nella cache dell'utente, insieme a garantire che IPC funzioni tra tutti i processi Cygwin .

Il tuo chilometraggio può variare ovviamente, ma questo è ora il mio modo di lavorare preferito. Avrei dovuto farlo anni fa.


Questo è fantastico! grazie per la condivisione dopo così tanto tempo. L'utilizzo di questo accesso ai file tramite / cygdrive è anche molto più veloce ora rispetto a prima
85

/usr/bin/cygserver-config: line 181: cygrunsrv: command not found, C:/cygwin64/binè in PATHesecuzione come amministratore ...
Troyseph

1
@Troyseph Esiste C:\cygwin64\bin\cygrunsrv.exe? Hai usato erroneamente barre ( /) nel tuo %PATH%? Il pacchetto cygrunsrv è installato?
bobbogo,

Ah, C:\cygwin64\bin\cygrunsrv.exenon esiste, ha installato il cygrunsrv: NT/W2K service initiatorpacchetto e tutto funziona.
Troyseph,

esegui cygserver-config come nella risposta, ha smesso di funzionare cygwin (il processo non si avvia)
user174962

12

Sembra avere a che fare con l'autenticazione. Per me, 40 secondi per ottenere qualcosa da eseguire. Dopodiché, la creazione del processo in quell'albero del processo sembra piuttosto rapida.

https://www.cygwin.com/faq.html#faq.using.startup-slow

Così io

  • Ho creato una cache della mia autenticazione locale e delle mie credenziali di Active Directory (AD)

    $ mkpasswd -l -c >/etc/passwd
    $ mkgroup -l -c >/etc/group
    
  • Detto a Cygwin solo per usare questi due file

    $ echo 'passwd: files' >/etc/nsswitch.conf
    $ echo 'group: files' >>/etc/nsswitch.conf
    

Ho ucciso tutti i processi Cygwin e ho ricominciato. Ora tutto funziona bene e velocemente. Rimuoverò questo hack su ogni aggiornamento del file DLL Cygwin e vedrò come andare avanti.

Questo è solo uno schizzo: almeno vorrai conservare i backup!

MODIFICARE

Deprecato. Vedi la mia risposta più recente a questa domanda per una soluzione migliore (IMHO).


ha funzionato per me ... e non ho dovuto installare un servizio!
Droj,

@bobbogo La tua risposta è in fondo per me. A quale risposta ti riferisci nella tua modifica alla fine? Grazie!
jpaugh

buono a sapersi, anche se non può spiegare perché "Tutti i comandi di Cygwin ... hanno un ritardo di circa 10-20 secondi prima di essere eseguiti".
philwalk,

@philwalk Penso di si. Il problema è che all'avvio Cygwin deve popolare il suo database utenti. Questo richiede molto tempo quando ti trovi all'interno di un grande dominio del windoze. Non tutti i comandi subiscono questo ritardo, solo il primo in qualsiasi albero dei processi.
bobbogo,

2

Leggi l'aggiornamento di seguito, questo si è rivelato non essere il problema.

Ho sofferto di una versione estrema di questo problema, anche se è intermittente. Quando il problema persiste, tutti i comandi richiedono tra 20 secondi e, nei casi più estremi, diversi minuti. Accadrà per diversi giorni e poi scomparirà per diversi giorni. A proposito, ho un sistema estremamente veloce con un sacco di DRAM, unità SSD, ecc.

Ora finalmente ho una teoria candidata che potrebbe spiegare le cose. Ho appena aggiornato Cygwin tramite setup-x86_64.exe (cosa che faccio di rado) e successivamente le cose sono di nuovo estremamente reattive (letteralmente 1000 volte più veloce di prima). Immagino che il rebaseall alla fine dell'aggiornamento sia ciò che ha fatto la differenza.

Aggiornamento: l'accelerazione che ho visto prima era apparentemente una coincidenza; quando il problema è riapparso un mese dopo, non è stato risolto. Si scopre che la disabilitazione della protezione live di Windows Defender ha risolto immediatamente il rallentamento.


2
la disabilitazione della protezione live di Windows Defender ha risolto istantaneamente il rallentamento - problema noto
gavenkoa

1

Come nota a piè di pagina, ho appena scoperto che dovevo ricostruire i file passwde groupdopo un aggiornamento Cygwin. Poiché il comportamento lento si stava ripetendo, la parte autorebase dell'installazione ha richiesto diversi giorni per essere completata.

Inoltre non avevo bisogno di modificare il nsswitch.conf predefinito sul mio sistema (Windows 10).

A proposito, il comportamento lento si è mostrato anche con il prompt dei comandi di Windows e le applicazioni portatili. Alcune applicazioni portatili hanno impiegato diverse ore per produrre una finestra all'avvio.


Cosa intendi per ricostruirli? Basta crearne di nuove e vuote?
user13743,

1

Questo è come questo problema si è manifestato per me. Per la prima volta, diciamo 20, i comandi immessi al prompt di Cygwin erano veloci, ma improvvisamente sono diventati dolorosamente lenti.

Ho provato la correzione di autenticazione sopra. Non ha funzionato per me.

Le FAQ di Cygwin riportano che a Cygwin non piacciono gli spazi nei nomi degli utenti o dei gruppi. Vedi Il mio nome di accesso a Windows ha uno spazio al suo interno, questo causerà problemi? .

Il nome del mio gruppo conteneva uno spazio, quindi l'ho modificato nel /etc/groupfile generato nella correzione di autenticazione in un carattere di sottolineatura. Neanche quello ha funzionato.

Altre pubblicazioni per lo stesso problema hanno segnalato il risultato per lo scanner dei virus. Ho sostituito il mio antivirus esistente (System Center Endpoint Protection) con Sophos. Ciò ha risolto il problema per me.

Spero che questo possa essere d'aiuto.


0

Ho avuto un problema con l'esecuzione lenta di build per un po 'su Cygwin.

Sono stato costretto ad aggiornare ieri e mi sono imbattuto nel problema di rebaseall semplicemente non riuscendo a eseguire. Questo mi ha costretto a scavare in altre cose e ho trovato un rapporto secondo il quale Trusteer Rapport / End Point Protection era noto per causare problemi con rebaseall e tempi di risposta lenti. Così l'ho rimosso, tramite il normale metodo di disinstallazione di Windows tramite il Pannello di controllo.

Ho quindi eseguito un rebaseall dall'interfaccia dash come amministratore.

Quindi questo significa, (win7) dal trattino tipo menu Start. Verrà visualizzato il collegamento trattino, fare clic con il pulsante destro del mouse per eseguire come amministratore. Quindi quando è attivo, esegui:

/ usr / bin / rebaseall -v

Vai a prendere un caffè ... Rimarrà seduto per alcuni secondi prima di visualizzare l'output, se si siede e non fa nulla per più di 5 minuti, hai un altro problema.

Ciò ha risolto il problema, ma ha anche aumentato enormemente la velocità della mia build. Vale la pena controllare per vedere se lo hai installato, prova a rimuoverlo.


Puoi descrivere i passaggi che hai fatto in modo sufficientemente dettagliato per consentire a qualcun altro di eseguirli? ... Per favore non rispondere nei commenti; modifica la  tua risposta per renderla più chiara e completa.
Scott,

Su Windows 10, la posizione per il trattino era c:\msys64\user\bin\dash.exe. Per eseguirlo come amministratore, ho dovuto creare un collegamento sul mio desktop. Sfortunatamente, questo non ha risolto il mio lento cygwin: (
user13743
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.