TRIM เปิดใช้งานในการติดตั้ง Ubuntu 18.04 ของฉันหรือไม่


37

ฉันรู้ว่าการตัดรายสัปดาห์ถูกเปิดใช้งานโดยค่าเริ่มต้นตั้งแต่ 14.10 เป็นต้นไป ที่มา: วิธีการเปิดใช้งาน TRIM แต่การรันsudo nano /etc/cron.weekly/fstrimจะส่งคืนไฟล์เปล่า ยังtail -n1 /etc/cron.weekly/fstrimบอกว่าไฟล์นี้ไม่มีอยู่

การวิ่งlsblk -Dส่งคืนค่าที่ไม่ใช่ศูนย์สำหรับDISC-GRANและDISC-MAX สนับสนุน TRIM ใน SSD ของฉัน TRIM รายสัปดาห์เปิดใช้งานจริงสำหรับ SSD ของฉันหรือไม่

ฉันใช้ Kingston SSD

คำตอบ:


58

Trim (fstrim / discard) เปิดใช้งานรายสัปดาห์ตามค่าเริ่มต้นใน 18.04
มันถูกตั้งค่าให้เรียกใช้สำหรับระบบไฟล์ที่เมาท์ทั้งหมดบนอุปกรณ์ที่รองรับการทิ้ง

เป็นsystemdบริการที่จัดการผ่านsystemctlไม่ใช่ CRON

ดูสถานะ fstrim.timer :

$ systemctl status fstrim.timer
● fstrim.timer - Discard unused blocks once a week
   Loaded: loaded (/lib/systemd/system/fstrim.timer; enabled; vendor preset: enabled)
   Active: active (waiting) since Thu 2018-07-05 05:45:11 BST; 4h 42min ago
  Trigger: Mon 2018-07-09 00:00:00 BST; 3 days left
     Docs: man:fstrim

Start / Stop / Restart fstrim.timer :
(ไม่เปลี่ยนสถานะการเริ่มต้น)

$ sudo systemctl [start/stop/restart] fstrim.timer

เปิด / ปิดการใช้งาน fstrim.timer :
(เพิ่ม / ลบจากการเริ่มต้นไม่เปลี่ยนสถานะการใช้งานปัจจุบัน)

$ sudo systemctl [enable/disable] fstrim.timer

ดูการกำหนดค่า fstrim.timer :

$ systemctl cat fstrim.timer
# /lib/systemd/system/fstrim.timer
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim

