Tôi nên sử dụng btrfs hoặc Ext4 cho SSD của mình?


16

Tôi có nên sử dụng các tùy chọn btrfs (với các tùy chọn loại bỏ, nén = lzo và space_cache) hoặc Ext4 (với tùy chọn loại bỏ) cho SSD cho phân vùng gốc máy tính để bàn Ubuntu 11.10 (Oneiric) amd64 của máy văn phòng của tôi không?

/ home sẽ là ổ cứng nên độ tin cậy của fs ảnh hưởng đến hệ điều hành chứ không phải dữ liệu của tôi.

Câu trả lời:


13

Theo các thử nghiệm của phoronix, nó luôn phụ thuộc vào nhiều yếu tố. Trong một trường hợp Btrfssẽ làm việc tốt hơn nhiều so với EXT4khi đọc các tệp lớn trên SSD. Tương tự như vậy trong khi xem xét hiệu suất giao dịch Đĩa, Ext4có thể thực hiện tốt hơn sau này.

Bạn có thể xem qua các bài kiểm tra này tại đây , đâyđây (CẢNH BÁO: Bài viết dài).

Nhưng tổng kết lại, Btrfs ngay bây giờ không có lợi thế về hiệu suất định lượng so với hệ thống tệp EXT4 , ngay cả khi sử dụng ở chế độ SSD.

Vì vậy, bạn có thể chọn hơn Ext4bây giờ.


2
Các bài viết lần lượt là tháng 9 năm 2011, ngày 9 tháng 8 năm 2010 và ngày 29 tháng 5 năm 2009. Tập trung vào mới nhất bởi vì tôi cho rằng btrfs sẽ phát triển trong 2 năm qua. Biểu đồ btrfs + LZO ở trang 4 là tuyệt vời cho hiệu suất đọc và ghi tuần tự, nhưng btrfs không tốt với việc ghi ngẫu nhiên nên chắc chắn không có btrfs cho hình ảnh DB và VM. Tôi đoán với phân vùng gốc, tải chủ yếu là đọc ngẫu nhiên, mà nó không tốt hơn nhiều so với ext4.
Graham

Trong vòng vài năm, Btrfs sẽ biến thành một lựa chọn tốt hơn EXT4. Đây là một hệ thống tệp hứa hẹn hơn :)
NBK

7

Đối với những người vấp phải câu hỏi này trong năm 2016 ... Sử dụng ext4. Tôi đã thử btrfs và sự khác biệt là đáng kể. Trong khoảng thời gian 10 ngày, viết IOs cho ext4 lên tới 17.800 lĩnh vực. Btrfs? 490.400 ngành. Cùng SSD, hệ thống tập tin giống hệt nhau, phân vùng khác nhau. Về cơ bản, khối lượng công việc như nhau.

Cả ext4 và btrfs đều "im lặng" khi không có hoạt động ghi nào trên ổ đĩa. Điều đó thật tốt.

Ext4 sẽ ghi dữ liệu sửa đổi, cộng với một số chi phí. Chi phí liên quan đến dữ liệu được viết. Ghi 4K (1 khối) đẩy khoảng 50-80 khối chi phí ở lần xác nhận tiếp theo. (Tạp chí ext4 được kích hoạt đầy đủ)

Sửa đổi một khối 4K duy nhất trên btrfs và bạn sẽ đẩy từ 4000-5000 khối chi phí ở lần xác nhận tiếp theo. Cam kết mặc định là 30 giây, tôi tin. Tôi đã sử dụng 120.

Bây giờ, nó phụ thuộc vào cách bạn sử dụng SSD. Là root, thường có một dòng ghi khá ổn định, mức độ thấp đang diễn ra. Các tệp nhật ký, các tệp trôi ntp, xây dựng lại man db, cập nhật cấu trúc liên kết mở, v.v. Mỗi sự kiện sẽ đóng một ổ đĩa btrfs với 4000-5000 ghi khác.

Các số 10 ngày ở trên là dành cho ổ SSD "ghi hạn chế" của tôi. Phần lớn trong số 17.800 lĩnh vực đó là kết quả của một bản cập nhật hệ thống nhỏ. Một bản sao btrfs không bị. Các nhà văn của tôi, chính xác, ntp trôi, cấu trúc liên kết mở và cập nhật db người đàn ông (hàng đêm). Không có gì khác đánh vào đĩa đó, ngoại trừ những thứ được khởi xướng tích cực như nâng cấp hệ thống, "vim / etc / anything", v.v.

