Видео смотреть бесплатно

Смотреть вудман видео

Официальный сайт nokia 24/7/365

Смотреть видео бесплатно

kampfusbeke 12.05.2009 17:18

Tips & tricksМеняем приоритет процессов (renice)

Иногда бывает, что система сильно загружена (компилируется что-то большое, переделывается видео с жесткими параметрами, слишком много табов открыто в firefox и т.д.), но хочется поиграть или посмотреть фильм в HD. При этом фильм или игрушка заметно тормозят. Что делать? Все очень просто - нас спасет renice :)



Пользоваться им очень просто - надо всего-лишь найти номер (PID) нужного процесса и дать ему нужный приоритет. Приоритет может быть от -20 (самый высокий) до +19. Чем выше у процесса приоритет, тем больше процессорного времени будет ему предоставлено. При приоритете +19 процесс будет работать только когда никакие другие процессы не обращаются к ЦПУ.

Итак, два дня назад у меня компилировался lmms и сильно тормозил firefox c гигантским количество открытых табов :) Я запустил фильм в FullHD, но он заметно притормаживал. Привожу свои действия как пошаговое решение:



1. Ищем нужный PID:

1
2
3
4
5
6
7
$ ps aux |grep mplayer

ku 16353 1.5 0.5 202400 24252 ? Sl 20:46 1:50 smplayer /home/ku/video/_2burn/Остров.1080p.mkv

ku 16356 32.5 1.5 334268 62240 ? SL 20:46 37:40 /usr/bin/mplayer -noquiet -nofs -nomouseinput -sub-fuzziness 1 -identify -slave -vo xv -ao alsa -nokeepaspect -framedrop -nodr -double -input conf=/usr/share/smplayer/input.conf -stop-xscreensaver -wid 69206029 -monitorpixelaspect 1 -ass -embeddedfonts -ass-line-spacing 0 -ass-font-scale 1 -ass-styles /home/ku/.config/smplayer/styles.ass -fontconfig -font Arial -subfont-autoscale 0 -subfont-osd-scale 20 -subfont-text-scale 20 -subcp ISO-8859-15 -subpos 100 -cache 2000 -osdlevel 1 -vf-add screenshot -slices -channels 2 -af scaletempo,equalizer=0:0:0:0:0:0:0:0:0:0 /home/ku/video/_2burn/Остров.1080p.mkv

ku 16357 0.0 0.2 269160 8204 ? S 20:46 0:05 /usr/bin/mplayer -noquiet -nofs -nomouseinput -sub-fuzziness 1 -identify -slave -vo xv -ao alsa -nokeepaspect -framedrop -nodr -double -input conf=/usr/share/smplayer/input.conf -stop-xscreensaver -wid 69206029 -monitorpixelaspect 1 -ass -embeddedfonts -ass-line-spacing 0 -ass-font-scale 1 -ass-styles /home/ku/.config/smplayer/styles.ass -fontconfig -font Arial -subfont-autoscale 0 -subfont-osd-scale 20 -subfont-text-scale 20 -subcp ISO-8859-15 -subpos 100 -cache 2000 -osdlevel 1 -vf-add screenshot -slices -channels 2 -af scaletempo,equalizer=0:0:0:0:0:0:0:0:0:0 /home/ku/video/_2burn/Остров.1080p.mkv



(не очень понятно, почему мплеер занимает два процесса, возможно, что по одному на ядро процессора)



2. Ну и, собственно, применяем к процессу(-ам) нужный приоритет:

1
$ renice -10 16353 16356 16357



Почему -10? Число красивое :)



Чтобы заранее (при запуске) придать процессу нужный приоритет, пишем перед коммандой nice приоритет, например

$ nice -5 smplayer blah.avi



Чтобы узнать приоритет уже запущеных процессов, пишем в консоли

$ ps -eo user,pid,ni,cmd

если интересны потребление памяти и времени процессора, можно еще добавить в список опций %cpu,%mem.



P.S. Мне предложили написать скриптик, который бы вместо номера процесса использовал его имя, мне эта идея не очень нравится, но сам скриптик и объяснение возможных проблем и того как им надо пользоваться я оставил ниже в комментариях.

