Что нам понадобится для достижения цели?
Во-первых, установленный hdparm:
Во-вторых, маленький скрипт:
Новое значение, можно установить прямо в grub'е, изменив значение elevator=...
Далее:
ps: Спасибо Сергею (snkua[at]jabber.ru) за подсказанные идеи :)
Ссылки по теме:
http://www.redhat.com/magazine/008jun05/features/schedulers/
http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Sanjay_Rao.pdf
http://sfdoccentral.symantec.com/sf/5.0/linux/html/sf_rac_install/sfrac_prep_install27.html
Во-первых, установленный hdparm:
# aptitude install hdparm
Во-вторых, маленький скрипт:
# DISC="sda"; \ cat /sys/block/$DISC/queue/scheduler; \ for T in noop anticipatory deadline cfq; do \ echo $T > /sys/block/$DISC/queue/scheduler; \ cat /sys/block/$DISC/queue/scheduler; \ sync && /sbin/hdparm -tT /dev/$DISC && echo "----"; \ sleep 15; \ doneЕсли диск не sda, то соответствующим образом правим кусок кода с объявлением:
DISC="sda";Запускаем и получаем подобный результат:
noop anticipatory deadline [cfq] [noop] anticipatory deadline cfq /dev/sda: Timing cached reads: 1690 MB in 2.00 seconds = 844.83 MB/sec Timing buffered disk reads: 216 MB in 3.00 seconds = 71.91 MB/sec ---- noop [anticipatory] deadline cfq /dev/sda: Timing cached reads: 1612 MB in 2.00 seconds = 805.98 MB/sec Timing buffered disk reads: 208 MB in 3.03 seconds = 68.67 MB/sec ---- noop anticipatory [deadline] cfq /dev/sda: Timing cached reads: 1644 MB in 2.00 seconds = 822.10 MB/sec Timing buffered disk reads: 206 MB in 3.02 seconds = 68.20 MB/sec ---- noop anticipatory deadline [cfq] /dev/sda: Timing cached reads: 1728 MB in 2.00 seconds = 864.06 MB/sec Timing buffered disk reads: 214 MB in 3.01 seconds = 71.05 MB/sec ----Первая строка чисто информационная, в ней мы просто видем тот scheduler который используется на текущий момент времени и всегда можем вернуться к нему. Затем следуют секции тестирования. Наиболее оптимальные результат выбираем вручную, он соответствует наибольшей скорости чтения мегабайт в секунду. Короче занимаемся округлениями :)
Новое значение, можно установить прямо в grub'е, изменив значение elevator=...
Далее:
# update-grub # reboot
ps: Спасибо Сергею (snkua[at]jabber.ru) за подсказанные идеи :)
Ссылки по теме:
http://www.redhat.com/magazine/008jun05/features/schedulers/
http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Sanjay_Rao.pdf
http://sfdoccentral.symantec.com/sf/5.0/linux/html/sf_rac_install/sfrac_prep_install27.html
1 коментар:
# cat ./io-shed-test.sh
#!/bin/sh
SYSBLOCK=cciss\!c0d0
DEVBLOCK=cciss/c0d0
OLDSHED=$( cat /sys/block/$SYSBLOCK/queue/scheduler | sed "s/.*\[//;s/\].*//" )
ALLSHED=$( cat /sys/block/$SYSBLOCK/queue/scheduler | sed "s/\[//;s/\]//" )
echo "$SYSBLOCK current i/o-shed [$OLDSHED]"
for T in $ALLSHED; do
echo
echo -n "$SYSBLOCK set i/o-shed $T... "
sync
echo $T > /sys/block/$SYSBLOCK/queue/scheduler
sync
CURR=$( cat /sys/block/$SYSBLOCK/queue/scheduler | sed "s/.*\[//;s/\].*//" )
echo $CURR
sync
hdparm -tT /dev/$DEVBLOCK
echo "-----"
sync
sleep 15
done
echo $OLDSHED > /sys/block/$SYSBLOCK/queue/scheduler
sync
Дописати коментар