Có đáng để điều chỉnh Ext4 với noatime không?


77

Với các phiên bản trước của Ubuntu (sử dụng hệ thống tập tin Ext3) tôi đã sử dụng để điều chỉnh nó để có hiệu suất tốt hơn với kết quả đáng chú ý bằng cách đặt noatimetham số trong /etc/fstab.

Liệu nó có còn xứng đáng để làm điều đó với hệ thống tập tin Ext4, hiện được mặc định trong Ubuntu không? Nếu vậy, thủ tục thay đổi theo một cách nào đó?

Một ví dụ về điều chỉnh này có thể được tìm thấy ở đây.

Câu trả lời:


66

Trên Ubuntu 10.04, relatimelà một phần của các tùy chọn gắn kết mặc định, trừ khi được ghi đè /etc/fstab. Một số bản phát hành trước đó đã relatimerõ ràng trong /etc/fstab. relatimemang lại cùng một tốc độ (và bảo tồn chu kỳ ghi flash) noatime, mà không gây rắc rối cho các thông báo thư kiểu cũ.

Bài viết bạn trích dẫn giới thiệu data=writeback. Ubuntu mặc định là data=ordered. Cài đặt của Ubuntu chậm hơn trong trường hợp tải đĩa nặng, nhưng có nguy cơ mất dữ liệu ít hơn đáng kể trong trường hợp xảy ra sự cố hoặc mất điện. Vì vậy, tôi không khuyên bạn nên thay đổi từ mặc định của Ubuntu.

Thay đổi commit=5để commit=100tăng cửa sổ thời gian trong đó dữ liệu sẽ bị mất trong trường hợp sự cố, vì ít lợi ích trong hầu hết các trường hợp.

Tóm tắt: để lại các cài đặt như hiện tại, chúng được chọn vì một lý do.


THÊM: Có những thứ khác ngoài các tùy chọn gắn kết hơn có thể tạo ra sự khác biệt. Chuyển từ ext3sang ext4chính nó thường là một cải tiến rõ ràng. Dưới đây là một vài lời khuyên cho người dùng máy tính xách tay.

  • Nếu bạn có ổ SSD chậm, hãy xem chủ đề này tại SU . Các mẹo quan trọng là sử dụng tmpfscho /tmpvà cho bộ đệm của trình duyệt (và có lẽ lịch sử).

  • Nếu bạn có một đĩa cứng và bạn muốn nó dừng quay trong thời gian dài, thì hãy cài đặt noflushd , cho phép đĩa quay xuống bằng cách trì hoãn tất cả ghi cho đến khi RAM đầy. (Tất nhiên, việc đọc có thể khiến đĩa quay lên; bạn sẽ có thói quen chạy cat /files/I/m/likely/to/need >/dev/nulltrước khi đĩa quay xuống.) Để noflushd có hiệu quả, hãy tắt tất cả trao đổi và gắn hệ thống tệp của bạn với một cái gì đó như commit=3600.

    Sử dụng noflushd một cách hiệu quả có nghĩa là dữ liệu của bạn có thể vẫn chưa được ghi vào đĩa trong một khoảng thời gian dài. Đây là một rủi ro, được cân nhắc với lợi ích của việc không có bất kỳ tiếng ồn hoặc nhiệt từ đĩa trong một thời gian. Đừng sử dụng noflushd nếu bạn không thoải mái với rủi ro đó.


Tôi hiểu sự nguy hiểm của việc điều chỉnh như thế này, một số bước trong hướng dẫn mà tôi không đồng ý, giống comit=100như bạn đã đề cập. Nhưng tôi sẵn sàng chấp nhận một số rủi ro được kiểm duyệt để tăng hiệu suất, vì tôi sử dụng máy tính xách tay và (hầu như) thường xuyên sao lưu.
Decio Lira

