Cygwin từ Windows rất chậm / lag


20

Đột nhiên tất cả các lệnh Cygwin tôi bắt đầu từ dòng lệnh Windows có độ trễ ~ 10-20 giây trước khi chúng thực thi, do đó Cygwin trở nên hoàn toàn không sử dụng được. Tôi đã cố gắng cài đặt lại mà không thành công.

Thực hiện các lệnh từ trong cửa sổ shell Bash, hoạt động tốt (trong khi bắt đầu Bash tôi thấy độ trễ). Xóa tất cả các mục từ biến PATH cục bộ của tôi không có ảnh hưởng. Tôi sử dụng Windows 7 x64 và Cygwin x64 v 1.7.34 (0.285 / 5/3).


không biết nhưng nó có giống với cmd.exe khi bạn không khởi động cygwin.bat không? ví dụC:\cygwin\bin>.\ls.exe <ENTER>
barlop

Bất kỳ cập nhật xin vui lòng?
yO_

Câu trả lời:


14

Thỉnh thoảng tôi làm việc trong một miền Windows với hàng ngàn người dùng.

Tôi không muốn làm bất kỳ cách tiếp cận đoán tốt nhất. Tôi muốn Cygwin lưu trữ thông tin người dùng trên cơ sở khi cần thiết. Hóa ra điều này là dễ dàng để làm.

Đơn giản chỉ cần chạy cygservertrên đăng nhập.

Để thiết lập đúng cách, chỉ chạy cygserver-configmột lần. Điều này sẽ được thiết lập cygserverđể chạy như một dịch vụ Windows với thông tin xác thực chính xác. Làm điều này từ một cửa sổ Cygwin quản trị viê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!

Điều gì cygserverlàm cho tôi?

Hãy xem tài liệu tại trang Cygwin . Về cơ bản, nó thực hiện các công cụ lưu trữ người dùng, cùng với việc đảm bảo IPC hoạt động giữa tất cả các quy trình Cygwin .

Số dặm của bạn có thể khác nhau tất nhiên, nhưng đây là cách làm việc ưa thích của tôi. Tôi nên làm điều đó từ nhiều năm trước.


Điều đó thật tuyệt! nhờ để chia sẻ sau khi time.Using quá lâu truy cập tập tin này thông qua / cygdrive cũng bây giờ là nhanh hơn nhiều so với trước
85fce

/usr/bin/cygserver-config: line 181: cygrunsrv: command not found, C:/cygwin64/binđang trên PATH, chạy với tư cách quản trị viên ...
Troyseph

1
@Troyseph Có C:\cygwin64\bin\cygrunsrv.exetồn tại? Bạn đã sử dụng sai dấu gạch chéo ( /) trong của bạn %PATH%? Là gói cygrunirv được cài đặt?
bobbogo

Ah, C:\cygwin64\bin\cygrunsrv.exekhông tồn tại, đã cài đặt cygrunsrv: NT/W2K service initiatorgói và tất cả đều hoạt động.
Troyseph

chạy cysserver-config như trong câu trả lời, đã ngừng hoạt động cygwin (quá trình không khởi động)
user174962

12

Nó dường như là để làm với xác thực. Đối với tôi, 40 giây để có một cái gì đó để thực thi. Sau đó, quá trình tạo trong cây quy trình đó có vẻ khá nhanh.

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

Vì vậy, tôi

  • Tạo bộ đệm xác thực cục bộ của tôi và thông tin đăng nhập Active Directory (AD) của riêng tôi

    $ mkpasswd -l -c >/etc/passwd
    $ mkgroup -l -c >/etc/group
    
  • Đã nói với Cygwin chỉ để sử dụng hai tập tin này

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

Tôi đã giết tất cả các quy trình Cygwin và bắt đầu lại. Tất cả mọi thứ bây giờ chạy tốt đẹp và nhanh chóng. Tôi sẽ xóa bản hack này trên mỗi bản cập nhật tệp Cygwin DLL và xem cách tôi truy cập.

Đây chỉ là một bản phác thảo mà bạn ít nhất muốn giữ bản sao lưu!

BIÊN TẬP

Không dùng nữa Xem câu trả lời gần đây hơn của tôi cho câu hỏi này để có giải pháp (IMHO) tốt hơn.


làm việc cho tôi ... và không phải cài đặt dịch vụ!
Droj

@bobbogo Câu trả lời của bạn ở phía dưới đối với tôi. Câu trả lời nào bạn đề cập đến trong phần chỉnh sửa của bạn ở cuối? Cảm ơn!
jpaugh

thật tốt khi biết về điều này, mặc dù không thể giải thích được tại sao "Tất cả các lệnh cygwin ... có độ trễ ~ 10-20 giây trước khi chúng thực thi".
philwalk

@philwalk Mình nghĩ là có. Vấn đề là lúc khởi động Cygwin phải đưa vào cơ sở dữ liệu người dùng của mình. Điều này mất một thời gian dài khi bạn đang ở trong một miền gió lớn. Không phải mọi lệnh đều chịu sự chậm trễ này, chỉ là lệnh đầu tiên trong bất kỳ cây quy trình nào.
bobbogo

2

Đọc bản cập nhật dưới đây, điều này hóa ra không phải là vấn đề.

