Tôi có thể định cấu hình hệ thống Linux của mình để lưu trữ hệ thống tệp tích cực hơn không?


119

Tôi không quan tâm đến việc sử dụng RAM (vì tôi đã có đủ) cũng như về việc mất dữ liệu trong trường hợp tắt do vô tình (vì nguồn điện của tôi được hỗ trợ, hệ thống đáng tin cậy và dữ liệu không quan trọng). Nhưng tôi làm rất nhiều việc xử lý tập tin và có thể sử dụng một số tăng hiệu suất.

Đó là lý do tại sao tôi muốn thiết lập hệ thống để sử dụng nhiều RAM hơn cho hệ thống tệp đọc và ghi bộ đệm, để tìm nạp trước các tệp một cách mạnh mẽ (ví dụ: đọc trước toàn bộ tệp được ứng dụng truy cập trong trường hợp tệp có kích thước tối thiểu hoặc ít nhất là đọc trước một đoạn lớn của nó nếu không) và để xóa bộ đệm viết ít thường xuyên hơn. Làm thế nào để đạt được điều này (có thể là có thể)?

Tôi sử dụng hệ thống tệp ext3 và ntfs (Tôi sử dụng ntfs rất nhiều!) Với XUbfox 11.10 x86.


6
Nếu bạn có nhiều RAM, quan tâm rất nhiều đến hiệu suất và không quan tâm đến việc mất dữ liệu, chỉ cần sao chép tất cả dữ liệu của bạn vào đĩa RAM và phục vụ nó từ đó, loại bỏ tất cả các cập nhật khi gặp sự cố / tắt máy. Nếu điều đó không hiệu quả với bạn, bạn có thể cần đủ điều kiện "đủ" cho RAM hoặc mức độ quan trọng của dữ liệu.
James Youngman

1
@Nils, máy tính là máy tính xách tay, vì vậy, tôi tin rằng, bộ điều khiển là khá bình thường.
Ivan

1
Một cách để cải thiện hiệu suất rất nhiều là bỏ qua độ bền của dữ liệu. Chỉ cần vô hiệu hóa đồng bộ hóa vào đĩa ngay cả khi một số ứng dụng yêu cầu đồng bộ hóa. Điều này sẽ gây mất dữ liệu nếu thiết bị lưu trữ của bạn bị mất điện. Nếu bạn muốn thực hiện bằng mọi cách, chỉ cần thực hiện sudo mount -o ro,nobarrier /path/to/mountpointhoặc điều chỉnh /etc/fstabđể bao gồm nobarriercho bất kỳ hệ thống tệp nào mà bạn sẵn sàng hy sinh để cải thiện hiệu suất. Tuy nhiên, nếu thiết bị lưu trữ của bạn có pin bên trong, chẳng hạn như dòng SSD Intel 320, việc sử dụng nobarrierkhông gây mất dữ liệu.
Mikko Rantalainen

1
Việc sử dụng nobarrier không còn được khuyến nghị trong Red Hat Enterprise Linux 6 vì tác động tiêu cực của các rào cản ghi là không đáng kể (khoảng 3%). Lợi ích của các rào cản viết thường vượt trội hơn lợi ích hiệu suất của việc vô hiệu hóa chúng. Ngoài ra, không bao giờ nên sử dụng tùy chọn nobarrier trên bộ lưu trữ được định cấu hình trên các máy ảo. access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/...
Ivailo Bardarov

1
Hai điểm - 1) Có các bản phân phối linux dựa trên Debian hoặc Ubuntu, như Puppy Linux và AntiX Linux, và nhiều bản khác đưa toàn bộ hệ điều hành vào các phần ramdisk phân lớp (ví dụ AUFS hoặc lớp phủ) và quản lý nó một cách trong suốt. Rất nhanh! - 2) Chúng tôi đã phát hiện ra trong thiết kế trong thế giới thực của một hệ thống rất lớn, việc ném thêm bộ nhớ cache vào nó có thể GIẢM HIỆU SUẤT. Khi tốc độ lưu trữ tăng (tức là SSD), kích thước bộ đệm tối ưu cần thiết sẽ giảm. Không có cách nào để biết kích thước đó là gì nếu không có thử nghiệm trên hệ thống cụ thể của bạn. Nếu tăng không hoạt động, hãy thử giảm nó.
DocSalvager

