Мультипоточная компиляция приводит к зависанию компьютера

antlord
Ограничить для make?
Если ты уверен, что данный процесс полностью нагружает ЦПУ и именно это приводит к зависанию системы, то можешь попробовать cpulimit, утилита которая позволяет ограничить любой процесс в использовании ЦПУ.
Ошибки не исчезают с опытом - они просто умнеют
Да нет, неуверен. Все-таки мне кажется, что дело в оперативной памяти, потому что вчера попробовал использовать на один поток меньше от максимального количества и компьютер все равно подвисал немного. В top было видно, что оперативы свободно 4%
vasek
Зависание компьютера может быть еще и не из-за нехватки памяти, а по причине большой загрузки ЦПУ, около 100% - нужно смотреть кто виновник - нехватка памяти или полная загрузка ЦПУ. Если причина в загрузке ЦПУ — то ее можно ограничить.
А разве 100% приводит к зависанию? Я всё собираю с -j 2 (у меня 2 ядра), получаю 100% загрузку, но всё остальное работает, хотя и несколько вяло. Зависание я получаю только если 100% даёт моя кривая программа в потоке с RT-приоритетом, make такого давать не может.
akorop
А разве 100% приводит к зависанию?
Такое вполне возможно — как сказать, достаточно, но необязательно. Привожу цитату из описания -
Cpulimit – это приложение в Linux, которое сможет ограничить любой процесс в использовании вашего центрального процессора (CPU). Оно будет полезным, если вы хотите ограничить конкретное приложение в использовании им CPU-ресурса и предотвратить возможный крах системы. Это приложение также будет незаменимым, когда вы хотите преднамеренно запускать ресурсоёмкие приложения.
PS....akorop, при случае попробуй.........
PSS.......а потому я и написал - если уверен. Если виновата память, то я, в случае наступления зависания, уничтожаю жрущий память процесс нажатием Alt + SysRq + F, вызывая oom_killer, правда возможны нюансы........)
Может кого заинтересует - Вывод Alt + SysRq + M дает много информации о распределении памяти.
Ошибки не исчезают с опытом - они просто умнеют
akorop
А разве 100% приводит к зависанию? Я всё собираю с -j 2 (у меня 2 ядра), получаю 100% загрузку, но всё остальное работает, хотя и несколько вяло. Зависание я получаю только если 100% даёт моя кривая программа в потоке с RT-приоритетом, make такого давать не может.
на uptime посмотрите во время компеляния, в частости на la
PGP 0x31361F01
arcanisrepo
Такой вопрос. Нормально то, что у меня в процессоре доступно 4 потока, а процессов ccplus — 6? Это никак к делу не может относиться?
у меня кавери 2 модуля, по идее 4 потока, но я собираю в 5. зависаний во время сборки нет. только иногда заметно легкое затормаживание...
так что к делу это почти не относится...
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
arcanis
на uptime посмотрите во время компеляния, в частости на la
arcanis подсказал хорошую идею. Действительно посмотри в uptime значение load average — посмотрел man make, там имеется интересная опция
-l [load], --load-average[=load] - Specifies that no new jobs (commands) should be started if there are others jobs running and the load average is at least load (a floating-point number). With no argument, removes a previous load limit.
Никогда ее не использовал, но может подскажут те, кто ее использовал — поможет ли она ограничить нагрузку на проц ?.............
Ошибки не исчезают с опытом - они просто умнеют
В общем решил заменить планку на 2гб планкой на 8гб и зависать перестало. Хотя хватило бы и 2 на 4 заменить. Потому как сейчас от 9,465 гб уходит 46%. 37% на компиляцию и 9% на другие приложения. Всем спасибо! Ставить "решено"?
 
Зарегистрироваться или войдите чтобы оставить сообщение.