ลำดับความสำคัญและความสัมพันธ์ของ Windows คืออะไรและมีการให้คำแนะนำอะไรบ้าง


9

ลำดับความสำคัญและความสัมพันธ์ (พบภายในตัวจัดการงาน) คืออะไรและใช้สำหรับอะไร:

พบได้ใน Task Manager

ในสถานการณ์ใดที่ควร / สามารถนำไปใช้ได้และมีข้อได้เปรียบอะไรบ้างในขณะที่กำหนดการตั้งค่าเหล่านี้เอง

คำตอบ:


3

การตั้งค่าความสัมพันธ์ทำอะไรบางอย่าง แต่คุณจะไม่ต้องการใช้มัน

การตั้งค่า CPU affinity บังคับให้ Windows ใช้เฉพาะ CPU (หรือแกนประมวลผล) ที่เลือก หากคุณตั้งค่าความสัมพันธ์กับ CPU ตัวเดียว Windows จะเรียกใช้แอพพลิเคชั่นนั้นบน CPU นั้นเท่านั้น

Windows ทำให้แอปพลิเคชั่นทำงานโดยอัตโนมัติบนโปรเซสเซอร์ที่มีงานน้อยที่สุดดังนั้นการ จำกัด ให้ CPU ตัวเดียวไม่ยอมให้ Windows ทำงานได้ แม้ว่า CPU / core 1 ไม่ว่างที่ใช้งานแอปพลิเคชันอื่น ๆ Windows จะไม่สามารถเรียกใช้แอปพลิเคชันที่มีการตั้งค่าความสัมพันธ์บน CPU / Core 2

จริงๆแล้วเหตุผลเดียวที่คุณต้องการทำเช่นนั้นก็คือการเรียกใช้แอปพลิเคชันเก่าที่ทำงานไม่ถูกต้องเมื่อทำงานบนระบบ multi-CPU / Core


5
> คุณจะไม่ต้องการใช้มัน ไม่จริง. หากคุณมีแอพพลิเคชั่นแบบเธรดเดียวดังนั้นจะไม่สามารถใช้เธรด / คอร์ของ CPU ได้อย่างเต็มที่และไม่มีสิ่งใดที่ Windows สามารถทำได้เพื่อบังคับ / หลอกลวง หากคุณมีสองแอพพลิเคชั่นที่มีเธรดเดียวคุณสามารถบอกให้ Windows ใช้แอพพลิเคชั่นที่เป็นเธรด / คอร์แยกต่างหากเพื่อให้แทนที่จะใช้การใช้งาน CPU โดยรวมอยู่ที่ประมาณ 50-75% คุณสามารถเพิ่มได้สูงสุด 100% กำลังใช้งานให้สูงสุดโดยหนึ่งโปรแกรม) ใช่คุณสามารถใช้ประโยชน์จากการตั้งค่าได้อย่างแน่นอน แต่เป็นสถานการณ์ที่เฉพาะเจาะจงที่คนส่วนใหญ่ไม่รู้จัก / ตระหนัก / ต้องการ
Synetech

2
หากคุณมีสองแอปพลิเคชั่นเธรดเดียว Windows จะรันแอปพลิเคชั่นแต่ละตัวบนเธรด / แกนที่แตกต่างกันและคุณจะได้รับการใช้ CPU 100% โดยไม่ต้องตั้งค่าความสัมพันธ์ ในการทดสอบฉันใช้โปรแกรมแบบเธรดเดี่ยว 4 อินสแตนซ์บนเครื่อง 4 คอร์ของฉันและใช้งาน CPU ได้ 100% Windows ฉลาดพอที่จะกำหนดเวลา CPU ได้อย่างมีประสิทธิภาพ
shf301

ฉันเดาว่ามันขึ้นอยู่กับระบบและ / หรือรุ่นของ Windows ฉันได้เห็นมัน (XP) โฮเวอร์ทั้งสองคอร์ทที่ 50-75% ซึ่งทั้งสองโพรเซสถูกตั้งค่าเป็นคอร์ทั้งสองและตั้งค่าซีพียูเหล่านั้นด้วยตนเองสูงสุด
Synetech