Câu trả lời:


107

Nói chung, việc cải thiện hiệu năng bộ đệm đĩa không chỉ là tăng kích thước bộ đệm của hệ thống tệp trừ khi toàn bộ hệ thống của bạn phù hợp với RAM trong trường hợp bạn nên sử dụng ổ RAM ( tmpfstốt vì nó cho phép quay lại đĩa nếu bạn cần RAM trong một số trường hợp) để lưu trữ thời gian chạy (và có lẽ là tập lệnh initrd để sao chép hệ thống từ bộ lưu trữ sang ổ RAM khi khởi động).

Bạn không biết thiết bị lưu trữ của mình là SSD hay HDD. Đây là những gì tôi đã tìm thấy để làm việc cho tôi (trong trường hợp của tôi sdalà ổ cứng gắn tại /homesdbổ SSD được gắn tại /).

Trước tiên, tối ưu hóa phần tải-Stuff-from-Storage-to-cache:

Đây là thiết lập của tôi cho ổ cứng (đảm bảo AHCI + NCQ được bật trong BIOS nếu bạn phải bật):

echo cfq > /sys/block/sda/queue/scheduler
echo 10000 > /sys/block/sda/queue/iosched/fifo_expire_async
echo 250 > /sys/block/sda/queue/iosched/fifo_expire_sync
echo 80 > /sys/block/sda/queue/iosched/slice_async
echo 1 > /sys/block/sda/queue/iosched/low_latency
echo 6 > /sys/block/sda/queue/iosched/quantum
echo 5 > /sys/block/sda/queue/iosched/slice_async_rq
echo 3 > /sys/block/sda/queue/iosched/slice_idle
echo 100 > /sys/block/sda/queue/iosched/slice_sync
hdparm -q -M 254 /dev/sda

Đáng chú ý cho trường hợp ổ cứng là cao fifo_expire_async(thường ghi) và dài slice_syncđể cho phép một quá trình duy nhất có được thông lượng cao (được đặt thành slice_syncsố thấp hơn nếu bạn gặp tình huống trong đó nhiều quá trình đang chờ song song một số dữ liệu từ đĩa). Điều slice_idlenày luôn luôn là một sự thỏa hiệp cho các ổ cứng, nhưng đặt nó ở đâu đó trong phạm vi 3-20 sẽ ổn tùy thuộc vào việc sử dụng đĩa và phần sụn. Tôi thích nhắm mục tiêu cho các giá trị thấp nhưng đặt nó quá thấp sẽ phá hủy thông lượng của bạn. Các quantumthiết lập dường như ảnh hưởng đến thông lượng rất nhiều nhưng cố gắng giữ này càng thấp càng tốt để giữ cho độ trễ về mức hợp lý. Đặt quantumquá thấp sẽ phá hủy thông lượng. Các giá trị trong phạm vi 3-8 dường như hoạt động tốt với ổ cứng. Độ trễ trường hợp xấu nhất cho một lần đọc là ( quantum* slice_sync) + ( slice_async_rq*slice_async) ms nếu tôi hiểu chính xác hành vi kernel. Async chủ yếu được sử dụng bằng cách ghi và vì bạn sẵn sàng trì hoãn ghi vào đĩa, đặt cả hai slice_async_rqslice_asyncsố rất thấp. Tuy nhiên, việc đặt slice_async_rqgiá trị quá thấp có thể khiến bạn đọc bị chậm vì việc ghi không thể bị trì hoãn sau khi đọc nữa. Cấu hình của tôi sẽ cố gắng để ghi dữ liệu vào đĩa nhiều nhất sau 10 giây sau khi dữ liệu đã được truyền cho hạt nhân nhưng kể từ khi bạn có thể chịu đựng sự mất mát dữ liệu trên tổn thất điện năng cũng thiết lập fifo_expire_asyncđể 3600000nói rằng 1 giờ không quan trọng cho sự chậm trễ vào đĩa. slice_asyncTuy nhiên, chỉ giữ mức thấp, vì nếu không, bạn có thể có độ trễ đọc cao.

