วิธีการตรวจสอบว่ามีการเปิดใช้งาน 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
แพ็คเกจ