@Synetech: ดูเหมือนว่าเป็นไปไม่ได้เกือบ มันจะต้องมีการเคลื่อนย้ายทั้งสองกระบวนการจากแกนกลางไปยังแกนทั้งสองเสมอในเวลาเดียวกัน
David Schwartz

อีกกรณีการใช้ที่ถูกต้องสำหรับสิ่งนี้: มีแอพพลิเคชั่นที่อาจใช้ซีพียูที่มีอยู่ทั้งหมดและอาจป้องกันไม่ให้โปรแกรมอื่นทำงานได้ดีและ / หรือทำให้ระบบปฏิบัติการตอบสนองช้าต่อการป้อนข้อมูลของผู้ใช้ ในกรณีนี้บางคนอาจตัดสินใจ จำกัด แอปพลิเคชั่นดังกล่าวให้กับ CPU บางตัวเท่านั้น ในฐานะนักพัฒนาฉันใช้คุณสมบัตินี้บ่อยครั้งเมื่อทำการรวบรวมแอปพลิเคชั่นที่ใช้งาน CPU สูงเนื่องจากการทำโปรไฟล์ต้องใช้ CPU
Eyal Roth

2

การตั้งค่าความสัมพันธ์บอกกระบวนการที่โปรเซสเซอร์อนุญาตให้ทำงานได้

ในขณะที่มีประโยชน์มากสำหรับบางกรณีผู้ใช้ทั่วไปอาจไม่ควรยุ่งกับมัน

ตัวอย่างเช่นหากกระบวนการได้รับอนุญาตให้แกนของตัวเองสามารถรันได้ (ใกล้) เรียลไทม์โดยที่ยูทิลิตี้ windows 70 เหล่านั้นขัดจังหวะและสแต็กสลับบนตัวประมวลผลอย่างต่อเนื่อง แอปพลิเคชันแบบเรียลไทม์เป็นสิ่งที่หน้าต่างไม่สามารถทำได้ก่อนที่ระบบมัลติโปรเซสเซอร์ / มัลติคอร์จะเข้าฉากเพราะระบบปฏิบัติการจะขัดจังหวะ / สลับงานแอปพลิเคชั่นอย่างต่อเนื่องเพื่อจุดประสงค์ของตัวเอง ส่วนใหญ่สามารถเอาชนะได้โดยการแยกแอปพลิเคชันแบบเรียลไทม์โปรเซสเซอร์ขณะที่ป้องกันแอปพลิเคชันอื่นทั้งหมดในระบบจากการใช้โปรเซสเซอร์นั้น นี่เป็นเรื่องเฉพาะมาก แต่ระบบเช่นระบบจำลองการบินจริงระบบอัตโนมัติในโรงงานและระบบควบคุมป้อนกลับขึ้นอยู่กับสถาปัตยกรรมแบบเรียลไทม์ในการทำงาน

แอปพลิเคชั่นที่ใช้ตัวประมวลผลสูง (เช่น VM) สามารถแยกออกเป็นแกนหลักของตัวเองเพื่อให้คุณสามารถใช้งานได้โดยไม่ต้องนำส่วนที่เหลือของระบบของคุณไปรวบรวมข้อมูล ในทางทฤษฎีแล้วไฮเปอร์ไวเซอร์ที่ทำงานบนโปรเซสเซอร์ที่รองรับการทำงานร่วมกันของไฮเปอร์ไวเซอร์ที่ทำจากโลหะเปลือยสามารถเข้าถึงประสิทธิภาพของโปรเซสเซอร์ได้เท่ากับระบบปฏิบัติการอิสระที่ทำงานด้วยตัวมันเอง แน่นอนว่าในทางปฏิบัติแม้แต่ VM ที่ทำงานบนคอร์ / โปรเซสเซอร์ที่แยกได้ของตัวเองก็ยังต้องยอมรับค่าใช้จ่ายจำนวนเล็กน้อยจากโฮสต์ที่โฮสต์ระบบปฏิบัติการ

