View previous topic :: View next topic |
Author |
Message |
Balancer Guru
Joined: 04 Jun 2004 Posts: 465
|
Posted: Tue Dec 14, 2004 8:29 am Post subject: Как разгрузить процессор при emerge |
|
|
Имею старенький ноут P233MMX с 96RAM. Ноут несколько себе на уме и при длительной (минут 10) загрузке процессора на 100% перегревается и виснет. Никакие аппаратные попытки решить эту проблему успехом не увенчались, так что ломаю голову теперь со стороны программной. Как бы так сделать, чтобы emerge мог при сборке пакетов работать в чём-то подобном: несколько минут на полную катушку, при 100% загрузке, потом несколько минут - с загрузкой процентов в 30..50. Как бы ему урезать динамически ресурсы процессора. Это реально? |
|
Back to top |
|
|
viy Veteran
Joined: 03 Jul 2004 Posts: 1580 Location: Riga, Latvia
|
Posted: Tue Dec 14, 2004 8:47 am Post subject: |
|
|
Пробовал использовать nice и renice утилитки?
Не скажу навскидку, как это на bash'е написать, можно поиграться...
Идея такая --- стартуешь через nice -15 emerge... Потом, через каждые N минут делаешь renice +/-20 -p $(pidof emerge) |
|
Back to top |
|
|
Balancer Guru
Joined: 04 Jun 2004 Posts: 465
|
Posted: Tue Dec 14, 2004 12:04 pm Post subject: |
|
|
Боюсь, что проблема тут сложнее. Дело же не только в emerge, но и в gcc, g++ и т.п. - кого там оно запускает... Их же тоже ограничивать нужно |
|
Back to top |
|
|
viy Veteran
Joined: 03 Jul 2004 Posts: 1580 Location: Riga, Latvia
|
Posted: Tue Dec 14, 2004 12:12 pm Post subject: |
|
|
Да, задачка...
Может проще ноут поновей купить? |
|
Back to top |
|
|
devil_ua Tux's lil' helper
Joined: 23 Jun 2004 Posts: 128 Location: Kiev, Ukraine
|
Posted: Tue Dec 14, 2004 12:13 pm Post subject: |
|
|
Balancer wrote: | Боюсь, что проблема тут сложнее. Дело же не только в emerge, но и в gcc, g++ и т.п. - кого там оно запускает... Их же тоже ограничивать нужно |
А кто тебе мешает собирать все что надо на другой тачке?
А потом перенести на ноут? _________________ Web developer & High-load application deployer
Web Site: http://simonov.me
E-Mail: alex@simonov.me |
|
Back to top |
|
|
chernousov Tux's lil' helper
Joined: 30 May 2004 Posts: 117
|
Posted: Tue Dec 14, 2004 1:17 pm Post subject: |
|
|
Balancer wrote: | Боюсь, что проблема тут сложнее. Дело же не только в emerge, но и в gcc, g++ и т.п. - кого там оно запускает... Их же тоже ограничивать нужно |
На ск. я знаю, child-процессы стартуют с родительским приоритетом. |
|
Back to top |
|
|
046 Apprentice
Joined: 21 Jul 2004 Posts: 231 Location: Yaroslavl, Russia
|
Posted: Tue Dec 14, 2004 3:34 pm Post subject: |
|
|
И 100% загрузку приоритетом не снять.
Нужно останавливать/возобновлять ... |
|
Back to top |
|
|
Balancer Guru
Joined: 04 Jun 2004 Posts: 465
|
Posted: Tue Dec 14, 2004 4:48 pm Post subject: |
|
|
devil_ua wrote: | А кто тебе мешает собирать все что надо на другой тачке?
А потом перенести на ноут? |
На сколько я понимаю, для этого нужно там иметь точную копию системы ноутбука (а иначе на какие библиотки configure пактов настроится?)
Интересно, а если, например, слепить скрипт с тем же именем gcc и в нём делать паузу, скажем, на минуту через каждые 10 минут работы, а потом уже из него вызывать оригинальный gcc? |
|
Back to top |
|
|
GreenDragon Guru
Joined: 31 Jul 2003 Posts: 319
|
Posted: Wed Dec 15, 2004 7:48 am Post subject: |
|
|
046 wrote: | И 100% загрузку приоритетом не снять.
Нужно останавливать/возобновлять ... |
Можно попробовать сделать следующее как пока не знаю, просто бредовая идея пришла в голову,
помнится мне что приостановить компиляцию можно вроде по нажатию Ctrl+S, возобновить по Ctrl+U - могу ошибаться. Вот если каким макаром это передавать скриптом, то результат будет положительным за исключением времени компиляции |
|
Back to top |
|
|
iliah n00b
Joined: 01 Aug 2004 Posts: 42 Location: Russia Moscow
|
Posted: Wed Dec 15, 2004 5:56 pm Post subject: |
|
|
В продолжение поста GreenDragon'a
для машин, на которых можно сенсорами снимать температуру проца
по крону с подобранной периодичностью
проверять температуру, и при превышении опять-таки подобранной величины проверять в листе процессов наличие там заданных программ (в твоем случае emerge, gcc etc.)
и слать им `kill -s SIGSTOP pid`
в том же скрипте при достижении рабочей температуры, остановленным программам слать `kill -s CONT pid`
если снимать температуру никак, то тогда просто мониторить время остановки/продолжения
варианты совершенно ломовые, на сях уверен можно сделать гораздо элегантнее, возможно используя sleep или что-то в этом роде, тут я к сожалению не подскажу |
|
Back to top |
|
|
viy Veteran
Joined: 03 Jul 2004 Posts: 1580 Location: Riga, Latvia
|
Posted: Wed Dec 15, 2004 6:39 pm Post subject: |
|
|
Тут вопрос даже не в том, как избежать останова процессора, а как определить точку Ы, при достижении которой следует предпринимать какие-то действия. В целом, вариант iliah очень даже. Надо запускать с & требуемую команду, и через интервалы A и B посылать SIGSTOP и SIGCONT. Но это если не вдаваться в детали и брать большую часть контроля на себя.
Думаю, можно установить A (время работы) равным секунд 30, а вот с B (время отдыха) придется поиграться... Одно точно, оно должно быть не менее A. Если будет параллельно работать только 1 процесс, то все ничего. Если несколько --- проблематичней, т.к. возможны ситуации, когда проц будет все время работать (пока один gcc отдыхает, другой работает). Придется увеличить вермя простоя. Также надо учитывать, что сам скрипт будет жрать циклы проца. Плюс, такие "надстройки" нужны еще и над bash'ем, т.к. configure дает приличную нагрузку.
Тут по хорошему надо, чтобы "надстройки" могли общаться друг с другом и динамически реагировать на время нагрузки. Нехилая фишка выходит
Я читаю рассылку pgsql-hackers@postgresql.org, алгоритмы кэширования там динамические и хрена-с-два в них разберешся. Что-то похожее и здесь вырисовывается
Мне все-таки думается, что проще купить новый ноут |
|
Back to top |
|
|
Balancer Guru
Joined: 04 Jun 2004 Posts: 465
|
Posted: Thu Dec 16, 2004 11:06 am Post subject: |
|
|
Увы, термосенсора на ноуте нет
Модель-то 1995-го года (хотя и ОЧЕНЬ продвинутая для того времени - всего 1700 грамм, USB, 233MMX и т.п.)
На самом деле, уже почти склонился к возврату на нём на Win98. Главным образом из-за тормозов видеодрайвера. Судя по всему, Linux-версия (видюха там NeoMagck 128) не использует все возможности аппаратного ускорения этого видеочипа. Под Win98 там скроллинг полноэкранный идёт шустро, а под Linux - не так тормозно, конечно, как при полной VGA-эмуляции, но всё равно - медленными волнами.
А про настройку APM мне пока и думать неохота. Если под Win98 при закрытии крышки ноут сразу сам уходит в гибернацию, при чём такая фича там по дефолту, без доп. драйверов, то как такое сделать под Linux - даже представить затрудняюсь...
Так что Gentoo у меня только на трёх серверах и одном десктопе, боюсь, останется |
|
Back to top |
|
|
rusxakep Guru
Joined: 09 Jul 2004 Posts: 458
|
Posted: Wed Dec 22, 2004 4:34 am Post subject: |
|
|
Ребят, вы меня конечно извините, но ...
# 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
Поможет отцам русской демократии?
P.S: /etc/make.conf sure. |
|
Back to top |
|
|
unvivid n00b
Joined: 22 Dec 2004 Posts: 4
|
Posted: Wed Dec 22, 2004 4:43 am Post subject: |
|
|
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 |
|
|
viy Veteran
Joined: 03 Jul 2004 Posts: 1580 Location: Riga, Latvia
|
Posted: Wed Dec 22, 2004 6:53 am Post subject: |
|
|
rusxakep wrote: | #PORTAGE_NICENESS=3
Поможет отцам русской демократии? |
Мне кажеться, что нет. nice определяет приоритет процесса, т.е. кол-во процессорного времени при наличии >1 работающей задаче.
А если emerge идет один, сам по себе, то при любом nice будет жрать весь проц. Я так это понимаю. |
|
Back to top |
|
|
theli Tux's lil' helper
Joined: 25 Nov 2004 Posts: 113 Location: Seattle, US
|
Posted: Wed Dec 22, 2004 11:44 am Post subject: |
|
|
на самом деле наиболее простой вариант будет понижение частоты процессора...
так как в ядре действительно есть опция насчет возможности управлять 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 |
|
|
Balancer Guru
Joined: 04 Jun 2004 Posts: 465
|
Posted: Thu Dec 23, 2004 8:45 pm Post subject: |
|
|
theli wrote: | на самом деле наиболее простой вариант будет понижение частоты процессора...
так как в ядре действительно есть опция насчет возможности управлять cpufreq ... |
Ребята, ноут - 1995-го года. Ну какое в те времена программное управление частотой процессора |
|
Back to top |
|
|
theli Tux's lil' helper
Joined: 25 Nov 2004 Posts: 113 Location: Seattle, US
|
Posted: Fri Dec 24, 2004 8:36 am Post subject: |
|
|
Balancer wrote: | Ребята, ноут - 1995-го года. Ну какое в те времена программное управление частотой процессора |
собственно а почему бы и нет? |
|
Back to top |
|
|
viy Veteran
Joined: 03 Jul 2004 Posts: 1580 Location: Riga, Latvia
|
Posted: Fri Dec 24, 2004 8:40 am Post subject: |
|
|
Balancer wrote: | Ребята, ноут - 1995-го года. Ну какое в те времена программное управление частотой процессора ;D |
Если это делается на уровне ограничения нагрузки на проц в ядре, то все возможно. Если ядро использует фишки железок, то, скорее всего, не выйдет.
Надо доки по этой опции почитать. |
|
Back to top |
|
|
theli Tux's lil' helper
Joined: 25 Nov 2004 Posts: 113 Location: Seattle, US
|
|
Back to top |
|
|
theli Tux's lil' helper
Joined: 25 Nov 2004 Posts: 113 Location: Seattle, US
|
Posted: Fri Dec 24, 2004 9:05 am Post subject: |
|
|
я думаю все же стоит поставить ядро с поддержкой 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 |
|
|
|