2
@Decio: noatimevs atimecó thể tạo ra sự khác biệt rõ ràng, nhưng tôi ngạc nhiên rằng noatimevs relatimesẽ. Tôi đã thêm một vài lời khuyên dành riêng cho máy tính xách tay vào câu trả lời của mình; Cá nhân tôi đã quan sát thấy những cải tiến có thể nhìn thấy từ những lời khuyên này. Noflushd mang một rủi ro mà tôi sẵn sàng chấp nhận khi tôi sử dụng nó.
Gilles

Vâng, tôi chỉ đang loay hoay về sự khác biệt giữa thời gian giữa trưa và tương đối, và bạn đã đúng. Relatime (hiện được mặc định trong ubfox) là một sự thỏa hiệp tốt giữa atime và noatime.
Decio Lira

Tôi đã đọc về data=writeback- nó chỉ đơn giản là ghi dữ liệu tệp và siêu dữ liệu theo thứ tự ngẫu nhiên (trái ngược với việc orderedluôn ghi siêu dữ liệu sau dữ liệu) . Điều này có nghĩa là khi mất điện, bạn có thể tìm thấy tệp của mình dài byte, trong đó 0 byte thực sự được ghi. Vâng, nhưng điều này là hoàn toàn tự nhiên! Tôi đã luôn nghĩ rằng hệ thống tập tin trước tiên làm tăng kích thước tệp và sau đó ghi dữ liệu. Nhận thấy rằng nó có thể theo thứ tự ngược lại đòi hỏi phải chuyển đổi mẫu này để thêm bộ nhớ đệm trong RAM. Tôi không bị thuyết phục tại sao không sử dụng writebacknếu nó có thể giúp cải thiện độ trễ.
Hi-Angel

17

Có, nó vẫn có thể có ý nghĩa khi sử dụng noatimekể từ Ubuntu 12.10

relatimelà một tùy chọn gắn kết mặc định. Và relatimetốt hơn nhiều atime. Cái trước đòi hỏi phải viết cho lần đọc đầu tiên sau khi viết, cái sau yêu cầu viết cho mỗi lần đọc. Nhưng với noatimemỗi lần đọc là miễn phí của một bài viết.

Điều này về cơ bản có nghĩa là số lượng ghi vào đĩa để relatimegắn kết gần gấp đôi so với giá trị noatimegắn kết khác. Đây là một mối quan tâm nghiêm trọng đối với các phân vùng trên các thiết bị bộ nhớ flash.

Cuộc thảo luận chi tiết của cộng đồng kernel linux có tại http://kerneltrap.org/node/14148


3
Yếu tố của hai là không chính xác nói chung. Về lý thuyết, hệ số nằm trong khoảng từ 1 (tệp thường được sử dụng vô hạn) và 2 (tệp được sử dụng vô cùng hiếm khi). Điều này có nghĩa là, yếu tố thực sự về cơ bản là 1, vì các yếu tố hiếm khi gần với 2 không chiếm tỷ lệ đáng kể trong trung bình.
Patrick Häcker

1 là cho các tập tin chỉ ghi. 2 là cho tất cả những người khác. Không có điểm nào trong các tệp chỉ ghi, nhưng chúng có thể xuất hiện theo thời gian. Vì vậy, ước tính ban đầu của tôi nên có liên quan.
yanyar

@yanychar: cảm ơn vì đã giải thích những relatimehạn chế và chia sẻ cuộc thảo luận về kerneltrap, nhưng nói rằng " không có điểm nào trong các tệp chỉ ghi " là vô nghĩa: tất cả /usr/libđều là các tệp chỉ đọc. Trên thực tế, hầu hết các cây, sans /home/var, chỉ đọc. Các tập tin /etccũng thay đổi rất hiếm khi.
MestreLion

2
@MestreLion: Ubuntu cài đặt hàng tấn gói. Các gói được nâng cấp theo thời gian. Nếu không có lần đọc tệp nào trong thời gian gói được cài đặt và nâng cấp, thì tệp đó là "chỉ ghi". Không có ghi bổ sung relatimeso với noatimecho các tập tin. Đối với tất cả phần còn lại, có ghi thêm khi tệp được đọc.
yanyar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.