P.P.S. ВНИМАНИЕ: диалог с NucleoFag показал, что увеличение приоритета не у всех работает с правами обычного пользователя. Если у вас обычный пакет bsdtools, скорее всего придется запускать renice с sudo. С пакетом util-linux-ng это не так.


Тэги: bash renice приоритет процессы тормоза
+ 9 -
Похожие Поделиться

NucleoFag 12.05.2009 17:24 #
+ 0 -
Стоило бы добавить что понизить приоритет процесса может любой а повысить тока рут. Ну и про просто nice расскажи
kampfusbeke 12.05.2009 17:56 #
+ 0 -
по-моему, ты ошибаешься. мой процесс - че хочу, то и делаю ;) а вот с чужими процессами (рута или еще кого) - тут уже нужны права.
NucleoFag 12.05.2009 17:57 #
+ 0 -
Неа. Ты если свой процесс возьмешь и уменьшишь приоритет, то уже не подымешь.
kampfusbeke 12.05.2009 18:18 #
+ 0 -
ku < ~ >$ renicer 10 gcalctool
30656: old priority 0, new priority 10
ku < ~ >$ renicer -10 gcalctool
30656: old priority 10, new priority -10
NucleoFag 12.05.2009 18:31 #
+ 0 -
1) Что за renicer? У меня нету и в посте твоем про renice
2)
NucleoFag 12.05.2009 18:32 #
+ 0 -
22:42 nucleofag@nucleofag:~/Desktop$ renice 10 7326
7326: old priority 0, new priority 10
22:42 nucleofag@nucleofag:~/Desktop$ renice -10 7326
renice: 7326: setpriority: Отказано в доступе
kampfusbeke 12.05.2009 18:40 #
+ 0 -
renicer - скриптик мой, ниже смотри.
в арче все работает ;) а у тебя какой дистр? и что за процесс? может, все-таки UID другой у твоего процесса?
NucleoFag 12.05.2009 18:45 #
+ 0 -
Дебиан. Щас все покажу подробно.

22:53 nucleofag@nucleofag:~/Desktop$ ps aux | grep nano
1000 7415 0.0 0.0 7284 828 pts/2 S+ 22:53 0:00 grep nano
22:53 nucleofag@nucleofag:~/Desktop$ nano &
<1> 7417
22:53 nucleofag@nucleofag:~/Desktop$ ps aux | grep nano
1000 7417 0.0 0.0 10060 1528 pts/2 T 22:53 0:00 nano
1000 7422 0.0 0.0 7284 828 pts/2 S+ 22:53 0:00 grep nano

<1>+ Stopped nano
22:53 nucleofag@nucleofag:~/Desktop$ pgrep nano
7417
22:54 nucleofag@nucleofag:~/Desktop$ renice 10 7417
7417: old priority 0, new priority 10
22:54 nucleofag@nucleofag:~/Desktop$ renice -10 7417
renice: 7417: setpriority: Отказано в доступе
22:54 nucleofag@nucleofag:~/Desktop$ ps aux | grep nano
1000 7417 0.0 0.0 10060 1528 pts/2 TN 22:53 0:00 nano
1000 7446 0.0 0.0 7284 828 pts/2 S+ 22:55 0:00 grep nano



Причем меня на этом завалил в универе препод. Везде, и в теории так. Мб чота в арче. А ты без скриптика попробуй. Просто ренайсом. И изменения проверь вручную, т.к. мб он пишет что изменил а сам ниасилил
kampfusbeke 12.05.2009 18:56 #
+ 0 -
какая разница, сериптик это или нет? все равно ведь скриптик скармливает ренайсу PIDы.

ku < ~ >$ pgrep gcalctool
32299
ku < ~ >$ renice -10 32299
32299: old priority 0, new priority -10
ku < ~ >$ ps -eo pid,ni |grep 32299
32299 -10
ku < ~ >$ renice 10 32299
32299: old priority -10, new priority 10
ku < ~ >$ ps -eo pid,ni |grep 32299
32299 10
ku < ~ >$ renice 0 32299
32299: old priority 10, new priority 0
ku < ~ >$ ps -eo pid,ni |grep 32299
32299 0