Các hdparmlệnh là cần thiết để ngăn chặn AAM từ giết chết phần lớn hiệu suất mà AHCI + NCQ cho phép. Nếu đĩa của bạn tạo ra quá nhiều tiếng ồn, thì bỏ qua điều này.

Đây là thiết lập của tôi cho SSD (dòng Intel 320):

echo cfq > /sys/block/sdb/queue/scheduler
echo 1 > /sys/block/sdb/queue/iosched/back_seek_penalty
echo 10000 > /sys/block/sdb/queue/iosched/fifo_expire_async
echo 20 > /sys/block/sdb/queue/iosched/fifo_expire_sync
echo 1 > /sys/block/sdb/queue/iosched/low_latency
echo 6 > /sys/block/sdb/queue/iosched/quantum
echo 2 > /sys/block/sdb/queue/iosched/slice_async
echo 10 > /sys/block/sdb/queue/iosched/slice_async_rq
echo 1 > /sys/block/sdb/queue/iosched/slice_idle
echo 20 > /sys/block/sdb/queue/iosched/slice_sync

Ở đây đáng chú ý các giá trị thấp cho các cài đặt lát khác nhau. Cài đặt quan trọng nhất cho SSD là slice_idlephải được đặt thành 0-1. Đặt nó thành 0 sẽ chuyển tất cả các quyết định đặt hàng sang NCQ gốc trong khi đặt nó thành 1 cho phép kernel đặt hàng yêu cầu (nhưng nếu NCQ đang hoạt động, phần cứng có thể ghi đè một phần thứ tự kernel). Kiểm tra cả hai giá trị để xem nếu bạn có thể thấy sự khác biệt. Đối với dòng Intel 320, có vẻ như cài đặt slide_idleđể 0cung cấp thông lượng tốt nhất nhưng cài đặt nó để 1mang lại độ trễ tổng thể tốt nhất (thấp nhất).

Để biết thêm thông tin về các điều chỉnh này, xem http://www.linux-mag.com/id/7572/ .

Bây giờ chúng tôi đã cấu hình kernel để tải nội dung từ đĩa vào bộ đệm với hiệu suất hợp lý, đã đến lúc điều chỉnh hành vi bộ đệm:

Theo điểm chuẩn tôi đã thực hiện, tôi sẽ không bận tâm đến việc đọc trước blockdev. Cài đặt mặc định kernel là tốt.

Đặt hệ thống để thích hoán đổi dữ liệu tệp qua mã ứng dụng (điều này không quan trọng nếu bạn có đủ RAM để giữ toàn bộ hệ thống tệp tất cả mã ứng dụng tất cả bộ nhớ ảo được phân bổ bởi các ứng dụng trong RAM). Điều này giúp giảm độ trễ khi hoán đổi giữa các ứng dụng khác nhau về độ trễ để truy cập các tệp lớn từ một ứng dụng:

echo 15 > /proc/sys/vm/swappiness

Nếu bạn muốn giữ các ứng dụng gần như luôn luôn trong RAM, bạn có thể đặt giá trị này thành 1. Nếu bạn đặt giá trị này thành 0, kernel sẽ không trao đổi gì cả trừ khi thực sự cần thiết để tránh OOM. Nếu bạn bị giới hạn bộ nhớ và làm việc với các tệp lớn (ví dụ: chỉnh sửa video HD), thì có thể có ý nghĩa khi đặt mức này gần 100.