สำหรับแอปพลิเคชันที่จัดการกับข้อมูลจำนวนมากในฟลักซ์การแยกแอปพลิเคชันเข้ากับตัวประมวลผลของตัวเอง (และอาจยังคงใช้หลายคอร์) จะลดการแลกเปลี่ยนแคช

แอปพลิเคชันรุ่นเก่าที่แตกหักเมื่อพวกเขากำลังแพร่กระจายข้ามโปรเซสเซอร์หลายตัวสามารถถูก จำกัด ได้อย่างมีประสิทธิภาพเพียงหนึ่งคอร์ / โปรเซสเซอร์เพื่อแก้ไขปัญหา

หากคุณทำการวัดประสิทธิภาพในแอพพลิเคชั่นที่เฉพาะเจาะจงมันเป็นไปไม่ได้ที่จะได้ผลลัพธ์ที่สอดคล้องกันในระบบต่างๆเว้นแต่คุณจะแยกกระบวนการออกได้เพราะมิฉะนั้นคุณจะไม่สามารถควบคุมเวลาที่ระบบปฏิบัติการให้แอปพลิเคชันของคุณ คนส่วนใหญ่ยอมรับว่าการวัดประสิทธิภาพรันไทม์ไม่ได้ผลลัพธ์ที่ดี แต่คนเหล่านั้นไม่เคยพิจารณาว่าการแทรกแซงระบบปฏิบัติการ (ที่ทำให้ผลลัพธ์ไม่สอดคล้องกัน) สามารถถูก จำกัด โดยใช้ความสัมพันธ์

มีหลายกรณีที่ความสัมพันธ์มีความสำคัญ แต่ถ้าคุณไม่รู้ว่ามันคืออะไรคุณอาจไม่ต้องการมัน


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

มันเป็นไปได้โดยใช้ซอฟแวร์ของบุคคลที่ 3 ทำไม MS ไม่รวมฟังก์ชันนี้โดยค่าเริ่มต้นอยู่นอกเหนือฉัน
Evan Plaice

เพราะอย่างที่ฉันเขียนมันไม่ได้มีประโยชน์ขนาดนั้นทั้งหมด และมันก็เป็นมากมีแนวโน้มที่จะใช้ผิดวัตถุประสงค์ ในความเป็นจริงผลลัพธ์ตามปกติของการเป็น "ความคิดสร้างสรรค์" ที่มีความสัมพันธ์กันคือสิ่งต่าง ๆ ไม่ได้ทำงานเมื่อเป็นไปได้ โดยปกติแล้วการรันเธรดที่ดีกว่าที่คุณคิดว่าเป็นซีพียูที่ต้องการไม่ใช่ดีกว่า (หลังจากที่คุณตั้งค่าความสัมพันธ์ที่โง่เขลาเพื่อปฏิเสธการเข้าถึงซีพียูที่ไม่ได้ใช้งาน) กลไกเริ่มต้น "อุดมคติโปรเซสเซอร์" และ "โปรเซสเซอร์ก่อนหน้า" ของ Windows จะบรรลุความสอดคล้องกันของแคชที่ดี
เจมี่ Hanrahan

2

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

สมมติว่าขณะที่คุณกำลังทำงานกับแอปพลิเคชันนี้คุณมีแอพพลิเคชั่นอื่น ๆ ที่มีความต้องการซีพียูน้อย แต่เป็นแอปพลิเคชั่นตามเวลาจริง ตัวอย่างเช่นในขณะที่คุณกำลังใช้ Eclipse และเป็นการสุ่มเริ่มต้นการสร้างหรือทำการคอมไพล์ gwt คุณยังใช้คอมพิวเตอร์ของคุณในการสตรีมเพลงหรือทำงานวิจัยในหน้าต่างเบราว์เซอร์ (เช่นการค้นคว้าสาเหตุของปัญหาการสร้าง) . แน่นอนคุณจะไม่ตายถ้าเพลงของคุณข้ามหรือเบราว์เซอร์ของคุณหยุดตอบสนอง แต่มันน่ารำคาญ

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