Trên toàn bộ SSD sẽ chịu rất nhiều ghi, thực sự. Tôi chỉ không thể thấy vấn đề lãng phí chúng chỉ là vì các phương tiện truyền thông đang đuổi theo thỏ và cầu vồng. Nếu bạn muốn trả giá này cho COW, hãy đi cho nó. Đối với "hiệu suất", không quá nhiều. Đó là một ổ SSD và có lẽ bạn có thể đặt "hệ thống tập tin" tồi tệ nhất mà con người biết đến nó, và vẫn đạt được một mức độ hiệu suất - chỉ bằng vũ lực. Ext4, cho đến nay, không phải là hệ thống tập tin tồi tệ nhất mà con người biết đến.

Không kiểm tra fs hàng tháng. Hãy thử kịch bản dưới đây. Đó là một bản hack 100%, sẽ không hoạt động cho md mountpoint,

#! /bin/bash

nhà phát triểncat /proc/mounts | grep " $1 " | awk '{print $1}'

x =basename $dev

vmnam =lsblk $dev -o MOUNTPOINT,PKNAME | grep "$1" | awk '{print $2}'

vmx =vmstat -d | grep $vmnam | awk '{print $8}'

lbax =smartctl -a $dev | grep LBA | awk '{print $10}'

tmpnam =mktemp XXX

echo "Thiết bị theo dõi: $ dev, được gắn trên $ 1 (vmstat trên $ vmnam)"

thời gian =date +%s

timx =date +%s

trong khi sự thật

làm

vm=`vmstat -d | grep "$vmnam" | awk '{print $8}'`

lba=`smartctl -a $dev | grep LBA | awk '{print $10}'`

if [ "$vm" != "$vmx" ]

then

    tim=`date +%s`

    dif=`dc <<< "$vm $vmx - p"`

    lbad=`dc <<< "$lba $lbax - p"`

    timd=`dc <<< "$tim $timx - p"`

    echo `date` " (sec=$timd) writes=$vm (dif=$dif) (lba=$lbad)"

    vmx="$vm"

    lbax="$lba"

    timx="$tim"

    find "$1" -mount -newer "$tmpnam" -print | grep -v "/tmp"

    touch "$tmpnam" 

fi

sleep 1 

làm xong

Nó sẽ cho bạn biết có bao nhiêu khối đã được viết, theo chính ổ đĩa, và chính xác những tập tin đã được cập nhật. Cần quyền riêng tư gốc. Xem cho chính mình. Tôi chạy SSD trên hệ thống tập tin gốc và gọi tập lệnh stat.sh. Vậy ... "sudo ./stat.sh /"


Tôi không thích phương pháp so sánh của bạn. Ví dụ, kiểm tra fs hàng tháng bắt đầu và bạn đã nhận được những kết quả đó. Btrfs được mặc định gần như ở mọi nơi bây giờ, và vì một lý do tốt.
Barafu Albino

Không kiểm tra fs hàng tháng. Hãy thử kịch bản dưới đây. Đó là một bản hack 100%, sẽ không hoạt động cho md mountpoint, v.v ...
wkirk

1
Tại sao một bài viết lớn như vậy? Bạn đã nói, 1 khối đó đã tạo ra 50-80 khối được viết ngay cả trên ext4 - gấp 40 lần so với mức cần thiết. Tại sao?
Gole Ramblar

Tôi nghi ngờ liệu điều này có còn đúng vào cuối năm 2018 hay không. Trong thử nghiệm của tôi, tôi đã so sánh số tiền được viết theo iotop và smartctl và thấy số tiền sau được yêu cầu gấp 3 lần số tiền trước đây (ext4).
Michael

2

Lần cuối cùng tôi thử nghiệm nó, và tôi chưa nghe thấy gì khác ở bất cứ đâu, ext4 ăn phương tiện truyền thông trạng thái rắn. (ngón tay cái, ổ đĩa trạng thái rắn, v.v.) Tôi không khuyên bạn nên sử dụng nó trên một thiết bị như vậy. Sử dụng ext3 thay thế. Đối với hầu hết các trường hợp trên SSD, bạn sẽ không thể nhận ra sự khác biệt nào.