Tôi hiện nay (2017) thích không có trao đổi gì cả nếu bạn có đủ RAM. Không có trao đổi thường sẽ mất 200-1000 MB RAM trên máy tính để bàn chạy dài. Tôi sẵn sàng hy sinh nhiều thứ đó để tránh độ trễ trong trường hợp xấu nhất (đổi mã ứng dụng khi RAM đầy). Trong thực tế, điều này có nghĩa là tôi thích OOM Killer hơn trong việc hoán đổi. Nếu bạn cho phép / cần trao đổi, bạn cũng có thể muốn tăng /proc/sys/vm/watermark_scale_factor, để tránh một số độ trễ. Tôi sẽ đề xuất các giá trị trong khoảng từ 100 đến 500. Bạn có thể coi cài đặt này là việc sử dụng CPU để có độ trễ trao đổi thấp hơn. Mặc định là 10 và tối đa có thể là 1000. Giá trị cao hơn (theo tài liệu kernel ) dẫn đến việc sử dụng CPU cao hơn cho kswapdcác quy trình và độ trễ hoán đổi tổng thể thấp hơn.

Tiếp theo, yêu cầu kernel thích giữ phân cấp thư mục trong bộ nhớ hơn nội dung tệp trong trường hợp một số RAM cần được giải phóng (một lần nữa, nếu mọi thứ phù hợp với RAM, cài đặt này không làm gì):

echo 10 > /proc/sys/vm/vfs_cache_pressure

Cài đặt vfs_cache_pressurevới giá trị thấp có ý nghĩa bởi vì trong hầu hết các trường hợp, kernel cần biết cấu trúc thư mục trước khi nó có thể sử dụng nội dung tệp từ bộ đệm và xóa bộ đệm thư mục quá sớm sẽ làm cho bộ đệm tệp bên cạnh không có giá trị. Xem xét giảm dần xuống 1 với cài đặt này nếu bạn có nhiều tệp nhỏ (hệ thống của tôi có khoảng 150K ảnh 10 megapixel và được tính là hệ thống "nhiều tệp nhỏ"). Không bao giờ đặt nó về 0 hoặc cấu trúc thư mục luôn được giữ trong bộ nhớ ngay cả khi hệ thống hết bộ nhớ. Đặt giá trị này thành giá trị lớn chỉ hợp lý nếu bạn chỉ có một vài tệp lớn liên tục được đọc lại (một lần nữa, chỉnh sửa video HD mà không có đủ RAM sẽ là một ví dụ). Tài liệu hạt nhân chính thức nói rằng "

Ngoại lệ: nếu bạn có số lượng tệp và thư mục thực sự lớn và bạn hiếm khi chạm / đọc / liệt kê tất cả các tệp cài đặt vfs_cache_pressurecao hơn 100 có thể là khôn ngoan. Điều này chỉ áp dụng nếu bạn không có đủ RAM và không thể giữ toàn bộ cấu trúc thư mục trong RAM và vẫn có đủ RAM cho các quy trình và bộ đệm của tệp thông thường (ví dụ: máy chủ tệp rộng của công ty có nhiều nội dung lưu trữ). Nếu bạn cảm thấy cần tăng vfs_cache_pressurehơn 100 thì bạn đang chạy mà không đủ RAM. Tăng vfs_cache_pressurecó thể giúp nhưng cách khắc phục thực sự duy nhất là để có thêm RAM. Đã vfs_cache_pressuređặt số lượng cao hy sinh hiệu suất trung bình để có hiệu suất tổng thể ổn định hơn (nghĩa là, bạn có thể tránh hành vi xấu thực sự tồi tệ nhất nhưng phải đối phó với hiệu suất tổng thể tồi tệ hơn).

