Tôi đã làm nhiều việc tối ưu hệ thống che khuất trong quá khứ, nhưng tôi đã thoát khỏi của hầu hết trong số họ sau khi powertop
nói với tôi rằng tôi nên đặt cổng USB của tôi để autosuspend , mà buộc họ phải một giấc ngủ vĩnh hằng, và cũng sau khi tôi nhận ra những lợi ích của một cao swappiness .
Nhưng hôm nay, trong khi nhìn vào /etc/fstab
, tôi nhận thấy tôi đã đặt tùy chọn commit=60
cho / và / home . Tôi nhớ rằng đây là một tối ưu hóa cho máy tính xách tay, để giảm lượng ghi vào đĩa, do đó tiết kiệm pin. Nhưng sau đó tôi trở nên lo lắng rằng điều này có thể gây mất dữ liệu (đôi khi pin của tôi bị ngắt kết nối, và sau đó khi khởi động fsck
cho tôi biết về một vài nút in mồ côi).
Trong khi tìm kiếm một lời giải thích cho tùy chọn này, tôi đã đi đến những lời giải thích sau đây (cách thứ hai dường như mâu thuẫn với sự hiểu biết trước đây của tôi):
$ man mount | awk '/commit=/,/^$/'
commit=nrsec
Sync all data and metadata every nrsec seconds. The default value is 5 seconds.
Zero means default.
https://forums.gentoo.org/viewtopic-p-4088752.html
commit = 60 dừng mức ưu tiên "ngay lập tức" (mặc định là 5 giây) của việc ghi hơn đọc, lưu vào bộ ghi trong vài giây sau đó. Điều này tốt trong trường hợp đọc và ghi nặng trộn lẫn với nhau, trong đó người dùng muốn ưu tiên đọc, để bộ xử lý có thể được giữ bận thay vì tạm dừng trong khi chờ ghi xong trước khi có thể tiếp tục đọc.
Một ví dụ trong thế giới thực mà tôi đã thấy đang chờ vài giây để menu kéo xuống Gnome xuất hiện, dường như không có lý do. Lý do là vì đĩa đang bận ghi, vì vậy CPU phải đợi quá trình ghi hoàn tất trước khi có thể lấy tất cả dữ liệu từ đĩa để có thể hiển thị menu.
Không gì cam kết thực sự làm gì? Có thực sự có lợi thế của việc tăng nó (như đáp ứng và tiết kiệm năng lượng)? Nó thực sự có thể gây mất dữ liệu?