View previous topic :: View next topic |
Author |
Message |
Cassiopeja n00b
Joined: 13 Jun 2005 Posts: 4 Location: Russia, Kazan
|
Posted: Mon Jun 13, 2005 5:54 pm Post subject: Неправильная расстановка приори |
|
|
Уже давно есть проблема. Никак нем могу разобраться.
Если под генту запустить компиляцию, emerge или разархивацию какого
нить архива, то почему то вся система переключается на выполнение этой задачи.
При этом работа с остальными программами запущенными в данный момент не
возможна, жутко все тормозит.
Вроде и настройку ядра смотрела, ничего не нашла, что может влиять.
Подскажите, пожалуйста, в чем может быть дело и в каком направлении искать решение? |
|
Back to top |
|
|
dmiceman Tux's lil' helper
Joined: 06 Jun 2005 Posts: 115
|
Posted: Mon Jun 13, 2005 6:12 pm Post subject: |
|
|
памяти не хватает? если при компиляции идет активный ввод/вывод, то да, это печально становится. еще -- ccache жить помогает (если памяти достаточно).
для меня -- в основном 512 достаточно, и лишь недавно стал задумываться о гигабайте. |
|
Back to top |
|
|
kon Apprentice
Joined: 05 Mar 2004 Posts: 156 Location: Russia. Saint-Petersburg
|
Posted: Mon Jun 13, 2005 6:17 pm Post subject: |
|
|
Cassiopeja
hdparm /dev/<ваш диск, возможно hda> |
|
Back to top |
|
|
point212 n00b
Joined: 07 Jun 2005 Posts: 18 Location: Volgodonsk
|
Posted: Mon Jun 13, 2005 6:17 pm Post subject: Re: Неправильная расстановка прио |
|
|
Cassiopeja wrote: | Уже давно есть проблема. Никак нем могу разобраться.
Если под генту запустить компиляцию, emerge или разархивацию какого
нить архива, то почему то вся система переключается на выполнение этой задачи.
При этом работа с остальными программами запущенными в данный момент не
возможна, жутко все тормозит.
Вроде и настройку ядра смотрела, ничего не нашла, что может влиять.
Подскажите, пожалуйста, в чем может быть дело и в каком направлении искать решение? |
Странно. У меня работа с системой протекает довольно плавно. Причем даже при большом (>2) количестве одновременных компиляций. Загрузка процессора - 100%, при работе с компом никаких подтормаживаний не замечаю (Xorg,KDE,mplayer,xmms,supertux). Magic? ^)
PS A1000/512M, Gentoo(stage1) |
|
Back to top |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Tue Jun 14, 2005 5:13 am Post subject: |
|
|
А своп как заполняется? |
|
Back to top |
|
|
Cassiopeja n00b
Joined: 13 Jun 2005 Posts: 4 Location: Russia, Kazan
|
Posted: Tue Jun 14, 2005 5:41 am Post subject: |
|
|
Памяти предостаточно, раньше 256 было, теперь 512 и та же проблема.
Жесткий диск seagate 10000.
hdparm вечером сделаю.
И еще вот какие проблемы тоже связанные с этой проблемой.
Если я нахожусь в инете (а у меня дайлап), и делаю emerge some_packet.
То пактетик скачивается, а потом начинается его компиляция, и на момент компиляции инет пропадает.
Тут я думаю не в железе дело, а в чем то другом. |
|
Back to top |
|
|
sovchik n00b
Joined: 22 Mar 2005 Posts: 30
|
Posted: Tue Jun 14, 2005 5:47 am Post subject: |
|
|
для начала hdparm -d1 /dev/<ваш диск>. Очень похоже на отрубленный dma на винте. _________________ Вот. |
|
Back to top |
|
|
kaktyc Tux's lil' helper
Joined: 14 Aug 2004 Posts: 100
|
Posted: Tue Jun 14, 2005 6:37 am Post subject: |
|
|
Какое ядро и какой испольуется scheduler?
Code: | ~ $ cat /sys/block/hda/queue/scheduler
noop anticipatory deadline [cfq] |
Тот, что дефолтный, будет в квадратных скобках. У меня - cfq. |
|
Back to top |
|
|
Nelud Apprentice
Joined: 08 Oct 2004 Posts: 271
|
Posted: Tue Jun 14, 2005 7:14 am Post subject: |
|
|
По поводу emerge: не мешало бы выставить в /etc/make.conf параметр PORTAGE_NICENESS. У меня он равен 10. У тебя, конечно, не в этом проблема, но это полезный параметр. |
|
Back to top |
|
|
v12aml n00b
Joined: 04 Feb 2005 Posts: 23
|
Posted: Tue Jun 14, 2005 5:01 pm Post subject: |
|
|
может просто MAKEOPTS стоит большой? _________________ GNU/Wonderland -- GNU/óÔÒÁÎÁ ÞÕÄÅÓ, ÓÔÒÁÎÁ, × ËÏÔÏÒÏÊ ×Ù ÞÁÓÔÏ ÂÙ×ÁÅÔÅ, ÎÏ, × ËÏÔÏÒÕÀ, ÞÔÏ ÐÒÉÍÅÞÁÔÅÌØÎÏ, ÎÅ ÎÁÄÏ ÏÆÏÒÍÌÑÔØ ×ÉÚÕ. |
|
Back to top |
|
|
Cassiopeja n00b
Joined: 13 Jun 2005 Posts: 4 Location: Russia, Kazan
|
Posted: Tue Jun 14, 2005 5:14 pm Post subject: |
|
|
Точно dma был отключен.
Уже при загрузке заметила разницу.
Сейчас все летает.
Аж обидно, что столько времени без dma сидела.
Всем большое спасибо! |
|
Back to top |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Tue Jun 14, 2005 6:14 pm Post subject: |
|
|
kaktyc wrote: | Какое ядро и какой испольуется scheduler?
Code: | ~ $ cat /sys/block/hda/queue/scheduler
noop anticipatory deadline [cfq] |
Тот, что дефолтный, будет в квадратных скобках. У меня - cfq. |
Можно подробней, со ссылками?
Я просто всегда интересовался, но всегда забывал про него
Пока будет реминдер приходить отсюда - супер |
|
Back to top |
|
|
kaktyc Tux's lil' helper
Joined: 14 Aug 2004 Posts: 100
|
Posted: Tue Jun 14, 2005 8:04 pm Post subject: |
|
|
Ну со ссылками - это гугль + kerneltrap.org На последнем очень много чего есть, но надо перелопачивать. Да еще здесь где-то на форумах в обсуждении genetic scheduler было. Если вкратце, то noop - самый тормозной scheduler. Сделан, видимо, "чтобы было". Deadline scheduler будет лучше, если активно гамаешься. Anticipatory говорят хорош на БД. А cfq распределяет доступ к диску равномерно между всеми процессами. Но для игр не подходит. Да, это все I/O schedulers. Есть еще cpu schedulers, но это отдельная история.
В ядро можно вкомпилить все. Выбирать при загрузке параметром elevator=schedule_name. Или без перезагрузки Code: | echo scheduler_name > /sys/block/hda/queue/scheduler | где hda - твой винт. Я лично пользуюсь скриптом, найденным здесь на форумах: Code: | #!/bin/bash
###***Authored by Genn***###
##E-Mail: TheWindRider@myrealbox.com
#Last Update: 1/18/05
#This script was created to change the currently used scheduler
#under the vivid-sources kernel.
#(http://forums.gentoo.org/viewtopic.php?p=1337010, maintained by fallow & troll)
#There are probably other kernels that could use this script as
#well, but I'm not aware of them.
#This script must be executable. If it does not work
#'chmod 700 *this_script*' should do it.
#You can supply one optional arguement with this script.
#'script_name block-device' will run the script with the
#intend to interactively change the scheduler on the
#block device you specify. The block device is just the
#last portion of the device address without slashes.
#IE, if you wanted to adjust the schedular on /dev/hda,
#you would run 'this_script hda' and follow the on-screen
#instructions.
#Now, I say the arguement is optional because you are
#requred to set the DEFAULT_DRIVE variable to a valid block
#device. So, if you do not supply the arguement, the script
#will use that block-device. The variable is set by the
#same rules that the arguement is supplied by; just use the
#last portion of the address with no slashes.
#And for those of you wondering where the variable is,
DEFAULT_DRIVE=hda
#Now you've done everything you need to, go run the script,
#and ignore everything from here down.
##########################################################
#Verification of a valid default block device choice.
if [ -z `ls /sys/block | grep $DEFAULT_DRIVE` ]
then
echo "You chose a non-valid block device as default."
echo "/dev/$DEFAULT_DRIVE does not exist."
echo "Please change the variable DEFAULT_DRIVE in the script."
exit
fi
#Verification of root level access
ROOT_UID=0
ERR_NOTROOT=67
if [ "$UID" != "$ROOT_UID" ]
then
echo "You must be root to run this script."
exit $ERR_NOTROOT
fi
#If an arguement is supplied this makes sure it is used.
#Or if none is supplied it uses the default choice.
if [ -n "$1" ]
then
if [ -n `ls /sys/block | grep $1` ]
then
echo "Now using /dev/$1 for block device."
DRIVE=$1
else
echo "You chose a non-valid block device."
echo "/dev/$1 does not exist."
exit 1
fi
else
echo "No arguement supplied."
echo "Defaulting to /dev/${DEFAULT_DRIVE} for block device."
DRIVE=${DEFAULT_DRIVE}
fi
#Schedular file location
SCHEDLOC=/sys/block/${DRIVE}/queue/scheduler
#Verification of valid scheduler location
if [ `[ -f ${SCHEDLOC} ]` ! -a `[ -w ${SCHEDLOC} ]` ]
then
echo "Uh oh, either $SCHEDLOC is not a file, or you do not "
echo "have write access to it. I would suggest you verify"
echo "that the location listed above is correct and that the "
echo "value in the script did not get altered somewhow. The "
echo "standard location is: "
echo "/sys/block/{some_block_device}/queue/scheduler. If it "
echo "is valid, try echoing something by hand to "
echo "$SCHEDLOC. If you're "
echo "sure your using the right kernel, and none of that works, "
echo "make a post in the vivid-sources thread. On the other "
echo "hand, if echoing by hand does work, send me an e-mail as "
echo "you just discovered a bug."
exit 1
fi
#Identification of different available schedulers.
SCHED1=`cat ${SCHEDLOC} | gawk '{print $1}'`
SCHED2=`cat ${SCHEDLOC} | gawk '{print $2}'`
SCHED3=`cat ${SCHEDLOC} | gawk '{print $3}'`
SCHED4=`cat ${SCHEDLOC} | gawk '{print $4}'`
#User Interface portion
echo "List of available schedulers"
echo "The bracketed choice is the one currectly in use."
echo "Selecting this one does nothing."
echo "1 - ${SCHED1}"
echo "2 - ${SCHED2}"
echo "3 - ${SCHED3}"
echo "4 - ${SCHED4}"
echo " "
echo "Please type the number corresponding the scheduler you wish to use."
#This applies the selected change
read CHOICE
case ${CHOICE} in
1)
echo "$SCHED1" > $SCHEDLOC
NEWSCHED=${SCHED1}
;;
2)
echo "$SCHED2" > $SCHEDLOC
NEWSCHED=${SCHED2}
;;
3)
echo "$SCHED3" > $SCHEDLOC
NEWSCHED=${SCHED3}
;;
4)
echo "$SCHED4" > $SCHEDLOC
NEWSCHED=${SCHED4}
;;
*)
echo "You must input a numerical value corresponding to one of the not-in-use schedulers."
exit 1
;;
esac
#Error catching if the current scheduler is chosen.
VALIDATE=`echo $NEWSCHED | grep -F '['`
if [ "${VALIDATE}" != "" ]
then
echo "You just chose the scheduler currently in use."
exit 1
fi
echo " "
#Announcement of what schedular was selected for which drive.
echo "Schedular changed to $NEWSCHED on /dev/${DRIVE}"
exit 0 |
Вот пожалуй и все.
P.S. Много полезной инфы есть в тредах по ядрам love и nitro. |
|
Back to top |
|
|
YD Guru
Joined: 30 Oct 2004 Posts: 466 Location: Riga, Latvia
|
Posted: Tue Jun 14, 2005 8:21 pm Post subject: |
|
|
Я вообщем-то в кернел себе deadline ставлю только и без подобных скриптов обхожусь (: |
|
Back to top |
|
|
kaktyc Tux's lil' helper
Joined: 14 Aug 2004 Posts: 100
|
Posted: Wed Jun 15, 2005 7:07 am Post subject: |
|
|
Я долго экспериментировал с ними, поэтому оставил их все. Иногда режусь в Диабло2 - тогда включаю deadline. С ним чуть быстрее. А для повседневной работы исрользую cfq. На моей конфигурации самое то |
|
Back to top |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Wed Jun 15, 2005 11:31 am Post subject: |
|
|
kaktyc wrote: | Я долго экспериментировал с ними, поэтому оставил их все. Иногда режусь в Диабло2 - тогда включаю deadline. С ним чуть быстрее. А для повседневной работы исрользую cfq. На моей конфигурации самое то |
Пасиб, нето давно мучаюсь, а так вкратце сразу понятно.
Просто, в доках к ядру, они все запутать стараються |
|
Back to top |
|
|
|