Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam!
Jak sztywno przydzielić wszystkim aplikacjom dwa wątki procesora? Chodzi mi o sytuację, gdy odpalę np ffmpeg, google chrome i maszynę wirtualną. ffmpeg obecnie zajmuje wszystkie rdzenie, a chciałbym żeby było przykładowo było tak:
- cpu0 i cpu1 ffmpeg
- cpu2 i cpu4 chrome i maszyna wirtualna
Czy jest możliwe? Które pliki konfiguracyjne (lub które narzędzie) za to odpowiada?
Pytam się, bo wczoraj miałem sytuację, jak poprzez złe dobranie ustawień ffmpeg z przeróbką wystartował z jakimiś 20 fps'ami, gdzie bitrate video ustawiłem 1M przy wykorzystaniu libxvid bodajże i przy okazji zajął mi cały procesor.
Offline
Zamiast przypisywać do rdzeni, zainteresuj się limitami.
Ręcznie i pierońsko skutecznie przez cpulimit.
Dosyć skutecznie przy pomocy Cgroup.
Przykład konfiguracji skryptologicznej "z palca" metodą "artystyczna rzeźba w bashu" masz tutaj:
http://jacekalex.sh.dug.net.pl/cgstart
Cgconfig u mnie nie umiał przeczytać swojego konfigu, dlatego doszedłem do wniosku, że bash, find, mkdir, chown, chmod for, ls i echo - to bardziej wiarygodne narzędzia, niż cokolwiek innego. :D
Konfig dla demona cgred, który pilnuje procesów i wrzuca gdzie trzeba co trzeba u mnie wygląda tak:
egrep -v '^$|#' /etc/cgroup/cgrules.conf
*:firefox* cpu,memory,net_cls users/firefox/ *:plugin-container cpu,memory,net_cls users/firefox/ *:opera* cpu,memory,net_cls users/opera/ *:rtmpdump cpu,memory,net_cls users/rtmpdump/ *:skype* cpu,memory,net_cls voip/skype/ *:pidgin cpu,memory,net_cls users/pidgin/ *:akregator cpu,memory,net_cls users/akregator/ *:kio_http cpu,memory,net_cls users/akregator/ *:liferea cpu,memory,net_cls users/liferea/ *:vlc cpu,memory,net_cls users/vlc/ *:mplayer* cpu,memory,net_cls users/mplayer/ *:/opt/google/chrome/chrome cpu,memory,blkio,net_cls users/chrome/ *:opera cpu,memory,net_cls users/opera/ *:totem cpu,memory,net_cls users/totem/ *:tvtime cpu,memory users/tvtime/ *:kaffeine cpu,memory,net_cls users/kaffeine/ *:/bin/cat cpu,memory system/cat/ *:thunderbird-bin cpu,memory,net_cls users/thunderbird/ *:thunderbird cpu,memory,net_cls users/thunderbird/ *:nautilus cpu,memory users/nautilus *:emerge cpu,memory,blkio,net_cls system/emerge *:ebuild cpu,memory,blkio,net_cls system/emerge *:make cpu,memory,blkio,net_cls system/emerge *:cmake cpu,memory,blkio,net_cls system/emerge *:qemu-system* cpu,memory,blkio,net_cls kvm/fbsd *:/usr/bin/filezilla net_cls users/wget/ *:wget net_cls users/wget/ *:axel net_cls users/axel/ *:curl net_cls users/axel/
I najwyraźniej działa:
cat /proc/`pidof firefox`/cgroup 13:hugetlb:/ 12:net_prio:/ 11:perf_event:/ 10:blkio:/ 9:net_cls:/users/firefox 8:freezer:/ 7:devices:/ 6:memory:/users/firefox 5:cpuacct:/ 4:cpu:/users/firefox 3:debug:/ 2:cpuset:/
;)
Jeżeli chcesz procesy limitować do poszczególnych rdzeni, to jest do tego moduł [b]cpuset[/b], ale więcej w nim roboty z konfiguracją niż korzyści, moim skromnym zdaniem.
A tu troszkę sznurków:
https://www.kernel.org/doc/Documentation/cgroups/
https://wiki.archlinux.org/index.php/Cgroups
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2013-06-27 08:14:20)
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00120 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.218.97.75' WHERE u.id=1 |
0.00077 | UPDATE punbb_online SET logged=1728300327 WHERE ident='18.218.97.75' |
0.00043 | SELECT * FROM punbb_online WHERE logged<1728300027 |
0.00047 | SELECT topic_id FROM punbb_posts WHERE id=235765 |
0.00025 | SELECT id FROM punbb_posts WHERE topic_id=23825 ORDER BY posted |
0.00040 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=23825 AND t.moved_to IS NULL |
0.00021 | SELECT search_for, replace_with FROM punbb_censoring |
0.00069 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=23825 ORDER BY p.id LIMIT 0,25 |
0.00077 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=23825 |
Total query time: 0.00532 s |