เป็นไปได้หรือไม่ที่จะปิดการใช้งาน CPU (ไม่ใช่แกนประมวลผล)?


10

เป็นไปได้หรือไม่ที่จะปิดการใช้งาน CPU ไม่ใช่คอร์? ฉันต้องการทดสอบเพื่อตรวจสอบว่าประสิทธิภาพสามารถสร้างความแตกต่างได้หรือไม่

ฉันใช้ Ubuntu 10.10

คำตอบ:


10

maxcpusนอกจากนี้ยังทำเช่นนี้ในด้วงไบออสของคุณมีตัวเลือกที่เรียกว่า

คุณสามารถแก้ไขตัวเลือกนี้ในเมื่อเลือกตัวเลือกการบูตด้วงโดยการเพิ่มmaxcpus=1พารามิเตอร์ ภาพด้วงสุ่ม:

ป้อนคำอธิบายรูปภาพที่นี่

เลือก 'e' และคุณจะได้รับบรรทัดคำสั่งที่คุณสามารถเพิ่มตัวเลือก

คุณยังสามารถสร้างตัวเลือกการบูตแบบถาวรในด้วงโดยการทำสำเนาตัวเลือกการบูตปัจจุบันของคุณและเพิ่มลงmaxcpus=1ในพารามิเตอร์การบูต คุณสามารถตั้งชื่อนี้ว่า 'Ubuntu, เคอร์เนล 2.5.12-9-386 (1 cpu)' และใช้มันท่ามกลางตัวเลือกการบูตอื่น ๆ เช่นภาพที่แสดง

คุณสามารถตรวจสอบการทำงานใน 1 cpu โดยการออก:

cat /proc/cpuinfo | grep processor ควรแสดงสิ่งนี้:

หน่วยประมวลผล: 0
หน่วยประมวลผล: 1

และบรรทัดที่ 2 ควรหายไปหลังจากบูทด้วย 1 CPU


1
คำถามนี้จะทำให้เป็นเรื่องตลกในทางปฏิบัติที่มีความหมายมาก! : D
Alvar

จะเกิดอะไรขึ้นถ้าคุณตั้ง maxcpus = 0 : P
crazy2be

@ Rinzwind ฉันทำสิ่งที่คุณพูด แต่ผลลัพธ์ดูเหมือนแปลกฉันได้รับข้อมูลโปรเซสเซอร์ 12 ก่อนที่จะเพิ่ม "maxcpus = 1" ให้กับพารามิเตอร์เมื่อทำการ grepping แต่ฉันได้รับเพียง 1 หน่วยประมวลผลข้อมูลหลังจากการเปลี่ยนแปลงดูเหมือนว่าแกนเดียวใน เปิดใช้งานทั้ง 12 คอร์ หมายเหตุ: คอมพิวเตอร์ของฉันมีซีพียูหกคอร์สองตัว
LeoYuan 袁力皓

@ crazy2be คาดเดา: โปรเซสเซอร์ที่ 1 เรียกว่า 0 คุณจะใช้มันได้หรือ : D
Rinzwind

@ LeoYuan88 袁力皓คุณสามารถแก้ไขผลลัพธ์ของ cat / proc / cpuinfo | หน่วยประมวลผล grep ก่อนและหลังที่คุณบูตด้วย maxcpus = 1?
Rinzwind

7

คุณสามารถปิดการใช้งาน CPU แบบไดนามิกได้/sys/devices/system/cpu/cpuN/onlineเช่นเมื่อต้องการปิดการใช้งาน CPU 1 ให้ใช้

echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online

และเพื่อเปิดใช้งานอีกครั้งให้ใช้:

echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online

ดูเหมือนว่าจะปิดใช้งาน lcore ไม่ใช่ CPU ฉันมีหนึ่งในไดเรกทอรีเหล่านี้สำหรับแต่ละแกนตรรกะในระบบของฉัน
sudo

1

คุณสามารถถอดปลั๊ก CPU ออกจากซ็อกเก็ตได้ตลอดเวลา มันกำลังดุร้าย แต่คุณรับประกันได้ว่าจะได้รับการทดสอบตามที่คุณต้องการและคุณไม่ต้องกังวลว่าเคอร์เนล / ไบออส / สวิตช์ใดที่ทำสิ่งที่คุณต้องการ

บริษัท ของฉันติดตั้งเซิร์ฟเวอร์ฟาร์มขนาดใหญ่ในสถานที่ต่าง ๆ ทั่วโลก ในห้องแล็บของเราบางครั้งเราจะลบซีพียูออกจากซ็อกเก็ตเพื่อทำการทดสอบ

มีรูปแบบที่น่าสนใจในการทดสอบนี้ที่คุณสามารถทำได้กับระบบNUMAหลาย CPU ในเมนบอร์ดประเภทนั้นคุณสามารถลบ DIMM หน่วยความจำทั้งหมดที่ควบคุมโดย CPU จริงหนึ่งตัว ระบบจะยังคงบู๊ตได้ดีและคุณสามารถเรียกใช้การทดสอบกับแอปพลิเคชันของคุณที่ถูกตรึงไว้ในคอร์ต่างๆซึ่งจะช่วยให้คุณสามารถวัดผลกระทบของหน่วยความจำ "ท้องถิ่น" หรือ "ระยะไกล"


ขออภัยฉันยังไม่รู้วิธีถอดปลั๊ก CPU ออกจากซ็อกเก็ตคุณสามารถแสดงวิธีการทำงานได้หรือไม่
LeoYuan 袁力皓

0

ต้องการดูประสิทธิภาพของแอพพลิเคชั่นแบบมัลติเธรดพร้อมจำนวนแกนประมวลผลหรือไม่? หากเป็นกรณีนี้คุณสามารถใช้ยูทิลิตี tasket ฉันเดาว่าคุณมีเครื่อง NUMA คุณสามารถติดตั้งยูทิลิตี numactl และใช้มันคุณสามารถค้นหาแกนที่สอดคล้องกับ CPU ตัวใด ตัวอย่างเช่นเครื่องของคุณมี CPUS แบบ quad-core สองตัว (ชิป) โดยใช้ยูทิลิตี tasket คุณสามารถสร้างแกนของ CPU หนึ่งตัวเป็นชุดและจัดสรรให้กับแอปพลิเคชันของคุณ จากนั้นแอปพลิเคชันของคุณจะใช้ CPU / Chip เพียงหนึ่งเดียว โปรดแจ้งให้เราทราบหากคุณต้องการข้อมูลเพิ่มเติม

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