Cuối cùng, bảo kernel sử dụng tới 99% RAM làm bộ đệm để ghi và hướng dẫn kernel sử dụng tới 50% RAM trước khi làm chậm quá trình ghi (mặc định dirty_background_ratio10). Cảnh báo: Cá nhân tôi sẽ không làm điều này nhưng bạn tuyên bố có đủ RAM và sẵn sàng mất dữ liệu.

echo 99 > /proc/sys/vm/dirty_ratio
echo 50 > /proc/sys/vm/dirty_background_ratio

Và nói rằng trì hoãn ghi 1h là ổn để thậm chí bắt đầu ghi nội dung vào đĩa (một lần nữa, tôi sẽ không làm điều này):

echo 360000 > /proc/sys/vm/dirty_expire_centisecs
echo 360000 > /proc/sys/vm/dirty_writeback_centisecs

Nếu bạn đặt tất cả những thứ đó vào /etc/rc.localvà bao gồm theo sau ở cuối, mọi thứ sẽ ở trong bộ đệm càng sớm càng tốt sau khi khởi động (chỉ làm điều này nếu hệ thống tệp của bạn thực sự phù hợp với RAM):

(nice find / -type f -and -not -path '/sys/*' -and -not -path '/proc/*' -print0 2>/dev/null | nice ionice -c 3 wc -l --files0-from - > /dev/null)&

Hoặc một chút thay thế đơn giản mà có thể làm việc tốt hơn (bộ nhớ cache chỉ /home/usr, chỉ làm điều này nếu bạn /home/usrthực sự phù hợp trong RAM):

(nice find /home /usr -type f -print0 | nice ionice -c 3 wc -l --files0-from - > /dev/null)&

3
Một câu trả lời đầy đủ thông tin và tổng thể tốt hơn nhiều so với câu trả lời được chấp nhận! Điều này bị đánh giá thấp ... Tôi đoán hầu hết mọi người chỉ muốn những hướng dẫn đơn giản mà không bận tâm để hiểu những gì họ thực sự làm ...
Vladimir Panteleev

2
@Phpdevpad: Ngoài ra, câu hỏi cho biết "Tôi không quan tâm đến việc sử dụng RAM [...]" - Tôi không nghĩ bất kỳ thiết bị Maemo nào đủ điều kiện.
Mikko Rantalainen

1
Không phải là noop hay thời hạn là một công cụ lên lịch tốt hơn cho SSD?
rep_movsd

1
@rep_movsd Tôi chỉ sử dụng các ổ SSD intel nhưng ít nhất các ổ này vẫn đủ chậm để có hiệu suất tổng thể tốt hơn với các trình lập lịch thông minh hơn như CFQ. Tôi đoán rằng nếu ổ SSD của bạn có thể xử lý hơn 100K IOPS ngẫu nhiên, sử dụng noop hoặc hạn chót sẽ có ý nghĩa ngay cả với CPU nhanh. Với "CPU nhanh", ý tôi là thứ gì đó có ít nhất nhiều lõi 3GHz chỉ dành cho IO.
Mikko Rantalainen

1
Bạn cũng có thể đọc về các điều chỉnh vm này từ các tài liệu kernel vm .
joeytwiddle

16

Thứ nhất, tôi KHÔNG khuyên bạn nên tiếp tục sử dụng NTFS, vì việc triển khai ntfs trong Linux sẽ là vấn đề về hiệu năng và bảo mật bất cứ lúc nào.

Có một vài điều bạn có thể làm:

  • sử dụng một số fs mới hơn như ext4hoặcbtrfs
  • cố gắng thay đổi lịch trình io của bạn, ví dụ bfq
  • tắt trao đổi
  • sử dụng một số trình tải trước tự động như preload
  • sử dụng một cái gì đó như systemdđể tải trước trong khi khởi động
  • ... và một cái gì đó nữa

Có lẽ bạn muốn thử nó :-)


