Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Как разгрузить процессор при emerge?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
Balancer
Guru
Guru


Joined: 04 Jun 2004
Posts: 465

PostPosted: Tue Dec 14, 2004 8:29 am    Post subject: Как разгрузить процессор при emerge Reply with quote

Имею старенький ноут P233MMX с 96RAM. Ноут несколько себе на уме и при длительной (минут 10) загрузке процессора на 100% перегревается и виснет. Никакие аппаратные попытки решить эту проблему успехом не увенчались, так что ломаю голову теперь со стороны программной. Как бы так сделать, чтобы emerge мог при сборке пакетов работать в чём-то подобном: несколько минут на полную катушку, при 100% загрузке, потом несколько минут - с загрузкой процентов в 30..50. Как бы ему урезать динамически ресурсы процессора. Это реально?
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Tue Dec 14, 2004 8:47 am    Post subject: Reply with quote

Пробовал использовать nice и renice утилитки?

Не скажу навскидку, как это на bash'е написать, можно поиграться...

Идея такая --- стартуешь через nice -15 emerge... Потом, через каждые N минут делаешь renice +/-20 -p $(pidof emerge)
Back to top
View user's profile Send private message
Balancer
Guru
Guru


Joined: 04 Jun 2004
Posts: 465

PostPosted: Tue Dec 14, 2004 12:04 pm    Post subject: Reply with quote

Боюсь, что проблема тут сложнее. Дело же не только в emerge, но и в gcc, g++ и т.п. - кого там оно запускает... Их же тоже ограничивать нужно :)
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Tue Dec 14, 2004 12:12 pm    Post subject: Reply with quote

Да, задачка...

Может проще ноут поновей купить? :P
Back to top
View user's profile Send private message
devil_ua
Tux's lil' helper
Tux's lil' helper


Joined: 23 Jun 2004
Posts: 128
Location: Kiev, Ukraine

PostPosted: Tue Dec 14, 2004 12:13 pm    Post subject: Reply with quote

Balancer wrote:
Боюсь, что проблема тут сложнее. Дело же не только в emerge, но и в gcc, g++ и т.п. - кого там оно запускает... Их же тоже ограничивать нужно :)

А кто тебе мешает собирать все что надо на другой тачке?
А потом перенести на ноут?
_________________
Web developer & High-load application deployer
Web Site: http://simonov.me
E-Mail: alex@simonov.me
Back to top
View user's profile Send private message
chernousov
Tux's lil' helper
Tux's lil' helper


Joined: 30 May 2004
Posts: 117

PostPosted: Tue Dec 14, 2004 1:17 pm    Post subject: Reply with quote

Balancer wrote:
Боюсь, что проблема тут сложнее. Дело же не только в emerge, но и в gcc, g++ и т.п. - кого там оно запускает... Их же тоже ограничивать нужно :)

На ск. я знаю, child-процессы стартуют с родительским приоритетом.
Back to top
View user's profile Send private message
046
Apprentice
Apprentice


Joined: 21 Jul 2004
Posts: 231
Location: Yaroslavl, Russia

PostPosted: Tue Dec 14, 2004 3:34 pm    Post subject: Reply with quote

И 100% загрузку приоритетом не снять.
Нужно останавливать/возобновлять ...
Back to top
View user's profile Send private message
Balancer
Guru
Guru


Joined: 04 Jun 2004
Posts: 465

PostPosted: Tue Dec 14, 2004 4:48 pm    Post subject: Reply with quote

devil_ua wrote:
А кто тебе мешает собирать все что надо на другой тачке?
А потом перенести на ноут?


На сколько я понимаю, для этого нужно там иметь точную копию системы ноутбука (а иначе на какие библиотки configure пактов настроится?)

Интересно, а если, например, слепить скрипт с тем же именем gcc и в нём делать паузу, скажем, на минуту через каждые 10 минут работы, а потом уже из него вызывать оригинальный gcc?
Back to top
View user's profile Send private message
GreenDragon
Guru
Guru


Joined: 31 Jul 2003
Posts: 319

PostPosted: Wed Dec 15, 2004 7:48 am    Post subject: Reply with quote

046 wrote:
И 100% загрузку приоритетом не снять.
Нужно останавливать/возобновлять ...

Можно попробовать сделать следующее как пока не знаю, просто бредовая идея пришла в голову,
помнится мне что приостановить компиляцию можно вроде по нажатию Ctrl+S, возобновить по Ctrl+U - могу ошибаться. Вот если каким макаром это передавать скриптом, то результат будет положительным за исключением времени компиляции
Back to top
View user's profile Send private message
iliah
n00b
n00b


