Cygwin з Windows дуже повільний / млявий


22

Раптом усі команди Cygwin, які я починаю з командного рядка Windows, мають відставання ~ 10-20 секунд перед їх виконанням, так що Cygwin стає абсолютно непридатним. Я вже намагався перевстановитись без успіху.

Виконання команд у вікні оболонки Bash працює добре (під час запуску Bash я бачу відставання). Видалення всіх записів із моєї локальної змінної PATH не впливає. Я використовую Windows 7 x64 та Cygwin x64 v 1.7.34 (0.285 / 5/3).


не знаю, але це те саме з cmd.exe, коли ви не запускаєте cygwin.bat? наприкладC:\cygwin\bin>.\ls.exe <ENTER>
барлоп

Будь-які оновлення, будь ласка?
yO_

Відповіді:


15

Інколи працюю в домені Windows з тисячами користувачів.

Я не хочу робити жодного найкращого підходу. Я вважаю за краще Cygwin кешувати інформацію про користувачів за потребою. Виявляється, це легко зробити.

Просто запустіть cygserverвхід.

Щоб налаштувати це правильно, запустіть cygserver-configлише один раз. Це дозволить cygserverзапустити службу Windows з правильними обліковими записами. Зробіть це з вікна адміністратора Cygwin.

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

Що cygserverдля мене робить?

Перегляньте документацію на сайті Cygwin . В основному це робить кешування користувачів, а також забезпечення IPC працює між усіма процесами Cygwin .

Ваш пробіг може різнитися, але це зараз мій бажаний спосіб роботи. Я мав це зробити років тому.


Це чудово! дякую за спільний доступ після такого тривалого часу. Використання доступу до цього файлу через / cygdrive зараз значно швидше порівняно з раніше
85fce

/usr/bin/cygserver-config: line 181: cygrunsrv: command not found, C:/cygwin64/binЗнаходиться на PATH, працює як адміністратор ...
Troyseph

1
@Troyseph Чи C:\cygwin64\bin\cygrunsrv.exeіснує? Ви помилково використали косою косою стрілкою ( /) у вашому %PATH%? Чи встановлено пакет cygrunsrv ?
Боббого

Ах, C:\cygwin64\bin\cygrunsrv.exeне існує, встановив cygrunsrv: NT/W2K service initiatorпакет і все працює.
Тройсеф

запустити cygserver-config, як у відповіді, взагалі перестала працювати cygwin (процес не вдалося запустити)
користувач174962

12

Здається, це стосується автентифікації. Для мене 40 секунд, щоб отримати щось для виконання. Після цього, однак, створення процесу в цьому дереві процесів здається досить швидким.

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

Так я

  • Зробив кеш моєї локальної аутентифікації та власних облікових даних Active Directory (AD)

    $ mkpasswd -l -c >/etc/passwd
    $ mkgroup -l -c >/etc/group
    
  • Сказав Cygwin просто використовувати ці два файли

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

Я вбив усі процеси Cygwin і почав знову. Зараз все працює добре і швидко. Я зніму цей злом при кожному оновленні DLL-файлу Cygwin і подивіться, як я ввімкнувся.

Це лише ескіз - ви хоч хочете зберегти резервні копії!

EDIT

Застарілий. Дивіться мою останню відповідь на це питання для кращого рішення (ІМХО).


працював на мене ... і не потрібно було встановлювати послугу!
Droj

@bobbogo Ваша відповідь є внизу для мене. На яку відповідь ви посилаєтесь у своїй редакції наприкінці? Спасибі!
jpaugh

приємно знати про це, хоча він не може пояснити, чому "Усі команди cygwin ... мають відставання ~ 10-20 секунд до їх виконання".
фільвард

@philwalk Я думаю, що це так. Проблема полягає в тому, що при запуску Cygwin повинен заповнити свою базу даних користувачів. Це займе тривалий час, коли ви знаходитесь у великому домені windoze. Не кожна команда зазнає цієї затримки, лише перша в будь-якому дереві процесів.
Боббого

2

Прочитайте оновлення нижче, виявилося, що це не проблема.

