Cygwin จาก Windows ช้ามาก / ช้ามาก


22

ทันใดนั้นคำสั่ง Cygwin ทั้งหมดที่ฉันเริ่มต้นจากบรรทัดคำสั่งของ Windows จะมีความล่าช้า ~ 10-20 วินาทีก่อนที่พวกเขาจะดำเนินการเพื่อที่ Cygwin จะไม่สามารถใช้งานได้ทั้งหมด ฉันพยายามติดตั้งใหม่โดยไม่ประสบความสำเร็จ

การดำเนินการคำสั่งจากภายในหน้าต่าง Bash shell ทำงานได้ดี (ในขณะที่เริ่ม 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>
barlop

โปรดอัปเดตใด ๆ
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แพคเกจติดตั้ง?
bobbogo

อ่าC:\cygwin64\bin\cygrunsrv.exeไม่มีอยู่ติดตั้งcygrunsrv: NT/W2K service initiatorแพคเกจและทั้งหมดใช้งานได้
Troyseph

รัน 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 ทั้งหมดและเริ่มต้นอีกครั้ง ตอนนี้ทุกอย่างทำงานได้ดีและรวดเร็ว ฉันจะลบแฮ็คนี้ในทุกไฟล์ Cygwin DLL และดูว่าฉันจะไปได้อย่างไร

นี่เป็นเพียงภาพร่าง - อย่างน้อยคุณจะต้องการสำรองข้อมูล!

แก้ไข

เลิก ดูคำตอบล่าสุดของฉันสำหรับคำถามนี้สำหรับโซลูชันที่ดีกว่า (IMHO)


ทำงานได้สำหรับฉัน ... และไม่ต้องติดตั้งบริการ!
Droj

@bbbogo คำตอบของคุณอยู่ด้านล่างสำหรับฉัน คำตอบใดที่คุณอ้างถึงในตอนท้ายของการแก้ไข? ขอบคุณ!
jpaugh

รู้ดีถึงเรื่องนี้แม้ว่าจะไม่สามารถอธิบายได้ว่าทำไม "คำสั่ง cygwin ทั้งหมด ... มีความล่าช้าประมาณ 10-20 วินาทีก่อนที่พวกเขาจะดำเนินการ"
philwalk

@philwalk ฉันคิดว่ามันเป็นอย่างนั้น ปัญหาคือที่Cygwinเริ่มต้นต้องมีการเติมฐานข้อมูลผู้ใช้ ใช้เวลานานเมื่อคุณอยู่ในโดเมน windoze ขนาดใหญ่ ไม่ใช่ทุกคำสั่งที่ได้รับความล่าช้านี้เพียงครั้งแรกในกระบวนการต้นไม้ใด ๆ
bobbogo

2

อ่านการอัปเดตด้านล่างนี่กลับกลายเป็นว่าไม่ใช่ปัญหา

ฉันทรมานจากปัญหานี้อย่างมากถึงแม้ว่ามันจะไม่สม่ำเสมอ เมื่อมีปัญหาคำสั่งทั้งหมดจะใช้เวลาระหว่าง 20 วินาทีและในกรณีที่รุนแรงที่สุดหลายนาที มันจะเกิดขึ้นเป็นเวลาหลายวันแล้วมันก็จะหายไปหลายวัน BTW ฉันมีระบบที่เร็วมากพร้อม DRAM ไดรฟ์ SSD และอื่น ๆ อีกมากมาย

ในที่สุดฉันก็มีทฤษฎีผู้สมัครที่อาจอธิบายสิ่งต่าง ๆ ได้ ฉันเพิ่งอัปเดต Cygwin ผ่านทาง setup-x86_64.exe (ซึ่งฉันทำไม่บ่อยนัก) และหลังจากนั้นสิ่งต่าง ๆ ก็ตอบสนองได้อย่างมากอีกครั้ง (แท้จริงเร็วกว่า 1,000 เท่า) ฉันคาดเดา rebaseall ในตอนท้ายของการอัพเดทคือสิ่งที่สร้างความแตกต่าง

อัปเดต: การเร่งความเร็วที่ฉันเห็นมาก่อนเป็นเรื่องบังเอิญ เมื่อปัญหาปรากฏขึ้นอีกหนึ่งเดือนต่อมาสิ่งนี้ก็ไม่สามารถแก้ไขได้ ปรากฎว่าการปิดใช้งานการป้องกันแบบสดของ Windows Defender สามารถแก้ไขการชะลอตัวได้ทันที


2
ปิดการใช้งาน Windows Defender ป้องกันการถ่ายทอดสดการแก้ไขทันทีชะลอตัว - ที่รู้จักกันในปัญหา
gavenkoa

1

ในเชิงอรรถฉันเพิ่งพบว่าฉันต้องสร้างpasswdและgroupไฟล์ใหม่หลังจากอัพเดต Cygwin เนื่องจากพฤติกรรมช้าเกิดขึ้นอีกครั้งส่วนฐานข้อมูลอัตโนมัติของการติดตั้งใช้เวลาหลายวันจึงจะเสร็จสมบูรณ์

ฉันไม่จำเป็นต้องแก้ไขค่าเริ่มต้น nsswitch.conf ในระบบของฉัน (Windows 10)

โดยวิธีการที่พฤติกรรมช้าก็แสดงให้เห็นตัวเองด้วยพรอมต์คำสั่ง Windows และการใช้งานแบบพกพา แอปพลิเคชั่นพกพาบางตัวใช้เวลาหลายชั่วโมงในการสร้างหน้าต่างเมื่อเริ่มต้น


คุณหมายถึงการสร้างใหม่ได้อย่างไร เพิ่งสร้างเวอร์ชันที่ว่างเปล่าใหม่หรือไม่
user13743

1

นี่คือปัญหาที่เกิดขึ้นกับฉัน สำหรับคนแรกพูด 20 คำสั่งที่ป้อนที่ Cygwin แจ้งว่ามันเร็ว แต่แล้วมันก็ช้าลงอย่างเจ็บปวด

ฉันลองแก้ไขการรับรองความถูกต้องด้านบนแล้ว มันไม่ได้ผลสำหรับฉัน

คำถามที่พบบ่อยของ Cygwin รายงานว่า Cygwin ไม่ชอบช่องว่างในชื่อผู้ใช้หรือกลุ่ม ดูที่ชื่อเข้าสู่ระบบ Windows ของฉันมีช่องว่างในนั้นจะทำให้เกิดปัญหา .

ชื่อกลุ่มของฉันมีที่ว่างอยู่ในนั้นฉันจึงเปลี่ยนมันใน/etc/groupไฟล์ที่สร้างในการแก้ไขการรับรองความถูกต้องเป็นขีดล่าง นั่นไม่ได้ผลเช่นกัน

การโพสต์อื่น ๆ สำหรับปัญหาเดียวกันได้รายงานว่ามันเป็นผลให้สแกนไวรัส ฉันแทนที่โปรแกรมสแกนไวรัสที่มีอยู่ (System Center Endpoint Protection) ด้วย Sophos ที่แก้ไขปัญหาสำหรับฉัน

ฉันหวังว่านี่จะช่วยได้.


0

ฉันมีปัญหากับการเรียกใช้งานบิลด์ช้าในขณะที่ cygwin

ฉันถูกบังคับให้ต้องอัปเดตเมื่อวานนี้และพบปัญหาเรื่อง rebaseall เพียงแค่ไม่สามารถดำเนินการได้ สิ่งนี้บังคับให้ฉันต้องขุดหาสิ่งอื่นและพบรายงานว่า Trusteer Rapport / End Point Protection เป็นที่ทราบกันดีว่าทำให้เกิดปัญหากับ rebaseall และเวลาตอบสนองช้า ดังนั้นฉันจึงลบมันออกโดยใช้วิธีการถอนการติดตั้งโปรแกรม Windows ปกติผ่านแผงควบคุม

จากนั้นฉันก็ทำการ rebaseall จากส่วนต่อประสานที่ทำงานเป็นผู้ดูแลระบบ

ดังนั้นนี่หมายความว่า (win7) จากเส้นประประเภทเมนูเริ่ม ทางลัดรีบจะปรากฏขึ้นคลิกขวาเพื่อเรียกใช้ในฐานะผู้ดูแล จากนั้นเมื่อดำเนินการเสร็จให้ดำเนินการ:

/ usr / bin / rebaseall -v

ไปดื่มกาแฟ ... มันจะนั่งสักสองสามวินาทีก่อนที่มันจะแสดงผลออกมาถ้านั่งและไม่ทำอะไรเลยนานกว่า 5 นาทีคุณมีปัญหาอื่น

สิ่งนี้คงที่ rebaseall แต่ก็เพิ่มความเร็วของการสร้างของฉันอย่างหนาแน่น ควรตรวจสอบเพื่อดูว่าคุณติดตั้งไว้หรือไม่ลองลบออก


คุณช่วยอธิบายขั้นตอนที่คุณทำอย่างละเอียดเพื่อให้คนอื่นทำหรือไม่ …โปรดอย่าตอบในความคิดเห็น แก้ไข  คำตอบของคุณเพื่อให้ชัดเจนและสมบูรณ์ยิ่งขึ้น
สกอตต์

บน windows 10 c:\msys64\user\bin\dash.exeสถานที่สำหรับเส้นประเป็น เพื่อที่จะเรียกใช้ในฐานะผู้ดูแลระบบฉันต้องสร้างทางลัดบนเดสก์ท็อปของฉัน น่าเสียดายที่นี่ไม่ได้แก้ไข cygwin ที่ช้าของฉัน: (
user13743
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.