Joined: 01 Aug 2004
Posts: 42
Location: Russia Moscow

PostPosted: Wed Dec 15, 2004 5:56 pm    Post subject: Reply with quote

В продолжение поста GreenDragon'a
для машин, на которых можно сенсорами снимать температуру проца
по крону с подобранной периодичностью
проверять температуру, и при превышении опять-таки подобранной величины проверять в листе процессов наличие там заданных программ (в твоем случае emerge, gcc etc.)
и слать им `kill -s SIGSTOP pid`
в том же скрипте при достижении рабочей температуры, остановленным программам слать `kill -s CONT pid`

если снимать температуру никак, то тогда просто мониторить время остановки/продолжения

варианты совершенно ломовые, на сях уверен можно сделать гораздо элегантнее, возможно используя sleep или что-то в этом роде, тут я к сожалению не подскажу
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Wed Dec 15, 2004 6:39 pm    Post subject: Reply with quote

Тут вопрос даже не в том, как избежать останова процессора, а как определить точку Ы, при достижении которой следует предпринимать какие-то действия. В целом, вариант iliah очень даже. Надо запускать с & требуемую команду, и через интервалы A и B посылать SIGSTOP и SIGCONT. Но это если не вдаваться в детали и брать большую часть контроля на себя.

Думаю, можно установить A (время работы) равным секунд 30, а вот с B (время отдыха) придется поиграться... Одно точно, оно должно быть не менее A. Если будет параллельно работать только 1 процесс, то все ничего. Если несколько --- проблематичней, т.к. возможны ситуации, когда проц будет все время работать (пока один gcc отдыхает, другой работает). Придется увеличить вермя простоя. Также надо учитывать, что сам скрипт будет жрать циклы проца. Плюс, такие "надстройки" нужны еще и над bash'ем, т.к. configure дает приличную нагрузку.

Тут по хорошему надо, чтобы "надстройки" могли общаться друг с другом и динамически реагировать на время нагрузки. Нехилая фишка выходит :o


Я читаю рассылку pgsql-hackers@postgresql.org, алгоритмы кэширования там динамические и хрена-с-два в них разберешся. Что-то похожее и здесь вырисовывается 8O

Мне все-таки думается, что проще купить новый ноут ;)
Back to top
View user's profile Send private message
Balancer
Guru
Guru


Joined: 04 Jun 2004
Posts: 465

PostPosted: Thu Dec 16, 2004 11:06 am    Post subject: Reply with quote

Увы, термосенсора на ноуте нет :)
Модель-то 1995-го года (хотя и ОЧЕНЬ продвинутая для того времени - всего 1700 грамм, USB, 233MMX и т.п.)

На самом деле, уже почти склонился к возврату на нём на Win98. Главным образом из-за тормозов видеодрайвера. Судя по всему, Linux-версия (видюха там NeoMagck 128) не использует все возможности аппаратного ускорения этого видеочипа. Под Win98 там скроллинг полноэкранный идёт шустро, а под Linux - не так тормозно, конечно, как при полной VGA-эмуляции, но всё равно - медленными волнами.

А про настройку APM мне пока и думать неохота. Если под Win98 при закрытии крышки ноут сразу сам уходит в гибернацию, при чём такая фича там по дефолту, без доп. драйверов, то как такое сделать под Linux - даже представить затрудняюсь... :D

Так что Gentoo у меня только на трёх серверах и одном десктопе, боюсь, останется :)
Back to top
View user's profile Send private message
rusxakep
Guru
Guru


Joined: 09 Jul 2004
Posts: 458
Location: Moscow, Russia

PostPosted: Wed Dec 22, 2004 4:34 am    Post subject: Reply with quote

Ребят, вы меня конечно извините, но ...

# PORTAGE_NICENESS provides a default increment to emerge's niceness level.
# Note: This is an increment. Running emerge in a niced environment will
# reduce it further. Default is unset.
#PORTAGE_NICENESS=3

Поможет отцам русской демократии? :roll:

P.S: /etc/make.conf sure.
Back to top
View user's profile Send private message
unvivid
n00b
n00b


Joined: 22 Dec 2004
Posts: 4

PostPosted: Wed Dec 22, 2004 4:43 am    Post subject: Reply with quote