в общем, интересно получается...
NucleoFag 12.05.2009 19:00 #
+ 0 -
И вправду интересно =) Мож в Арче что запилили? Или мб ты в группе рут состоишь? Хм. Я удивлен. Но то что в теории тока от рута - это факт. Щас тока специально еще раз узнавал... Спасибо за интересную инфу =) Любопытно!
kampfusbeke 12.05.2009 19:17 #
+ 0 -
нет, не состою. но:
ku < ~ >$ pacman -Qo /usr/bin/renice
/usr/bin/renice is owned by util-linux-ng 2.14.2-1

-ng явно говорит, что это не стандартные версии. а в дебиане, вроде, это обычные bsdtools.
NucleoFag 12.05.2009 19:19 #
+ 0 -
Видимо в этом дело. У нас ни у кого не повышается от юзеров. 4 человека потестили. Арчеводов не было
kampfusbeke 12.05.2009 19:06 #
+ 0 -
ВСЕМ: пожалуйста, попробуйте проделать у себя в различных дистрах (можно и в других *никсах тоже :) ) то-же самое и отпишитесь, какой дистр и получается ли это, как в моем случае.
NucleoFag 12.05.2009 19:09 #
+ 0 -
Разумно. Щас с irc нашего соберу результаты. Нужно же дознаться =)
kampfusbeke 12.05.2009 19:22 #
+ 0 -
заодно пусть пишут, bsdtools у них или util-linux-ng, а так-же версию
NucleoFag 12.05.2009 19:28 #
+ 0 -
BSD и sus-v3 =)))
NucleoFag 12.05.2009 19:29 #
+ 0 -
Видимо как соберешь. Ну у меня по дефолту BSD. Даже в мане по ренайсу "BSD General Commands Manual"
На том и порешили =) Добавь в пост что в разных дистрах по разному =)
KblCb 13.05.2009 00:08 #
+ 1 -
Slackware-current. Не повышается.
NucleoFag 13.05.2009 00:10 #
+ 0 -
спасибо
kampfusbeke 12.05.2009 18:58 #
+ 0 -
точно у тебя в том терминале был UID 1000? :)
кстати, дебиан всегда UIDы вместо юзернеймов показывает?
NucleoFag 12.05.2009 19:03 #
+ 0 -
Точно. по крайней мере в ps aux. А уид у меня 1000.

22:55 nucleofag@nucleofag:~/Desktop$ cat /etc/passwd | grep nucleofag
nucleofag:x:1000:1000:NucleoFag:/home/nucleofag:/bin/bash
NucleoFag 12.05.2009 17:58 #
+ 0 -
http://live.daemony.org/freebsd/nice-renice-kill-killall-freebsd-howto.html
1 сцыль в гугле. Почитай, интересно =)
kampfusbeke 12.05.2009 18:19 #
+ 0 -
линух - не фряха ;) там оно может и так.
NucleoFag 12.05.2009 18:32 #
+ 0 -
Не, там так же. См. выше пример
Kane 12.05.2009 19:20 #
+ 4 -
мой процесс - че хочу, то и делаю ;)
Не так, система то многопользовательская и повышение приоритета процесса может сказаться на других юзерах.
kampfusbeke 12.05.2009 19:28 #
+ 0 -
тут я с тобой согласен. просто в моем случае это работает. вообще, раньше я матерился, что чуть что - так давай права суперюзера, но чем больше работаю с линухом и понимаю его функционирование, понимаю и что все это - очень разумно.

