Для тех, кто споткнулся в этом вопросе в 2016 году ... Используйте ext4. Я пробовал btrfs и разница существенная. За 10-дневный период число операций ввода-вывода в ext4 составило 17 800 секторов. Btrfs? 490 400 секторов. Тот же SSD, идентичная файловая система, разные разделы. В основном, такая же нагрузка.
Ext4 и btrfs работают "тихо", когда на диске нет активности записи. Это хорошо.
Ext4 запишет измененные данные плюс некоторые накладные расходы. Накладные расходы относятся к записанным данным. Запись 4K (1 блок) приводит к перегрузке около 50-80 блоков при следующем коммите. (Журнал ext4 полностью включен)
Измените один блок 4K на btrfs, и вы будете загружать 4000-5000 блоков накладных расходов при следующем коммите. Я полагаю, что фиксация по умолчанию составляет 30 секунд. Я использовал 120.
Теперь все зависит от того, как вы используете SSD. От имени root обычно происходит довольно постоянный поток записи низкого уровня. Файлы журнала, файлы дрейфа ntp, перестройки man db, обновления топологии opensm и т. Д., И т. Д. Каждое событие будет забивать диск btrfs еще 4000-5000 операций записи.
Указанные выше 10-дневные номера относятся к моему SSD с ограничением записи. Большая часть этих 17 800 секторов была результатом небольшого обновления системы. Один экземпляр btrfs не пострадал. Мои авторы, в частности, ntp drift, opensm topology и man db updates (nightly). Больше ничего не попадает на этот диск, кроме активно инициируемых вещей, таких как обновление системы vim /etc/whatever
и т. Д.
На самом деле твердотельные накопители сильно пострадают. Я просто не вижу смысла тратить их впустую, потому что СМИ преследуют кроликов и радугу. Если вы хотите заплатить эту цену за COW, сделайте это. Для «производительности» не так уж и много. Это твердотельный накопитель, и вы, возможно, могли бы использовать на нем худшую «файловую систему», известную человеку, и при этом получить некоторый уровень производительности - просто грубой силой. Ext4, безусловно, не самая плохая файловая система, известная человеку.
Нет ежемесячной проверки фс. Попробуйте скрипт ниже. Это 100% взлом, не будет работать для точек монтирования md,
#! /bin/bash
dev=`cat /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 "Tracking device: $dev, mounted on $1 (vmstat on $vmnam)"
tim=`date +%s`
timx=`date +%s`
while true
do
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
done
Он сообщит вам, сколько блоков было записано, в соответствии с самим диском и какие именно файлы были обновлены. Нужны корневые привилегии. Посмотреть на себя. Я запускаю SSD в корневой файловой системе и вызываю скрипт stat.sh. Так...sudo ./stat.sh /