Ya sam v linuxe novi4ok. No mne v kernel options vstrechalas feature takaya - chjtob skorost' processora meniat' na letu. Mozhet esli tebe s etoy fichey kernel skompilit' + software podxodiashiy - i vo vremia sborki meniat' skorost' na raza 2-3 men'sheyu, togda sobiratsya budet ochen' medlenno, zato naverno ne budet gretsya. Ili ya chto-to ne ponimayu v rabote processorov. Note mozho na noch ostavliat' budet.
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Wed Dec 22, 2004 6:53 am    Post subject: Reply with quote

rusxakep wrote:
#PORTAGE_NICENESS=3

Поможет отцам русской демократии? :roll:

Мне кажеться, что нет. nice определяет приоритет процесса, т.е. кол-во процессорного времени при наличии >1 работающей задаче.

А если emerge идет один, сам по себе, то при любом nice будет жрать весь проц. Я так это понимаю.
Back to top
View user's profile Send private message
theli
Tux's lil' helper
Tux's lil' helper


Joined: 25 Nov 2004
Posts: 112
Location: Seattle, US

PostPosted: Wed Dec 22, 2004 11:44 am    Post subject: Reply with quote

на самом деле наиболее простой вариант будет понижение частоты процессора...
так как в ядре действительно есть опция насчет возможности управлять cpufreq ...

Code:
CONFIG_CPU_FREQ:

Clock scaling allows you to change the clock speed of CPUs on the
fly. This is a nice method to save battery power on notebooks,
because the lower the clock speed, the less power the CPU consumes.
Back to top
View user's profile Send private message
Balancer
Guru
Guru


Joined: 04 Jun 2004
Posts: 465

PostPosted: Thu Dec 23, 2004 8:45 pm    Post subject: Reply with quote

theli wrote:
на самом деле наиболее простой вариант будет понижение частоты процессора...
так как в ядре действительно есть опция насчет возможности управлять cpufreq ...


Ребята, ноут - 1995-го года. Ну какое в те времена программное управление частотой процессора :D
Back to top
View user's profile Send private message
theli
Tux's lil' helper
Tux's lil' helper


Joined: 25 Nov 2004
Posts: 112
Location: Seattle, US

PostPosted: Fri Dec 24, 2004 8:36 am    Post subject: Reply with quote

Balancer wrote:
Ребята, ноут - 1995-го года. Ну какое в те времена программное управление частотой процессора :D

собственно а почему бы и нет?
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Fri Dec 24, 2004 8:40 am    Post subject: Reply with quote

Balancer wrote:
Ребята, ноут - 1995-го года. Ну какое в те времена программное управление частотой процессора ;D

Если это делается на уровне ограничения нагрузки на проц в ядре, то все возможно. Если ядро использует фишки железок, то, скорее всего, не выйдет.

Надо доки по этой опции почитать.
Back to top
View user's profile Send private message
theli
Tux's lil' helper
Tux's lil' helper


Joined: 25 Nov 2004
Posts: 112
Location: Seattle, US

PostPosted: Fri Dec 24, 2004 8:46 am    Post subject: Reply with quote

viy wrote:
Надо доки по этой опции почитать.

вот собственно список поддерживаемого "железа"
http://www.kernel.org/pub/linux/utils/kernel/cpufreq/hardware.html
Back to top
View user's profile Send private message
theli
Tux's lil' helper
Tux's lil' helper


Joined: 25 Nov 2004
Posts: 112
Location: Seattle, US

PostPosted: Fri Dec 24, 2004 9:05 am    Post subject: Reply with quote

я думаю все же стоит поставить ядро с поддержкой CPUFreq и попробовать поюзать что-нить типа
sys-apps / cpudyn A daemon to control laptop power consumption via cpufreq and disk standby
sys-apps / cpufreqd Daemon to adjust CPU speed for power saving
sys-apps / cpuspeedy A simple and easy to use program to control the speed and the voltage of CPUs on the fly.
sys-apps / gtk-cpuspeedy Graphical GTK+-2 frontend for cpuspeedy
sys-apps / powernowd Daemon to control the speed and voltage of CPUs
sys-apps / speedfreq daemon to control the CPU speed in 2.6 kernels

хотя все эти демоны позволяют делать настройки в зависимости от заряда батареи ...
но может и можно в зависимости от температуры настроить :)
ну и я думаю можно просто попробовать cpuspeedy или похожее чтобы вручную все это менять ...

а насчет будет все это работать или нет - так проще просто попробовать - если уж не получится то тут уж и можно говорить - "та это ж ноут 1995 года и все тут" :) ....

а если уж получиться использовать эту опцию то тут уж и не так сложно будет написать скриптик который будет периодически проверять температуру и в зависимости от нее переключать на нужную частоту
(типа нагрелся =>133
остыл =>233)
:)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum