История изменений
Исправление soomrack, (текущая версия) :
Если ты про тесты производительности, то я мерил так:
#!/bin/sh
#-------------------------------------------------------------------------------
# Оптимальные настройки для файловой системы xfs на:
# -- WD10EACS
#-------------------------------------------------------------------------------
dir_log="/root/optimization/sdb2/aligned/xfs_best_log"
mkdir -p $dir_log
umount /mnt/data0
#echo 1 > /proc/sys/vm/dirty_background_ratio
#echo 20 > /proc/sys/vm/dirty_ratio
echo 128 > /sys/block/sdb/queue/nr_requests
echo cfq > /sys/block/sdb/queue/scheduler
blockdev --setra 128 /dev/sdb
#-------------------------------------------------------------------------------
# Создание файловой системы
#
mkfs.xfs -f -s size=4k -b size=4k -d agcount=8 -l size=128m /dev/sdb2 > $dir_log/xfs.info
mount -o allocsize=1g,noatime,attr2,nobarrier,logbufs=8,logbsize=256k /dev/sdb2 /mnt/data0
xfs_db -r -c uuid /dev/sdb2 > $dir_log/xfs.uuid
#-------------------------------------------------------------------------------
# Тест производительности
mkdir -p "/mnt/data0/tmp"
chmod 777 "/mnt/data0/tmp"
user="soomrack"
ram=8
count=$(( $ram * 250000 ))
/usr/bin/time -o $dir_log/dd-of.time \
sh -c "dd if=/dev/zero of=/mnt/data0/tmp/dd.txt bs=8k count=${count} && sync" 2> $dir_log/dd.write
/usr/bin/time -o $dir_log/dd-if.time \
sh -c "dd if=/mnt/data0/tmp/dd.txt of=/dev/null bs=8k" 2> $dir_log/dd.read
/usr/bin/time -o $dir_log/bonnie++.time \
sh -c "bonnie++ -f -n 0 -c 4 -x 4 -u ${user} -d /mnt/data0/tmp > $dir_log/bonnie++.csv"
sync
sleep 10
/usr/bin/time -o "$dir_log/bonnie++.all.time" \
sh -c "bonnie++ -x 4 -u ${user} -d /mnt/data0/tmp > $dir_log/bonnie++.all.csv"
Это оптимальные параметры для моего винта, полученные путем тупого перебора по сетке параметров фс Х длина очереди cfq (вынесение лога xfs на отдельный диск дает прибавку в скорости меньше 1%, поэтому и не делается).
Исходная версия soomrack, :
Если ты про тесты производительности, то я мерил так:
#!/bin/sh
#-------------------------------------------------------------------------------
# Оптимальные настройки для файловой системы xfs на:
# -- WD10EACS
#-------------------------------------------------------------------------------
dir_log="/root/optimization/sdb2/aligned/xfs_best_log"
mkdir -p $dir_log
umount /mnt/data0
#echo 1 > /proc/sys/vm/dirty_background_ratio
#echo 20 > /proc/sys/vm/dirty_ratio
echo 128 > /sys/block/sdb/queue/nr_requests
echo cfq > /sys/block/sdb/queue/scheduler
blockdev --setra 128 /dev/sdb
#-------------------------------------------------------------------------------
# Создание файловой системы
#
mkfs.xfs -f -s size=4k -b size=4k -d agcount=8 -l size=128m /dev/sdb2 > $dir_log/xfs.info
mount -o allocsize=1g,noatime,attr2,nobarrier,logbufs=8,logbsize=256k /dev/sdb2 /mnt/data0
xfs_db -r -c uuid /dev/sdb2 > $dir_log/xfs.uuid
#-------------------------------------------------------------------------------
# Тест производительности
mkdir -p "/mnt/data0/tmp"
chmod 777 "/mnt/data0/tmp"
user="soomrack"
ram=8
count=$(( $ram * 250000 ))
/usr/bin/time -o $dir_log/dd-of.time \
sh -c "dd if=/dev/zero of=/mnt/data0/tmp/dd.txt bs=8k count=${count} && sync" 2> $dir_log/dd.write
/usr/bin/time -o $dir_log/dd-if.time \
sh -c "dd if=/mnt/data0/tmp/dd.txt of=/dev/null bs=8k" 2> $dir_log/dd.read
/usr/bin/time -o $dir_log/bonnie++.time \
sh -c "bonnie++ -f -n 0 -c 4 -x 4 -u ${user} -d /mnt/data0/tmp > $dir_log/bonnie++.csv"
sync
sleep 10
/usr/bin/time -o "$dir_log/bonnie++.all.time" \
sh -c "bonnie++ -x 4 -u ${user} -d /mnt/data0/tmp > $dir_log/bonnie++.all.csv"
Это оптимальные параметры для моего винта, полученные путем тупого перебора по стеке параметров фс Х длина очереди cfq (вынесение лога xfs на отдельный диск дает прибавку в скорости меньше 1%, поэтому и не делается).