1
Tôi đã chuyển hoàn toàn từ NTFS sang ext4 một lần, để phân vùng NTFS duy nhất là phân vùng hệ thống Windows. Nhưng nó đã gây ra nhiều bất tiện cho tôi và tôi đã quay lại NTFS làm phân vùng dữ liệu chính (nơi tôi lưu trữ tất cả các tài liệu, tải xuống, dự án, mã nguồn, v.v.) của tôi. Tôi không từ bỏ việc xem xét lại cấu trúc phân vùng và quy trình làm việc của mình (để sử dụng ít Windows hơn) nhưng hiện tại việc từ bỏ NTFS dường như không phải là một lựa chọn thực tế.
Ivan

Nếu bạn cũng phải sử dụng dữ liệu của mình trong Windows, NTFS có thể là lựa chọn duy nhất. (nhiều tùy chọn khác khả dụng nếu bạn có thể sử dụng Windows của mình như một máy ảo trong linux)
Felix Yan

1
Một bản tóm tắt về những vấn đề được cho là của NTFS sẽ hữu ích.
gạch dưới

2
NTFS trên Linux được chấp nhận khá nhiều ngoại trừ hiệu năng. Xem xét rằng câu hỏi cụ thể là về việc cải thiện hiệu năng hệ thống tệp, NTFS nên là điều đầu tiên phải làm.
Mikko Rantalainen

Mặc dù btrfshệ thống tập tin được thiết kế gần đây, tôi sẽ tránh điều đó nếu cần hiệu suất. Chúng tôi đã chạy các hệ thống khác giống hệt với btrfsext4hệ thống tập tin và ext4chiến thắng trong thế giới thực với một biên độ lớn ( btrfsdường như đòi hỏi về thời gian CPU 4x các ext4nhu cầu cho mức hiệu suất tương tự và gây ra các hoạt động đĩa hơn cho một lệnh logic đơn). Tùy thuộc vào khối lượng công việc, tôi sẽ đề nghị ext4, jfshoặc xfscho bất kỳ công việc thực hiện yêu cầu.
Mikko Rantalainen

8

Đọc trước:

Trên hệ thống 32 bit:

blockdev --setra 8388607 /dev/sda

Trên hệ thống 64 bit:

blockdev --setra 4294967295 /dev/sda

Viết phía sau bộ đệm:

echo 100 > /proc/sys/vm/dirty_ratio

Điều này sẽ sử dụng tới 100% bộ nhớ trống của bạn dưới dạng ghi bộ đệm.

Hoặc bạn có thể đi ra ngoài và sử dụng tmpfs. Điều này chỉ liên quan nếu bạn có đủ RAM. Đặt điều này trong /etc/fstab. Thay 100G bằng dung lượng RAM vật lý.

tmpfs /mnt/tmpfs tmpfs size=100G,rw,nosuid,nodev 0 0

Sau đó:

mkdir /mnt/tmpfs; mount -a

Sau đó sử dụng / mnt / tmpfs.


5
Đầu đọc 3 GB hay 2TB? có thật không? Bạn thậm chí có biết những tùy chọn này làm gì?
Cobra_Fast

1
@Cobra_Fast Bạn có biết ý nghĩa của nó không? Tôi thực sự không có ý tưởng và bây giờ tôi quan tâm.
syss

3
@syss cài đặt readahead được lưu dưới dạng số "khối" bộ nhớ, không phải byte hoặc bit. Kích thước của một khối được xác định tại thời gian biên dịch kernel (vì khối readahead là khối bộ nhớ) hoặc thời gian tạo hệ thống tệp trong một số trường hợp. Thông thường, 1 khối chứa 512 hoặc 4096 byte. Xem linux.die.net/man/8/blockdev
Cobra_Fast

6

Bạn có thể đặt kích thước đọc trước blockdev --setra sectors /dev/sda1, trong đó các cung là kích thước bạn muốn trong các cung 512 byte.


2

Thiết lập sát thủ của tôi rất đơn giản và rất hiệu quả:

