ประเภทงาน (TT) เป็นตัวกำหนดตารางเวลา CPU ทางเลือกสำหรับ Linux
เป้าหมายของตารางงานประเภทงาน (TT) คือการตรวจจับประเภทงานตามพฤติกรรมของพวกเขาและควบคุมการจัดตารางเวลาตามประเภทของพวกเขา มี 5 ประเภท:
ค้นหาคำอธิบายและกฎการตรวจจับใน tasks.ods
ประโยชน์ของประเภทงานคือการอนุญาตให้ตัวกำหนดตารางเวลามีการควบคุมมากขึ้นและเลือกงานที่ดีที่สุดในการทำงานถัดไปใน CPU
TT ให้งาน RT -20 ในการคำนวณ vruntime สิ่งนี้ช่วยเพิ่มงาน RT ผ่านงานอื่น ๆ กฎการชำระเงินเป็น HRRN อย่างหมดจดโดยที่งาน RT มีความสำคัญเนื่องจาก vruntimes ของพวกเขาค่อนข้างน้อยกว่าประเภทอื่น ๆ เหตุผลของการใช้ HRRN แทนการเลือกระดับยากคือการทำให้ preemtions ราบรื่นและเพื่อป้องกันโอกาสในการอดอาหาร
คุณต้องรวบรวมด้วย CONFIG_SCHED_DEBUG=y ฉันได้เพิ่มฟิลด์ในผลลัพธ์ของงานข้อมูล task_type ดูและใช้ ttdebug.sh
ตัวอย่างการใช้งาน:
ttdebug.sh | grep -i realtime
watch -t "(ttdebug.sh | grep -i interactive)"
watch -t "(ttdebug.sh | egrep -i 'webco|firefox')"
หมายเหตุ: ตรวจพบประเภทงานตามพฤติกรรมของพวกเขาไม่ใช่ตามที่ควรจะเป็น ดังนั้นหาก Systemd ในบางจุดทำหน้าที่เหมือนงานเรียลไทม์และไปนอนนาน ๆ ประเภทจะเป็นแบบเรียลไทม์จนกว่าจะตื่นขึ้นมาและได้รับการอัปเดตประเภท คุณอาจเห็นงานนอนหลับจำนวนมากที่มีประเภทที่ไม่ถูกต้องเพราะในบางจุดในการบูตเวลาที่พวกเขาทำหน้าที่เหมือนเรียลไทม์, cpu_bound หรือประเภทใดก็ได้ งานเหล่านั้นนอนหลับเป็นเวลานานดังนั้นเมื่อพวกเขาตื่นขึ้นมาประเภทของพวกเขาจะเป็น interacitve sine พวกเขามีค่า hrrn ที่สูงมาก ดังนั้นไม่ต้องกังวลเกี่ยวกับประเภทของกระบวนการระบบนอน
s kernel.sched_tt_max_lifetime
ค่าเริ่มต้นคือ 22s นี่คือเวลาชีวิตสูงสุดของงานเพื่อทำให้เวลาชีวิตและความรุนแรงของพวกเขาเป็นปกติ คล้ายกับ cacule ของ cacule_max_lifetime
kernel.sched_tt_rt_prio ค่าเริ่มต้นคือ -20 ช่วง [-20, 19] ในกรณีที่งานที่มีประเภทอื่นที่ไม่ใช่เรียลไทม์กำลังหิวโหยเนื่องจากลำดับความสำคัญของงานเรียลไทม์สูงเกินไปคุณสามารถทำให้ลำดับความสำคัญของงานเรียลไทม์อ่อนลง -20 เป็นค่าสูงสุด 19 เป็นสิ่งสำคัญที่สุด
kernel.sched_tt_interactive_prio ค่าเริ่มต้นคือ -10 ช่วง [-20, 19]
kernel.sched_tt_cpu_bound_prio ค่าเริ่มต้นคือ -15 ช่วง [-20, 19]
kernel.sched_tt_batch_prio ค่าเริ่มต้นคือ 19. ช่วง [-20, 19]
kernel.sched_tt_balancer_opt
สามารถตั้งค่าเป็น 4 ค่า:
คุณสามารถเปลี่ยนตัวเลือก Balancer ในเวลาทำงาน
kernel.sched_tt_lat_sens_enabled ค่าเริ่มต้นคือ 1. ความละเอียดอ่อนในเวลาแฝงรักษาซีพียู (โดยไม่มีงาน) ที่ความถี่สูงสำหรับบางครั้ง (~ 1ms) ในกรณีของงานที่เข้ามาในช่วงเวลานี้จะทำงานได้เร็วขึ้น มันลดเวลาแฝง แต่เพิ่มการใช้พลังงาน หากเลือก Power Save Balancer ตัวเลือกนี้จะไม่มีผล (เช่นปิดการใช้งาน = 0)
kernel.sched_tt_dedicated_cpu_bound_enabled ค่าเริ่มต้นคือ 1 ตัวเลือกนี้ติดงาน CPU ที่ถูกผูกไว้กับ CPU ปัจจุบันเพื่อปรับปรุงตำแหน่งแคช ซีพียูสามารถมีงาน CPU ที่ถูกผูกไว้เพียงหนึ่งเดียวเท่านั้น
โทรเลข: https://t.me/tt_sched
ขอบคุณ
Hamad