BTRFS vẫn chưa khá ổn định. Tuy nhiên, nó đủ ổn định cho các ứng dụng không quan trọng. Đó là những gì tôi sử dụng để tạo các ổ đĩa flash có thể khởi động. Nếu bạn sử dụng nén = zlib và ssd làm tùy chọn gắn kết, quá trình nén sẽ bù cho tốc độ ghi thấp hơn của hầu hết các phương tiện thể rắn và ssd thay đổi thuật toán phân bổ thành một thuật toán hoạt động tốt hơn trên các thiết bị đó và sẽ bù cho bất kỳ mức độ hao mòn kém bởi phần cứng. Một lĩnh vực hiệu suất vẫn còn một vấn đề là các cuộc gọi đồng bộ hóa chậm. Đây không phải là vấn đề đối với việc sử dụng thông thường, nhưng dpkg gọi đồng bộ hóa sau mỗi hoạt động, vì vậy việc cài đặt và cập nhật phần mềm có thể bị chậm. BTRFS cũng cung cấp tính năng chụp nhanh và các tính năng nâng cao khác khá hữu ích trong một số trường hợp nhất định.

Nếu bạn quyết định sử dụng BTRFS, hãy chắc chắn sử dụng bản phân phối bằng kernel 3.2.0-2 trở lên. 3.1.x là khả thi nếu cần thiết. Đối với các nhân cũ hơn, bạn sẽ cần phải tự biên dịch các mô-đun BTRFS mới nhất. Các phiên bản dựng sẵn gần như ổn định, nhưng sửa lỗi không hoạt động trong các phiên bản cũ hơn, điều này có thể khiến bạn trở thành một con lạch nếu có sự cố. Các phiên bản mới nhất có fsck thực sự có thể sửa chữa các lỗi phổ biến nhất.

Một cảnh báo cuối cùng, tôi đã nghe báo cáo rằng các tập tin hoán đổi trên hệ thống tập tin BTRFS sẽ làm hỏng nó. Vấn đề này có thể đã được khắc phục, nhưng hãy chắc chắn kiểm tra cẩn thận trước khi thực hiện.

Nếu bạn cần bất kỳ trợ giúp nào để thiết lập BTRFS được cấu hình theo cách bạn muốn, hãy cho tôi biết. Tôi đã thực hiện một vài cái điên hoạt động khá độc đáo cho những thứ cụ thể.


2

Tôi sẽ không sử dụng ext4 trên ổ đĩa trạng thái rắn dựa trên bằng chứng giai thoại và kinh nghiệm của riêng tôi cho thấy ext4 có thể làm giảm đáng kể tuổi thọ của SSD do số lần đọc và ghi liên quan đến hệ thống tệp. Một bài báo gần đây tôi đã đọc đề xuất rằng không tối ưu hóa (chiếm kích thước trang, v.v.) ext4 trên ổ SSD có thể giảm một nửa tuổi thọ đĩa. Sau một tuần gặp sự cố, tôi đã đi đến kết luận rằng ổ SSD của riêng tôi chỉ tồn tại được 8 tháng do vấn đề này. Nếu bạn sử dụng ổ SSD, hãy đọc nhiều cách để tối ưu hóa hệ thống tệp dựa trên những thứ như kích thước trang flash có thể khác với kích thước hình trụ thông thường mà hệ thống tệp được thiết lập.


2
Bạn có thể cung cấp một liên kết đến, hoặc thông tin nhận dạng khác cho bài viết bạn đọc không?
Eliah Kagan

Tôi sẽ cố gắng tìm bài viết đó một cách cụ thể. Xin nhớ rằng, tuyên bố đó đã được tìm thấy trên internet khi lướt web tại cửa hàng xì gà.Bottom, hãy đọc và làm bài tập về nhà trước khi sử dụng ext4 trên ổ SSD. Nhìn vào các bài viết về những thứ như TRIMM và tối ưu hóa. Dù bạn làm gì, đừng như tôi và bắt đầu nhận lỗi I / O trên các lệnh như "sudo restart" sau tám tháng.
dùng75153
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.