คุณจะดีขึ้นมากในกรณีนี้เพียงตั้งค่ากระบวนการ hog CPU ของคุณเป็นลำดับความสำคัญต่ำ
เจมี่ Hanrahan

1

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

ตัวอย่างเช่น: ตั้งแต่ Windows Vista, Windows Media Player จะได้รับลำดับความสำคัญสูงกว่าโดยอัตโนมัติเพื่อให้แน่ใจว่าการเล่นไฟล์มีเดียจะราบรื่นและต่อเนื่องโดยมีเวลา CPU เพียง 20% สำหรับกระบวนการอื่น ๆ โดยค่าเริ่มต้น นี่เป็นเพียงตัวอย่างเพื่อช่วยให้คุณเข้าใจในสิ่งที่มีความสำคัญ (คุณสามารถอ่านเพิ่มเติมเกี่ยวกับลำดับความสำคัญของ Media Player ใน Vista บนTechnet )

ซอฟต์หรือความสัมพันธ์ที่ยากสามารถเพิ่มความเร็วในการประมวลผลได้เนื่องจากแคชของ CPU ยังสามารถมีส่วนที่เหลือของกระบวนการในกระบวนการเมื่อกระบวนการถูกขัดจังหวะก่อนหน้านี้แล้วกลับมาทำงานต่อในภายหลัง


ขอบคุณมาก! ดังนั้นคำแนะนำที่ดีสำหรับการใช้ afinity คืออะไร?
James Mertz


คำแนะนำที่ดีสำหรับการใช้ความสัมพันธ์: "ไม่"
Jamie Hanrahan

"เวลา CPU เพียง 20% เท่านั้นที่ใช้ได้กับกระบวนการอื่น" ไม่ใช่คำอธิบายที่ถูกต้อง การใช้งานจริงคือเธรดที่เลือกใช้ตัวกำหนดเวลาคลาสมัลติมีเดียได้รับอนุญาตให้ทำงานได้มากถึง 80% ของแต่ละช่วงเวลาการกำหนดเวลาในคลาสลำดับความสำคัญตามเวลาจริง ไม่จำเป็นต้องใช้สิ่งนั้นมากนักและหากไม่จำเป็น มากกว่า 20% จะมีให้สำหรับเธรดอื่น ๆ
Jamie Hanrahan

1

ตัวอย่างที่สมบูรณ์แบบของเกมนี้คือเกมคอมพิวเตอร์เก่า (หรือซอฟต์แวร์อื่น ๆ ) โดยเฉพาะอย่างยิ่งเมื่อมีการจำลองเกม (แอปพลิเคชัน) 32 บิตบนคอมพิวเตอร์ 64 บิตที่ทันสมัย ด้วยการตั้งค่าความสัมพันธ์สำหรับเกมเก่าที่ จำกัด ให้เหลือเพียงสี่คอร์จะสามารถหลีกเลี่ยงการเกิดปัญหาได้บ่อยครั้งเพื่อให้เกมสทูเบิร์นเริ่มเล่นได้ เอ็นจิ้นการเรนเดอร์บางตัวที่ใช้โดยเกม OLD โปรแกรมตัดต่อวิดีโอและซอฟต์แวร์กราฟิกเร่งความเร็วฮาร์ดแวร์หรือซอฟต์แวร์ CAD ไม่เข้าใจคอร์ของ CPU มากกว่าสี่คอร์และจะขัดข้องเมื่อเปิดตัว

ฉันไม่ได้สร้างบัญชีเพื่อโพสต์สิ่งนี้เพื่อหาฉัน google 'kieseyhow'

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.