LINUX.ORG.RU

История изменений

Исправление 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%, поэтому и не делается).