кстати, пост о sudoers, а точнее, прописывание комманд, которым с судо не нужен пароль, писать? я, правда, до конца сам так и не разобрался, что-то работает, а что-то - нет. но и пытался это сделать уже довольно давно.
sudoers - вещь такая, и со стаканом не разберешься так просто :(
NucleoFag 12.05.2009 19:33 #
+ 0 -
Не знаю, чота по мне как то просто =) Все настроил враз =) Напиши, лишним не будет. Тока смущает одно... зачем ЭТО новичкам? =) Не стоит им давать рутовые привелегии =))))
kampfusbeke 12.05.2009 20:08 #
+ 0 -
потому и сомневаюсь ;) рут-права на отдельные комманды на домашнем компе нужны всем ;) но если ошибешься и сделаешь что-то не так, можешь вообще без них остаться (в убунте, например, пароль рута по-дефолту случайный и кроме как с лайв-цд эту ошибку потом не исправишь).
а так... часто бывают нужны относительно "неопасные" комманды, которым нужны рут-права (mount/umount/ls и less в "чужих" каталогах и файлах, можно еще и suspend/hibernate/shutdown (но этого уже лучше не делать :) ).
NucleoFag 12.05.2009 20:10 #
+ 0 -
Если они почему то не доступны юзеру - то может это кому-нибудь нужно??? =)
Minoru 13.05.2009 20:03 #
+ 1 -
Не сочти за пиар, но всё уже написано до вас :)
Копия статьи «Установка и настройка sudo в Debian GNU/Linux и Ubuntu Linux» с ныне мёртвого проекта debian-ubuntu-linux.ru
Как научить sudo не спрашивать пароль для некоторых команд (на примере shutdown в рамках задачи сделать пункты выключения компа в меню Fluxbox)
kampfusbeke 13.05.2009 21:03 #
+ 0 -
бугога :))) так кто бы сомневался, что все до меня написано? просто на вилинухе еще не было, имхо.
Minoru 13.05.2009 21:23 #
+ 0 -
Да, на welinux.ru такого ещё не было… С другой стороны, я особого смысла плодить сущности не вижу. Или надобно написать инструкции на все случаи жизни: «как отключить пароль для shutdown», «как отключить пароль для reboot», «как отключить пароль для mount», «как отключить пароль для $progname»?
kampfusbeke 13.05.2009 22:07 #
+ 0 -
ну, 95% здесь - более-менее копии таких-же тьюториалов из инета. или переводы.
сарказма из последней фразы не понимаю. надо написать, как настроить все важное в sudoers. в одной статье. хотя надо-ли - опять-таки, сам сомневаюсь.
Minoru 13.05.2009 22:44 #
+ 0 -
95% здесь - более-менее копии таких-же тьюториалов из инета. или переводы.
Да, с этим не спорю.

сарказма из последней фразы не понимаю.
Сарказм состоит в том, что куда уж подробней да ясней — ну разве что понаписать кучу статей по шаблону, заменив лишь имя программы, на которую мы даём разрешение.

надо написать, как настроить все важное в sudoers. в одной статье.
Вычленить общий рецепт из моего поста про shutdown — проще простого. Юзеров, которые не могут сделать это самостоятельно, я предпочёл бы не подпускать к рутовым привилегиям (да и к линуксу вообще, наверное) даже на расстояние пушечного выстрела.

С другой стороны, о чём мы вообще говорим? Пиши статью, в конце концов, welinux посещает больше народу, чем мой блог (но не премину похвастать, что по количеству подписчиков welinux отстаёт от моего блога на 5-10 человек :), так что публикация здесь будет прочитана большим количеством пользователей и принесёт больше пользы, чем мой пост (который, кстати, и не мой вовсе, а всего лишь копия с умершего проекта).
kampfusbeke 13.05.2009 22:55 #
+ 0 -
ты - белоусов? :)
кстати, про su -c не знал даже. век живи - век учись ;) это типа как судо, только пароль нужно указывать рутовский?

