วิธีการตรวจสอบว่ามีการเปิดใช้งาน Isolcpus และซีพียูตัวใดตัวอย่างเช่นคุณเชื่อมต่อเป็นครั้งแรกบนเซิร์ฟเวอร์ เงื่อนไข:
ไม่วางไข่กระบวนการใด ๆ เพื่อดูว่ามันจะถูกโยกย้าย
กรณีที่ใช้ก็คือว่าisolcpus=1-7เมื่อวันที่ 6 แกน i7 ดูเหมือนว่าจะไม่ได้เปิดใช้งาน isolcpus ที่บูตและฉันอยากจะรู้ว่าถ้าเป็นไปได้จาก/proc/, /sysหรือ internals เคอร์เนลใด ๆ ที่สามารถอ่านได้ใน userspace เพื่อให้สถานะที่ชัดเจนของการเปิดใช้งานของ isolcpus และซีพียูใดที่เกี่ยวข้อง หรือแม้กระทั่งอ่านการตั้งค่าที่ใช้งานของตัวกำหนดตารางเวลาซึ่งเป็นสิ่งแรกที่เกี่ยวข้องโดย isolcpus
พิจารณาว่าสถานะการออนไลน์มีขนาดใหญ่มากซึ่งdmesgจะไม่มีการแสดงรายการบูตเพื่อตรวจหาข้อผิดพลาดเมื่อเริ่มต้น คำตอบพื้นฐานเช่น " look at kernel cmd line " จะไม่ได้รับการยอมรับ :)
pidstat isolcpusคุณสามารถอธิบายเพิ่มเติมอีกเล็กน้อยได้หรือไม่
isolcpusมันคืออะไรแต่pidstatสามารถบอกคุณได้ว่า CPU ทำงานอย่างไรหากคุณผ่านการ-C process_nameตั้งค่าสถานะ ตัวอย่างเช่นpidstat -C topสร้างดังต่อไปนี้ 10:56:52 AM PID %usr %system %guest %CPU CPU Command 10:56:52 AM 3457 0.00 0.00 0.00 0.00 6 top
isolcpusเป็นพารามิเตอร์เคอร์เนลซึ่งบังคับให้ตัวกำหนดตารางเวลาไม่ย้ายกระบวนการใด ๆ ด้วยตัวเองหากแยกได้ สำหรับตัวอย่างบนเซิร์ฟเวอร์ 8 cpu isolcpus=1-7ในบรรทัดคำสั่งเคอร์เนลจะบังคับให้เกิดกระบวนการทั้งหมดที่แยกจากกันโดย init และคำสั่งใด ๆ ในเชลล์เพื่อให้ทำงานบน CPU0 เท่านั้น ในการรันงานบนซีพียูแบบแยกตัวคุณจะต้องเรียกใช้งานด้วยtasksetตัวอย่าง ดังนั้นเมื่อคำนึงถึงสิ่งที่ฉันถามดูเหมือนว่าคำตอบของคุณอยู่นอกหัวข้อ ขอบคุณที่พยายามตอบฉัน
pidstat -C isolcpusคุณสามารถใช้ pidstat มาจากsysstatแพ็คเกจ