[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target

ดูการกำหนดค่า fstrim.service :

$ systemctl cat fstrim.service
# /lib/systemd/system/fstrim.service
[Unit]
Description=Discard unused blocks

[Service]
Type=oneshot
ExecStart=/sbin/fstrim -av

หมายเหตุ : ExecStart = / sbin / fstrim -av
โดยที่:
-a , ตัดระบบไฟล์ที่เมาท์ทั้งหมดบนอุปกรณ์ที่สนับสนุนการทิ้ง
-vการดำเนินการทาง verbose เอาต์พุตจำนวนไบต์ที่ส่งผ่านจากระบบไฟล์ลงบล็อกสแต็กไปยังอุปกรณ์เพื่อทิ้ง

ดูรายการบันทึก systemdที่เกี่ยวข้อง:

$ journalctl -u fstrim.timer
Jul 04 14:18:41 user-laptop systemd[1]: Started Discard unused blocks once a week.
Jul 04 21:59:26 user-laptop systemd[1]: Stopped Discard unused blocks once a week.
etc...

$ journalctl -u fstrim.service
Jun 25 10:59:44 user-laptop systemd[1]: Starting Discard unused blocks...
Jun 25 10:59:48 user-laptop fstrim[955]: /: 92.5 GiB (99335237632 bytes) trimmed
Jun 25 10:59:48 user-laptop systemd[1]: Started Discard unused blocks.
-- Reboot --
Jul 02 04:27:41 user-laptop systemd[1]: Starting Discard unused blocks...
Jul 02 04:27:46 user-laptop fstrim[1032]: /: 92.3 GiB (99150807040 bytes) trimmed
Jul 02 04:27:46 user-laptop systemd[1]: Started Discard unused blocks.
etc...

2
สำหรับการอ้างอิงเวลาถูกควบคุมโดย/lib/systemd/system/fstrim.timer( OnCalendar=weekly) และอะไรโดย/lib/systemd/system/fstrim.service( ExecStart=/sbin/fstrim -av)
Moilleadóir

1
โพสต์ดี! ฉันขอแนะนำให้คุณเปลี่ยนคำสั่ง "cat" โดยคำสั่ง systemctl เฉพาะ: cat /lib/systemd/system/fstrim.timer -> systemctl cat fstrim.timer โดยทั่วไปคำสั่งนั้นจะแสดงเวอร์ชันของบริการที่มีผลบังคับใช้ นั่นอาจเป็นอันที่อยู่ภายใต้ / lib / systemd แต่อาจเป็นรุ่นที่แก้ไขภายใต้ / etc / systemd
วานาเดียม

เมื่อเปิดใช้งานมันจะทำกับไดรเวอร์ทั้งหมดหรือไม่? ตัวอย่างเช่นฉันติดตั้ง Ubuntu ใน SSD หนึ่งตัว แต่ติดตั้ง SSD อีกตัวเป็นพาร์ติชัน ext4 มันจะตัดทั้งสองอย่างโดยอัตโนมัติหรือไม่? (สถานะบอกว่าใช้งานได้)
Eduardo

วิธีการเปิดใช้งานได้ตามต้องการ? (เช่นตอนนี้ฉันอยากไปทานอาหารกลางวัน)
มีดโกน

คุณสามารถเริ่ม / หยุด / เริ่มบริการ systemd ด้วยตนเองได้ด้วย: $ sudo systemctl [start / stop / restart] [service name] .service
Broadsworde

2

แก้ไข: โปรดอ่านความคิดเห็นคำตอบนี้รวมสองกลไก!

คำตอบเก่า

มีจุดสำคัญที่ต้องเพิ่มลงในคำตอบของ @Broadsworde เพื่อให้สมบูรณ์

ในขณะที่แล็ปท็อปของฉันเปิดใช้งานตัวจับเวลาและบริการทั้งหมดรายการบันทึก fstrim หายไป (เฉพาะ: starting… stopping… reboot… starting…เป็นต้น)

ขั้นตอนที่หายไป

คุณอาจจำเป็นต้องทำเครื่องหมายระบบไฟล์เป็นdiscardable หากระบบไฟล์ไม่ได้ทำเครื่องหมายว่าถูกทิ้งการตัดแต่งจะข้ามไป [1]

ในการทำเครื่องหมายระบบไฟล์ว่าทิ้งคุณมีสองตัวเลือก:

1. ตัวเลือก: tune2fs

sudo tune2fs -o discard /dev/mapper/ubuntu--vg-root

นี่จะเป็นการตั้งค่าตัวเลือกการทิ้งเป็นค่าเริ่มต้นสำหรับอุปกรณ์ ext4 ของฉัน หากคุณไม่ได้ใช้การเข้ารหัสลอง/dev/sdaแทน

2. ตัวเลือก: /etc/fstab

ตรวจสอบให้แน่ใจว่าได้ผนวกหรือต่อท้ายตัวเลือกในตัวเลือกdiscardการเมาท์ที่มีอยู่ของคุณ ตัวอย่างเช่นนี้:

/dev/mapper/ubuntu--vg-root / ext4 discard,relatime,errors=remount-ro 0 1

หลังจากนี้บริการจับเวลาจะทำอะไรบางอย่างจริงๆ

เชิงอรรถ

  • [1] จริง ๆ แล้วอุปกรณ์จำเป็นต้องรองรับการTRIMทำงาน แต่บน linux นี่เป็นสถานะระบบไฟล์ ถึงกระนั้นอุปกรณ์ที่ระบบไฟล์กำลังทำงานอยู่นั้นจำเป็นต้องรองรับการTRIMทำงาน sudo hdparm -I /dev/sda | grep -i TRIMเพื่อดูว่าอุปกรณ์ของคุณสนับสนุนการใช้งาน:

ในการติดตั้งของฉัน (แต่เดิม 18.10 อัพเกรดภายหลังเป็น 19.04) ระบบไฟล์ไม่ได้เปิดใช้งานตัวเลือกทิ้ง ฉันใช้ SSD ในระบบของฉันเท่านั้น และมันไม่เคยมี HD กลไกใด ๆ ฉันเปิดใช้งานพวกเขาด้วยtune2fs ความคิดหรือคำอธิบายใด ๆ เกี่ยวกับสาเหตุที่ระบบไม่เปิดใช้งานโดยค่าเริ่มต้น
FedonKadifeli

1
ฉันไม่คิดว่ามันถูกต้อง ตัวเลือกทิ้งบล็อกภายนอกข้อมูลรถเมื่อบล็อกไฟล์จะถูกลบออกจากระบบไฟล์ เซอร์วิส systemd ตัดขอบบล็อกที่ไม่ได้ใช้เป็นระยะบนระบบไฟล์ สิ่งเหล่านี้แตกต่างกัน ตัวเลือกการละทิ้งสามารถส่งผลเสียต่อประสิทธิภาพการทำงานในบางระบบดังนั้นจึงเป็นระยะที่ดีกว่า
xioxox

1
@xioxox ถูกต้อง ล่าสุดmount's หน้าคนระบุว่า«ประเด็นฟังก์ชั่นทิ้งบ่อยคำสั่งที่จะให้พื้นที่กลับคืนอุปกรณ์ป้องกันอิสระจากระบบแฟ้ม [... ] อาจมีผลกระทบต่อประสิทธิภาพอย่างมาก ( คำสั่ง fstrim พร้อมใช้งานเพื่อเริ่มต้นชุดข้อมูลภายนอกจาก userspace) »
Fabio A.

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