Tôi đã phải chịu đựng một phiên bản cực đoan của vấn đề này, mặc dù nó không liên tục. Khi sự cố tồn tại, tất cả các lệnh mất từ ​​20 giây và trong những trường hợp cực đoan nhất vài phút. Nó sẽ xảy ra trong vài ngày, và sau đó nó sẽ biến mất trong vài ngày. BTW, tôi có một hệ thống cực kỳ nhanh với nhiều DRAM, ổ SSD, v.v.

Bây giờ tôi cuối cùng có một lý thuyết ứng cử viên có thể giải thích mọi thứ. Tôi vừa cập nhật Cygwin thông qua setup-x86_64.exe (điều mà tôi không thường xuyên làm được) và sau đó mọi thứ cực kỳ nhạy bén trở lại (nhanh hơn 1000 lần so với trước đây). Tôi đoán rằng rebaseall ở cuối bản cập nhật là điều làm nên sự khác biệt.

Cập nhật: việc tăng tốc tôi thấy trước đây rõ ràng là một sự trùng hợp ngẫu nhiên; khi vấn đề xuất hiện trở lại một tháng sau đó, điều này đã không khắc phục được. Nó chỉ ra rằng việc vô hiệu hóa bảo vệ trực tiếp Windows Defender đã giải quyết ngay sự chậm chạp.


2
vô hiệu hóa bảo vệ trực tiếp Windows Defender đã giải quyết ngay sự chậm chạp - sự cố đã biết
gavenkoa

1

Như một chú thích, tôi chỉ thấy rằng tôi phải xây dựng lại các tệp passwdgrouptệp sau khi cập nhật Cygwin. Khi hành vi chậm xảy ra một lần nữa, phần autorebase của quá trình cài đặt mất vài ngày để hoàn thành.

Tôi cũng không cần sửa đổi nsswitch.conf mặc định trên hệ thống (Windows 10) của mình.

Nhân tiện, hành vi chậm cũng thể hiện chính nó với dấu nhắc lệnh Windows và các ứng dụng di động. Một số ứng dụng di động mất vài giờ để tạo ra một cửa sổ khi bắt đầu.


Bạn có ý nghĩa gì khi xây dựng lại chúng? Chỉ cần tạo phiên bản mới, trống rỗng của chúng?
dùng13743

1

Đây là cách vấn đề này biểu hiện cho tôi. Đầu tiên, giả sử 20, các lệnh được nhập tại dấu nhắc Cygwin rất nhanh, nhưng sau đó nó đột ngột trở nên chậm một cách đau đớn.

Tôi đã thử sửa lỗi xác thực ở trên. Nó không làm việc cho tôi.

Câu hỏi thường gặp của Cygwin báo cáo rằng Cygwin không thích khoảng trắng trong tên người dùng hoặc nhóm. Xem tên đăng nhập Windows của tôi có một khoảng trắng trong đó, điều này có gây ra sự cố không? .

Tên nhóm của tôi có một khoảng trắng trong đó, vì vậy tôi đã thay đổi nó trong /etc/grouptệp được tạo trong bản sửa lỗi xác thực thành dấu gạch dưới. Điều đó cũng không hiệu quả.

Các bài đăng khác cho cùng một vấn đề đã báo cáo kết quả cho trình quét virus. Tôi đã thay thế trình quét vi-rút hiện có (Bảo vệ điểm cuối trung tâm hệ thống) bằng Sophos. Điều đó đã khắc phục vấn đề cho tôi.

Tôi hi vọng cái này giúp được.


0

Tôi đã gặp sự cố với việc thực thi các bản dựng chậm trong một thời gian trên cygwin.

Tôi đã buộc phải cập nhật ngày hôm qua và gặp phải vấn đề rebaseall chỉ đơn giản là không thực thi. Điều này buộc tôi phải đào sâu vào những thứ khác và tôi đã tìm thấy một báo cáo rằng Trusteer Rapport / End Point Protection đã được biết là gây ra vấn đề với rebaseall và thời gian phản hồi chậm. Vì vậy, tôi đã loại bỏ nó, thông qua phương pháp Windows Uninstall Programs thông thường thông qua Bảng điều khiển.

Sau đó tôi đã thực hiện rebaseall từ giao diện dash chạy với tư cách quản trị viên.

Vì vậy, điều này có nghĩa, (win7) từ dấu gạch ngang của menu bắt đầu. Phím tắt dash sẽ xuất hiện, Nhấp chuột phải để chạy với tư cách quản trị viên. Sau đó, khi nó lên, thực hiện:

/ usr / bin / rebaseall -v

Đi uống cà phê ... Nó sẽ ngồi trong vài giây trước khi nó hiển thị đầu ra, nếu nó ngồi và không làm gì quá 5 phút, bạn có một vấn đề khác.

Điều này đã sửa lỗi rebaseall, nhưng cũng đã tăng tốc độ xây dựng của tôi một cách ồ ạt. Đáng để kiểm tra xem bạn đã cài đặt chưa, hãy thử gỡ bỏ nó.


Bạn có thể mô tả các bước mà bạn đã thực hiện đủ chi tiết để cho phép người khác thực hiện chúng không? Xin vui lòng không trả lời trong các ý kiến; chỉnh sửa  câu trả lời của bạn để làm cho nó rõ ràng và đầy đủ hơn.
Scott

Trên cửa sổ 10, vị trí cho dấu gạch ngang là c:\msys64\user\bin\dash.exe. Để chạy nó với tư cách quản trị viên, tôi phải tạo một lối tắt trên màn hình của mình tới nó. Thật không may, điều này không khắc phục được cygwin chậm chạp của tôi: (
user13743
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.