Windows'dan Cygwin çok yavaş / laggy


22

Aniden Windows komut satırından başlattığım tüm Cygwin komutlarının yürütülmeden önce ~ 10-20 saniye gecikmesi vardır, böylece Cygwin tamamen kullanılamaz hale gelir. Zaten başarılı olmadan yeniden yüklemeye çalıştım.

Bir Bash kabuğu penceresinden komutları yürütmek iyi çalışıyor (Bash'ı başlatırken gecikmeyi görüyorum). Yerel PATH değişkenimdeki tüm girişleri kaldırmanın bir etkisi yoktur. Windows 7 x64 ve Cygwin x64 v 1.7.34 (0.285 / 5/3) kullanıyorum.


bilmiyorum ama cygwin.bat başlamadığınızda cmd.exe ile aynı mı? egC:\cygwin\bin>.\ls.exe <ENTER>
barlop

Herhangi bir güncelleme lütfen?
yO_

Yanıtlar:


15

Bazen binlerce kullanıcılı bir Windows etki alanında çalışıyorum.

En iyi tahmin yaklaşımı yapmak istemiyorum. Cygwin'in kullanıcı bilgilerini gerektiği şekilde önbelleğe almasını tercih ederim . Bunun kolay olduğu ortaya çıkıyor.

Sadece girişte çalıştırın cygserver.

Bunu doğru şekilde ayarlamak için cygserver-configyalnızca bir kez çalıştırın . Bu cygserver, doğru kimlik bilgilerine sahip bir Windows hizmeti olarak çalışacak şekilde ayarlanacaktır . Bunu bir yönetici Cygwin penceresinden yapın.

$ 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!

Benim cygserveriçin ne yapar ?

Cygwin sitesindeki belgelere bir göz atın . Temel olarak, kullanıcının tüm Cygwin süreçleri arasında IPC'nin çalışmasını sağlamasıyla birlikte önbellekleme yapar .

Kilometreniz elbette değişebilir, ancak bu benim tercih edilen çalışma şeklim. Bunu yıllar önce yapmalıydım.


Bu harika! Çok uzun süre sonra paylaştığınız için teşekkür ederiz. / cygdrive aracılığıyla bu dosya erişimini kullanmak artık
eskisine

/usr/bin/cygserver-config: line 181: cygrunsrv: command not found, C:/cygwin64/binÜzerinde PATH... yönetici olarak çalışan,
Troyseph

1
@Troyseph Var mı C:\cygwin64\bin\cygrunsrv.exe? Bilgisayarınızda yanlışlıkla eğik çizgi ( /) kullandınız mı %PATH%? Is cygrunsrv paketi yüklü?
bobbogo

Ah, C:\cygwin64\bin\cygrunsrv.exeyok, cygrunsrv: NT/W2K service initiatorpaketi kurdu ve her şey çalışıyor.
Troyseph

Yanıtta olduğu gibi cygserver-config komutunu çalıştırın, cygwin'i hiç çalışmadı (işlem başlatılamadı)
user174962

12

Kimlik doğrulama ile ilgili gibi görünüyor. Benim için 40 saniye idam edilecek bir şey olsun. Bundan sonra, bu süreç ağacında süreç oluşturma oldukça hızlı görünüyor.

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

Yani ben

  • Yerel kimlik doğrulamamın ve kendi Active Directory (AD) kimlik bilgilerimin önbelleğini oluşturdum

    $ mkpasswd -l -c >/etc/passwd
    $ mkgroup -l -c >/etc/group
    
  • Cygwin'e sadece bu iki dosyayı kullanmasını söyledim

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

Tüm Cygwin süreçlerini öldürdüm ve tekrar başladım. Artık her şey güzel ve hızlı çalışıyor. Bu hack'i her Cygwin DLL dosyası güncellemesinde kaldıracağım ve nasıl çalıştığımı göreceğim.

Bu sadece bir taslaktır - en azından yedekleri saklamak isteyeceksiniz!

DÜZENLE

Kullanımdan kaldırıldı. Daha iyi (IMHO) bir çözüm için bu soruya daha yeni yanıtımı görün.


benim için çalıştı ... ve bir servis yüklemek zorunda değildi!
Droj

@bobbogo Cevabınız benim için en altta. Sonunda düzenlemenizde hangi cevabı kastediyorsunuz? Teşekkürler!
jpaugh

"Tüm cygwin komutları ... yürütmeden önce ~ 10-20 saniye gecikmeli" nedenini açıklayamasa da, bunu bilmek güzel.
philwalk

@philwalk Bence öyle. Sorun başlangıçta Cygwin'in kullanıcı veritabanını doldurması gerektiğidir. Büyük bir windoze etki alanı içindeyseniz bu uzun zaman alır. Değil her komut sadece bu gecikme, uğrar ilk herhangi süreç ağacında.
18'de bobbogo

2

Aşağıdaki güncellemeyi okuyun, bunun sorun olmadığı ortaya çıktı.

Aralıklı olmasına rağmen, bu sorunun aşırı bir sürümünden muzdarip oldum. Sorun oluştuğunda, tüm komutlar 20 saniye ile en uç durumlarda birkaç dakika sürer. Birkaç gün boyunca ortaya çıkacak ve daha sonra birkaç gün boyunca kaybolacak. BTW, çok sayıda DRAM, SSD sürücü vb. İle son derece hızlı bir sistemim var.

Sonunda bir şeyler açıklayabilecek bir aday teorim var. Cygwin'i kurulum-x86_64.exe (ki nadiren yaptığım) aracılığıyla güncelledim ve daha sonra işler tekrar son derece duyarlı (kelimenin tam anlamıyla öncekinden 1000 kat daha hızlı). Güncellemenin sonundaki yeniden basan farkın ne olduğunu tahmin ediyorum.

Güncelleme: daha önce gördüğüm hız bir tesadüf oldu; sorun bir ay sonra tekrar ortaya çıktığında, bu sorunu çözmedi. Windows Defender canlı korumasını devre dışı bırakmanın yavaşlamayı anında çözdüğü ortaya çıkıyor.


2
Windows Defender canlı korumasının devre dışı bırakılması, yavaşlama - bilinen sorunu anında çözdü
gavenkoa

1

Dipnot olarak, bir Cygwin güncellemesinden sonra passwdve groupdosyalarını yeniden oluşturmak zorunda olduğumu gördüm . Yavaş davranış tekrar gerçekleşirken, yüklemenin autorebase bölümünün tamamlanması birkaç gün sürdü.

Ayrıca (Windows 10) sistemimdeki varsayılan nsswitch.conf dosyasını da değiştirmem gerekmedi.

Bu arada, yavaş davranış Windows komut istemi ve taşınabilir uygulamalarla da kendini gösterdi. Bazı taşınabilir uygulamalar, başlatıldığında bir pencere oluşturmak için birkaç saat sürdü.


Onları yeniden inşa etmek ne demek? Sadece yeni, boş sürümleri mi yapıyorsunuz?
user13743

1

Bu sorun benim için böyle ortaya çıktı. Birincisi, örneğin 20, Cygwin komut istemine girilen komutlar hızlıydı, ama sonra aniden acı verici bir şekilde yavaşladı.

Yukarıdaki kimlik doğrulama düzeltmesini denedim. Benim için işe yaramadı.

Cygwin SSS, Cygwin'in kullanıcı veya grup adlarındaki boşluklardan hoşlanmadığını bildirir. Bkz Benim Windows oturum açma adı, onun içinde olacak bu sorunlara neden bir boşluk vardır? .

Benim grup adı içinde bir boşluk vardı, bu yüzden /etc/groupbir düzeltme alt çizgi için kimlik doğrulama düzeltme oluşturulan dosyada değiştirdim . Bu da işe yaramadı.

Aynı sorun için diğer gönderiler, virüs tarayıcısı için sonuç verdiğini bildirmiştir. Mevcut virüs tarayıcımı (System Center Endpoint Protection) Sophos ile değiştirdim. Bu benim için sorunu çözdü.

Umarım bu yardımcı olur.


0

Cygwin'de bir süredir yapıların yavaş yürütülmesiyle ilgili bir sorun yaşadım.

Dün güncellemek zorunda kaldım ve sadece başarısız olan rebaseall meselesi ile karşılaştım. Bu beni başka şeylere girmeye zorladı ve Trusteer Rapport / End Point Protection'ın yeniden basma ve yavaş yanıt süreleriyle ilgili sorunlara neden olduğu bilindiği bir rapor buldum. Bu yüzden, Denetim Masası üzerinden normal Windows Kaldırma Programları yöntemiyle kaldırdım.

Sonra yönetici olarak çalıştırmak çizgi arayüzü bir rebaseall yaptım.

Yani bu, Başlat menüsünden tire (win7) yazın. Kısa çizgi kısayolu görünür, Yönetici olarak çalıştırmak için sağ tıklayın. Sonra hazır olduğunda, yürütün:

/ usr / bin / rebaseall -v

Bir kahve alın ... Çıkışı görüntülemeden önce birkaç saniye oturacak, eğer oturur ve 5 dakikadan fazla bir şey yapmazsa, başka bir sorununuz var.

Bu, yeniden temel düzeltildi, ancak aynı zamanda yapımın hızını büyük ölçüde artırdı. Yüklü olup olmadığını kontrol etmeye değer, kaldırmayı deneyin.


Başka birinin bunları yapmasına izin vermek için yeterli adımda attığınız adımları açıklayabilir misiniz? … Lütfen yorumlara cevap vermeyin;  daha net ve eksiksiz hale getirmek için cevabınızı düzenleyin .
Scott

Windows 10'da, tire konumu oldu c:\msys64\user\bin\dash.exe. Yönetici olarak çalıştırmak için masaüstümde bir kısayol oluşturmak zorunda kaldım. Ne yazık ki, bu benim yavaş cygwin düzeltmedi: (
user13743
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.