Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Равномерное распределние задач  (Прочитано 496 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн rz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Равномерное распределние задач
« : 26 Декабрь 2008, 09:33:56 »
День добрый!

Есть двухядерный AMD и Ubuntu 8.10 с ядром 2.6.27-11-generic
Запускаю маленький скрипт:

for i in *.bz2
do bzcat $i | grep "> 192.168.1.1" | awk '{print $1,$2,$3,$4,$5,$8}' >> out
done

Но в top`е вижу:
20875 rz        20   0  9580 4116  440 R   69  0.2   0:04.16 bzcat
20876 rz        20   0  8292 1012  780 R   31  0.0   0:01.90 grep

Что оба процесса загружают только одно ядро.

pidstat это подтверждает:
14:51:25        20865    0,01    0,00    0,01     1  bzcat
14:51:25        20866    0,01    0,00    0,01     1  grep

Причём тот же 7zip при работе нагружает оба ядра, и два подобных скрипта тоже.

Если почитать записки Дебианщика http://mydebianblog.blogspot.com/2008/11/linux-rt-linux-tweaking.html, то можно во время выполнения разбросать задачи на два ядра.
Но можно ли что-нибудь подкрутить, чтобы это распределение выполнялось самостоятельно?
Хм, прикольно...

Оффлайн Kwah

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Равномерное распределние задач
« Ответ #1 : 26 Декабрь 2008, 13:36:35 »
Оно и выполняется самостоятельно.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Равномерное распределние задач
« Ответ #2 : 26 Декабрь 2008, 13:42:09 »
У меня по умолчанию affinity mask процессов 3, т.е. процесс может выполняться на любом из ядер.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн rz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Равномерное распределние задач
« Ответ #3 : 30 Декабрь 2008, 05:41:11 »
Ага, спасибо за наводку.

Пока сделал:

do taskset 1 bzcat $i | taskset 2 grep ...

Разница:
С taskset:
real    36m38.798s
user    40m46.613s
sys     11m56.409s
Без него:
real    68m54.698s
user    41m3.738s
sys     27m33.983s

Хм, прикольно...

 

Страница сгенерирована за 0.136 секунд. Запросов: 22.