Я страждав від крайньої версії цієї проблеми, хоча вона переривається. Коли проблема існує, всі команди займають від 20 секунд, а в самих крайніх випадках - кілька хвилин. Це відбуватиметься протягом декількох днів, а потім піде на кілька днів. До речі, у мене надзвичайно швидка система з великою кількістю DRAM, SSD-дисків тощо.

Зараз у мене нарешті є теорія кандидата, яка може пояснити щось. Щойно я оновив Cygwin за допомогою setup-x86_64.exe (що я роблю нечасто), а згодом речі знову надзвичайно реагують (буквально в 1000 разів швидше, ніж раніше). Я здогадуюсь, що ребалзал наприкінці оновлення - це мало значення.

Оновлення: скорочення, яке я бачив раніше, було, мабуть, збігом обставин; коли проблема знову з’явилася через місяць, це не вирішило. Виявляється, відключення захисту Windows Defender Live миттєво вирішило сповільнення.


2
відключення захисту Windows Defender Live миттєво вирішило сповільнення - відома проблема
gavenkoa

1

Як виноска, я щойно встановив, що мені довелося відновити файли passwdта groupфайли після оновлення Cygwin. Оскільки повільна поведінка знову відбувалася, для завершення роботи автобази було потрібно кілька днів.

Мені також не потрібно було змінювати стандартну nsswitch.conf в моїй (Windows 10) системі.

До речі, повільна поведінка показала себе і за допомогою командного рядка Windows та портативних програм. Деякі портативні програми потребували декількох годин, щоб створити вікно при запуску.


Що ви маєте на увазі відновити їх? Просто складіть нові, порожні їх версії?
користувач13743

1

Ось як ця проблема проявилася для мене. Для перших, скажімо, 20 команд, введених у Cygwin підкажіть, це було швидко, але потім різко стало болісно повільним.

Я спробував вищезазначене виправлення автентифікації. Це не працювало для мене.

Поширені запитання про Cygwin повідомляють, що Cygwin не любить пробілів в іменах користувачів або груп. Дивіться в розділі Моє ім'я для входу в Windows, у ньому є пробіл, це спричинить проблеми?.

У моїй назві групи було пробіл, тому я змінив її на /etc/group файлі, створеному у виправлення аутентифікації, на підкреслення. Це теж не спрацювало.

Інші повідомлення про ту ж проблему повідомили, що це призвело до сканування вірусів. Я замінив свій існуючий сканер вірусів (System Center Endpoint Protection) на Sophos. Це вирішило для мене проблему.

Я сподіваюся, що це допомагає.


0

У мене на деякий час на cygwin виникли проблеми з повільним виконанням збірок.

Мене вчора змусили оновити і зіткнувся з проблемою повторного набору просто не вдалося виконати. Це змусило мене розібратися в інших речах, і я виявив звіт про те, що, як відомо, Trusteer Rapport / End Point Protection викликає проблеми з повторним набором і повільним часом реагування. Тож я видалив її звичайним методом видалення програм Windows через панель керування.

Потім я зробив повторний набір з інтерфейсу тире, який працює як адміністратор.

Отже, це означає, що (win7) з меню "Пуск" наберіть тире. З'явиться ярлик ярлика. Клацніть правою кнопкою миші, щоб запустити як адміністратор. Потім, коли він працює, виконайте:

/ usr / bin / rebaseall -v

Ідіть на каву ... Він просидітиме кілька секунд, перш ніж він покаже вихід, якщо він сидить і нічого не робить більше 5 хвилин, у вас є інша проблема.

Це виправляло ребазал, але також значно збільшувало швидкість мого збирання. Варто перевірити, чи встановлений він у вас, спробуйте його видалити.


Чи можете ви описати кроки, які ви зробили достатньо детально, щоб дозволити їх виконувати хтось інший? … Будь ласка, не відповідайте на коментарі; відредагуйте  свою відповідь, щоб зробити її більш зрозумілою та повною.
Скотт

У Windows 10 місце для дефісу було c:\msys64\user\bin\dash.exe. Щоб запустити його як адміністратора, мені довелося створити ярлик на своєму робочому столі до нього. На жаль, це не виправило мого повільного цигуна: (
user13743
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.