echo "2000" > /proc/sys/vm/vfs_cache_pressure

Giải thích từ tài liệu kernel :

vfs_cache_pressure

Điều khiển xu hướng của kernel để lấy lại bộ nhớ được sử dụng để lưu vào bộ đệm của các đối tượng thư mục và inode.

Với giá trị mặc định của vfs_cache_pressure = 100, hạt nhân sẽ cố gắng lấy lại các vết lõm và inodes với tốc độ "công bằng" đối với việc lấy lại pagecache và hoán đổi. Giảm vfs_cache_pressure làm cho hạt nhân thích giữ lại bộ đệm răng và inode. Khi vfs_cache_pressure = 0, hạt nhân sẽ không bao giờ lấy lại được răng và nút do áp lực bộ nhớ và điều này có thể dễ dàng dẫn đến tình trạng hết bộ nhớ. Việc tăng vfs_cache_pressure vượt quá 100 khiến hạt nhân thích lấy lại răng và inodes.

vfs_cache_pressure tại 2000 nguyên nhân là hầu hết các tính toán xảy ra trong RAM và ghi đĩa rất muộn.


4
Đặt vfs_cache_pressurequá cao (tôi sẽ xem xét 2000quá cao) sẽ gây ra sự truy cập đĩa không cần thiết ngay cả đối với những thứ đơn giản như danh sách thư mục sẽ dễ dàng nằm gọn trong bộ đệm. Bạn có bao nhiêu RAM và bạn đang làm gì với hệ thống? Như tôi đã viết trong câu trả lời của mình, sử dụng giá trị cao cho cài đặt này có ý nghĩa đối với việc chỉnh sửa video HD với RAM hạn chế.
Mikko Rantalainen

2
Lưu ý rằng tài liệu được tham chiếu vẫn tiếp tục: " Tăng vfs_cache_pressure đáng kể ngoài 100 có thể có tác động hiệu suất tiêu cực. Mã lấy lại cần phải có nhiều khóa khác nhau để tìm thư mục có thể giải phóng và các đối tượng inode. Với vfs_cache_pressure = 1000, nó sẽ tìm kiếm các đối tượng tự do hơn gấp mười lần là
Mikko Rantalainen

1

Không liên quan đến ghi bộ nhớ đệm, nhưng liên quan đến ghi:

  • Đối với hệ thống ext4, bạn có thể vô hiệu hóa nhật ký hoàn toàn

    Điều này sẽ làm giảm số lượng ghi đĩa cho bất kỳ bản cập nhật cụ thể nào, nhưng có thể khiến hệ thống tập tin ở trạng thái không nhất quán sau khi tắt máy đột ngột, yêu cầu fsck hoặc tệ hơn.

Để dừng đọc đĩa từ kích hoạt ghi đĩa:

  • Gắn kết với các relatime hoặc noatime lựa chọn

    Khi bạn đọc một tệp, siêu dữ liệu "lần truy cập cuối" cho tệp đó thường được cập nhật. Các noatimetùy chọn sẽ vô hiệu hóa hành vi đó. Điều này làm giảm việc ghi đĩa không cần thiết, nhưng bạn sẽ không còn siêu dữ liệu đó nữa. Một số bản phân phối (ví dụ Manjaro) đã áp dụng điều này làm mặc định trên tất cả các phân vùng (có thể để tăng tuổi thọ của các mẫu SSD trước đó).

    relatimecập nhật thời gian truy cập ít thường xuyên hơn, theo các heuristic giúp hỗ trợ các ứng dụng sử dụng atime. Đây là mặc định trên Red Hat Enterprise Linux.

Sự lựa chọn khác:

  • Trong các ý kiến ​​trên, Mikko đã chia sẻ khả năng gắn kết với tùy chọn nobarrier . Nhưng Ivailo dẫn lời RedHat , người thận trọng chống lại nó. Làm thế nào xấu bạn muốn thêm 3%?
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.