ฉันจะเปลี่ยนเป็นตัวจัดกำหนดการแบบ noop ได้อย่างไร


29

ฉันมี SSD ในแล็ปท็อปของฉันและได้รับแจ้งว่าควรเปลี่ยนเป็นตัวกำหนดเวลา "noop"

ฉันจะเปลี่ยนเป็นตัวจัดกำหนดการแบบ noop ได้อย่างไรและฉันจะทำการเปลี่ยนแปลงเพื่อที่จะคงอยู่ตลอดการบูตเครื่องใหม่ได้อย่างไร

คำตอบ:


21

แก้ไข / etc / default / grub เช่นgksudo gedit /etc/default/grubที่นี่คุณต้องเพิ่ม elevator = noop

เปลี่ยนไปGRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

จากนั้นเรียกใช้sudo update-grub2และรีสตาร์ท


6
คำตอบที่ไม่ระบุชื่อเป็นสิ่งที่ดีสำหรับการเปลี่ยนค่าเริ่มต้นในดิสก์ทั้งหมดในระบบ ในทางตรงกันข้ามคำตอบของ Eliah Kagan ตั้งค่าเริ่มต้นสำหรับดิสก์เฉพาะ สำหรับแล็ปท็อปที่มีไดรฟ์เดียวก็ใช้งานได้ดี สำหรับระบบที่มีดิสก์หลายตัวโดยเฉพาะอย่างยิ่งดิสก์ที่มีทั้ง SSD และไดรฟ์ที่หมุนได้คำตอบของ Eliah Kagan ให้การควบคุมที่ละเอียดยิ่งขึ้น
Royce Williams

28

/dev/sdaสมมติว่าฮาร์ดดิสก์ของคุณคือ จากนั้นคุณสามารถตรวจสอบเพื่อดูว่าตัวกำหนดตารางเวลาที่ใช้อยู่มีอยู่ในปัจจุบัน:

cat /sys/block/sda/queue/scheduler

(ตัวกำหนดตารางเวลาที่ใช้อยู่ในปัจจุบันจะถูกล้อมรอบด้วย[ ]วงเล็บ)

และคุณสามารถทำให้ใช้ noop scheduler:

echo noop > /sys/block/sda/queue/scheduler

ดูบทความนี้สำหรับข้อมูลเพิ่มเติมเล็กน้อย

/etc/rc.localเพื่อให้การเปลี่ยนแปลงยังคงมีอยู่คุณสามารถใส่คำสั่งใน


1
ฉันได้รับข้อผิดพลาด "การปฏิเสธสิทธิ์" ที่เรียกใช้สิ่งนี้แม้กระทั่ง sudo
Lucas Bustamante

@LucasBustamante คุณทำงานอยู่sudo echo noop > /sys/block/sda/queue/schedulerหรือไม่ ไม่สามารถใช้งานได้ในขณะที่เชลล์ซึ่งทำงานในฐานะผู้ใช้ของคุณตั้งค่าการเปลี่ยนเส้นทางก่อนเรียกใช้คำสั่งที่มีการเปลี่ยนเส้นทางเอาต์พุต คุณสามารถใช้echo noop | sudo tee /sys/block/sda/queue/schedulerแทน ดูไม่สามารถ echo“ hello”> x.txt แม้ด้วย sudo และวิธีการแก้“ ปฏิเสธสิทธิ์” เมื่อใช้ sudo ด้วยการเปลี่ยนเส้นทางใน Bash? สำหรับข้อมูลเพิ่มเติมและวิธีการอื่น ๆ (ถ้านั่นไม่ใช่สิ่งที่คุณหมายถึงโปรดแจ้งให้เราทราบ)
Eliah Kagan

ขอบคุณสำหรับการตอบรับที่ไม่ได้ช่วยเช่นกัน ฉันใช้ NVMe SSD ฉันคิดว่ามันไม่ได้ใช้ตัวกำหนดเวลาเลยจากสิ่งที่ฉันเข้าใจserverfault.com/questions/693348/…
Lucas Bustamante

14

การอ้างอิง Debian นี้แสดงวิธีการตรวจจับ SSD แบบไดนามิกและเปลี่ยนกำหนดการตาม:

ในระบบที่มีไดรฟ์ชนิดต่าง ๆ คุณสามารถปรับการตั้งค่าด้วยกฎ udev (สร้าง /etc/udev/rules.d/60-ssd-scheduler.rules):

# กำหนดการส่งมอบกำหนดเวลาสำหรับดิสก์ที่ไม่หมุน

 ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0",ATTR{queue/scheduler}="deadline"

เพื่อให้แน่ใจว่าเคอร์เนลของคุณสามารถตรวจจับสถานะการหมุนได้:

$ for f in /sys/block/sd?/queue/rotational; do printf "$f is "; cat $f; done
/sys/block/sda/queue/rotational is 1
/sys/block/sdb/queue/rotational is 1
/sys/block/sdc/queue/rotational is 0   <=== Only this is SSD!

ทั้งหมดข้างต้นอ้างโดยตรงจากการอ้างอิง Debian ซึ่งมีองค์ประกอบอื่น ๆ ที่น่าสนใจสำหรับผู้ใช้ SSD ครั้งแรก


root @ titan: / home / kessaras # สำหรับ f ใน / sys / block / sd? / queue / rotational; ทำ printf "$ f คือ"; แมว $ f; เสร็จแล้ว / sys / บล็อก / sda / คิว / หมุนเป็น 0 / sys / บล็อก / sdb / คิว / หมุน / หมุนเป็น 0 / sys / บล็อก / sdc / คิว / หมุน / เป็น 1 / sys / บล็อก / sdd / คิว / หมุนเป็น 1 ราก @titan: / home / kessaras # cat / sys / block / sd * / queue / scheduler [mq-deadline] none [mq-deadline] none [mq-deadline] none [mq-deadline] none มีบางอย่างผิดปกติมากที่นี่ มันเปลี่ยนฮาร์ดดิสก์ทั้งหมดเป็นกำหนดเวลา
Pavlos Theodorou

คำสั่งไม่เปลี่ยนแปลงอะไร - เพียงรายงานว่าดิสก์เป็น "rotational" (HDD) Rotational = 0 หมายถึงเป็น SSD หรือไดรฟ์ที่ไม่หมุน
Royce Williams

คุณหมายถึงอะไรมันไม่เปลี่ยนแปลงอะไรเลย? และกฎของอูเดฟเขียนไว้ที่นี่ทำอะไร? มันอยู่ในกล่องสีเหลืองด้วย คุณหมายความว่าฉันตาบอดหรือฉันอ่านไม่ออก?
Pavlos Theodorou

1
ความผิดพลาดของฉัน. ดูเหมือนว่าในเคอร์เนลล่าสุดพวกเขาลบตัวกำหนดตารางเวลา ... ??? สำหรับ f ใน / sys / block / sd? / queue / scheduler; ทำ printf "$ f คือ"; แมว $ f; Done / sys / block / sda / queue / scheduler คือ [mq-deadline] none / sys / block / sdb / queue / scheduler คือ [mq-deadline] none / sys / block / sdc / queue / scheduler คือ [mq-deadline ] none / sys / block / sdd / queue / scheduler คือ [mq-deadline] none บทความและทุกสิ่งที่คุณเขียนนั้นใช้ได้ เป็นเพียงว่ามีเพียงกำหนดเวลาและไม่มีอะไรให้เลือก
Pavlos Theodorou
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.