การประมวลผลแบบมัลติคอร์อาจมีข้อดีและข้อเสีย และบางครั้งคุณจำเป็นต้องกำหนดคอร์ CPU ด้วยตนเองให้กับโปรแกรม (หรือที่รู้จักในชื่อ “ความเกี่ยวข้องของ CPU”) เพื่อให้ได้ประสิทธิภาพที่ดีที่สุด ภายใต้ Linux เครื่องมือหลักคือชุดงาน ฟังดูอาจน่ากลัว แต่เราจะแบ่งเป็นขั้นตอนง่ายๆ เพื่อทำให้กระบวนการง่ายขึ้น
พื้นฐานชุดงาน
การใช้ชุดงานสามารถแบ่งออกเป็นสองส่วน:ความเกี่ยวข้องของ CPU กับโปรแกรมที่จะเปิดตัวและกับโปรแกรมที่กำลังทำงานอยู่แล้ว การเปิดตัวโปรแกรมนั้นง่ายกว่าสำหรับทั้งสองโปรแกรม ดังนั้นเรามาเริ่มกันเลย คำสั่งเรียกใช้งานมีลักษณะดังนี้:
taskset -c cpu-core-number(s) application
ก่อนที่คุณจะป้อนหมายเลขของแกนประมวลผล CPU ที่คุณต้องการกำหนด อย่าลืมว่าโดยทั่วไปรูปแบบการกำหนดหมายเลข Unix จะเริ่มต้นที่ 0 ดังนั้นแกนหลักแรกของคุณจะเป็น 0 แกนหลักที่ 2 ของคุณ 1 และอื่นๆ ดังนั้น เครื่อง dual-core จะมีแกน 0 และ 1 และเครื่อง quad-core จะมีแกน 0, 1, 2 และ 3
สมมติว่าคุณต้องการรัน Audacity บนระบบ dual-core และคุณต้องการให้มันทำงานบนคอร์ที่สองของคุณ คำสั่งนั้นจะเป็น:
taskset -c 1 audacity
การใช้หลายคอร์
ในเครื่องใดเครื่องหนึ่งของเรา บางครั้ง Chrome จะวางเฟรมเมื่อสตรีมวิดีโอ แต่จะทำงานเองเมื่อกำหนดให้กับสองคอร์ หากคุณต้องการลองสิ่งเดียวกันบนระบบควอดคอร์และต้องการกำหนด Chrome ให้กับคอร์สามและสี่ คำสั่งจะเป็น:
taskset -c 2,3 google-chrome
คุณไม่จำเป็นต้องกำหนดความสัมพันธ์ของ CPU ให้กับคอร์ตามลำดับ – คุณสามารถเลือกคอร์ใดก็ได้โดยการสุ่ม สมมติว่าคุณมีเครื่องหกคอร์และต้องการใช้ Chrome กับคอร์ที่สองและหก คุณจะต้องป้อนคำสั่ง:
taskset -c 1,5 google-chrome
คุณยังสามารถใช้เส้นประเพื่อกระจายแอปพลิเคชันบนหลายคอร์ได้อีกด้วย ตัวอย่างเช่น โปรแกรมหรือฟังก์ชันระบบที่เก่ากว่าจำนวนมากจะมีค่าเริ่มต้นในคอร์แรกของคุณ จะเป็นอย่างไรถ้าคุณต้องการปล่อยให้คอร์แรกว่างที่สุดในขณะที่กระจายแอปพลิเคชันขนาดใหญ่ไปยังคอร์อื่นๆ ทั้งหมดของคุณ
สมมติว่าคุณมีระบบแปดคอร์และต้องการเรียกใช้ Steam จากคอร์ที่สองไปจนถึงคอร์ที่แปด คำสั่งนั้นจะเป็น:
taskset -c 1-7 steam
เปลี่ยนความสัมพันธ์สำหรับโปรแกรมที่เปิดตัวไปแล้ว
ชุดงานไม่ได้จำกัดอยู่เพียงการเปิดใช้แอปพลิเคชันเท่านั้น คุณยังสามารถเปลี่ยนความสัมพันธ์ของ CPU สำหรับโปรแกรมที่กำลังทำงานอยู่ได้ อย่างไรก็ตาม ก่อนที่คุณจะสามารถเปลี่ยนความสัมพันธ์ของแอปพลิเคชันได้ ก่อนอื่นคุณต้องทราบ Process ID (หรือ PID สั้น ๆ )
หากต้องการทราบ PID ของแอปพลิเคชัน คุณอาจลองใช้การตรวจสอบระบบของเดสก์ท็อป แต่วิธีที่เร็วที่สุดคือใช้ top
. ไม่น่าแปลกใจเลยที่มันใช้คำสั่ง:
top
ชื่อของคำสั่งที่ทำงานอยู่ทั้งหมดจะอยู่ที่ด้านขวาของหน้าจอ รหัสกระบวนการที่เกี่ยวข้องอยู่ทางด้านซ้าย
จด PID ของคุณเมื่อคุณจะใช้ในอีกสักครู่ สำหรับตัวอย่างนี้ เราจะใช้ VLC ซึ่งอยู่ตรงกลางของการเล่นวิดีโอ Matroska ความละเอียดสูงบนพีซีรุ่นเก่าที่มีแกนหกคอร์ เรากำลังทดลองใช้ CPU ที่สัมพันธ์กันเพื่อบีบประสิทธิภาพที่ดีที่สุดจาก VLC
ในการเปลี่ยนความสัมพันธ์ของกระบวนการที่มีอยู่ ไวยากรณ์จะมีลักษณะดังนี้:
taskset -cp core-numbers PID
หากคุณสามารถดูภาพหน้าจอด้านบนได้ รหัสกระบวนการของ VLC คือ 20485 เราจะลองใช้ VLC บนคอร์ที่สี่ ห้า และหก ซึ่งในการกำหนดหมายเลข Unix จะเป็น 3-5 หลังจากนั้น คำสั่งจะเป็น:
taskset -cp 3-5 20485
แต่ถ้าคุณต้องการตรวจสอบความสัมพันธ์ที่มีอยู่ก่อนที่จะเปลี่ยนแปลง สำหรับสิ่งนั้น ไม่ต้องป้อนหมายเลขหลัก และชุดงานจะบอกคุณว่าความสัมพันธ์นั้นถูกกำหนดอย่างไร ดังนั้นหากเราเปลี่ยนคำสั่งสุดท้ายเป็น:
taskset -cp 20485
มันแสดงให้เราเห็นว่า VLC นั้นกระจายไปทั่วทุกคอร์
ลองอีกครั้งด้วยโปรแกรมอื่น สมมติว่าเราใช้ Matroska ขนาดใหญ่ด้วย SMPlayer แทน และ SMPlayer ได้เปิดตัวแล้ว ท็อปบอกว่า PID คือ 16058
แต่ก่อนอื่นเราต้องการทราบความสัมพันธ์ที่มีอยู่ การใช้คำสั่งด้วย -cp
เปลี่ยนไปแต่ไม่มีตัวเลขหลัก เราจะเห็นว่าความสัมพันธ์กำลังกระจายไปทั่วทุกคอร์
ตอนนี้ เราสามารถลองกระจาย SMPlayer ไปทั่วทั้งสามคอร์เดียวกันกับการทดสอบ VLC ด้วยคำสั่ง:
taskset -cp 3-5 16058
นั่นเป็นเรื่องง่ายใช่มั้ย หากคุณต้องการเปรียบเทียบประสิทธิภาพพีซีของคุณ โปรดอ่านคำแนะนำเกี่ยวกับเครื่องมือที่มีประโยชน์ 8 อย่างในการทดสอบ CPU ของคุณ