зы. гм, че-то не работает он как-то...
ku < ~ >$ su -c echo "yeah"
su: user yeah does not exist
ku < ~ >$ su -c pacman -Sy
su: invalid option -- 'S'
Try `su --help' for more information.


что не так?
Minoru 13.05.2009 23:06 #
+ 1 -
ты - белоусов? :)
Вовсе нет. А с чего вдруг такие «догадки»? :)

кстати, про su -c не знал даже. век живи - век учись ;)
Хехе :) Очень полезное знание, кстати: у меня система обновляется однострочником sudo su -c "aptitude update && aptitude --assume-yes safe-upgrade"

это типа как судо, только пароль нужно указывать рутовский?
Да, но я люблю этот ключик не потому. Дело в том, что sudo не скормишь конвеер или что-то с && (то есть можно только одну команду). su -c же хавает любую последовательность команд, с конвеерами и вообще чем угодно. Удобно в случаях, показанных выше.

что не так?
Ты забыл заключить команду в кавычки (про экранирование внутри двойных не забудь :).
kampfusbeke 14.05.2009 01:13 #
+ 0 -
ты написал про свой блог, я подумал, может ссылки с него ;)
за конвееры и другое - огромное спасибо ;) меня это тоже бесило всегда с судо!
Minoru 14.05.2009 11:36 #
+ 0 -
ты написал про свой блог, я подумал, может ссылки с него ;)
Блог-то мой, но статья про настройку sudo в Debian, автором которой является Дмитрий Белоусов, взята с debian-ubuntu-linux.ru.

за конвееры и другое - огромное спасибо ;) меня это тоже бесило всегда с судо!
;)
Minoru 13.05.2009 23:07 #
+ 2 -
Вдогонку, по поводу кавычек: если команда без «-», «"» «'» — можно не заключать в кавычки. Если с ними — надо, иначе su решит, что это ему параметры передаются. Деструктивных опций у su вроде как нету, но всё же…
kampfusbeke 13.05.2009 21:04 #
+ 1 -
а за ссылки спасибо, кстати. (nvbn!!! я сдохну до того как наберу рейтинг 100 и смогу менять комментарии...)
NucleoFag 12.05.2009 17:27 #
+ 0 -
Кстати, еще покажи читателям в как и в какой колонки узнать приоритет процесса =) Да, и по дефолту 10 вроде приоритет
NucleoFag 12.05.2009 17:43 #
+ 1 -
Ррр, снова я показал себя грамотеем. Имелось в виду чтобы ты показал как узнать приоритет процесса. Вот =)
xT 12.05.2009 17:44 #
+ 3 -
Вы бы лучше скрипт написали, который получал бы от пользователя имя процесса и приоритет, находил бы пид и ренайсил ;)
NucleoFag 12.05.2009 17:52 #
+ 0 -
Гг, pgrep + renice =) 1 строка!
kampfusbeke 12.05.2009 18:14 #
+ 2 -
не надо имхо. во-первых, ренайс имхо нужен очень редко.
во-вторых, и это главное, процессов с одинаковым именем может быть несколько и далеко не всем им нужен ренайс (пример: выдираем звук из двд мплеером и им-же смотрим фильм).
но если очень хочется - вот вам:
pid=`ps -eo pid,args | grep $2 | grep -v grep | cut -c1-6`
renice $1 $pid

называем, к примеру, renicer и сохраняем в /usr/local/bin/, так-же делаем ему sudo chmod +x. используем так-же как и ренайс, только с именем процесса вместо пида. приоритет будет присваиваться всем процессам, комманда которые содержит строку после приоритета (например mplay - как минимум все процессы mplayer и kmplayer, smplayer и т.д.). так что лучше в вышеописаном случае делать что-то вроде
$ renicer -10 Остров
вместо
$ renicer -10 mplayer
xT 12.05.2009 18:47 #
+ 3 -
Не мне лично, а сообществу. В топик добавь навсякий случай, хуже не станет ;)
kampfusbeke 12.05.2009 19:02 #
+ 0 -
ну, "вам" можно понимать и как "всем читающим, включая тебя" ;) я вообще "выкать" считаю в случае интернета некультурным и "выкаю" обычно в качестве издевательства над раздражающими меня людьми (но не в этом случае :) )

если ты под "топиком" имеешь в виду пост, я там линк на комментарий со скриптиком оставил. добавлять не хочу.
NucleoFag 12.05.2009 19:00 #
+ 0 -
За скрипт спасибо. Просто удобно. Я правда по старинке. Скрипт хотя бы для того чтобы показать как писать подобные скрипты новичкам =)))
NucleoFag 12.05.2009 19:41 #
+ 0 -
Молоток.
zivot_je_cudo 12.05.2009 21:17 #
+ 0 -
Я пользуюсь htop для любого управления процессами. И найсы там F7-F8.
NucleoFag 12.05.2009 21:18 #
+ 0 -
да, юзал. Удобно.

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн