LINUX.ORG.RU
/usr/src/linux/Documentation/cgroups/cpusets.txt
tux2002
()
а всё же разве не должна автоматическая балансировка нагрузки между вёдрами быть?
af5 ★★★★★
() автор топика
Ответ на: комментарий от af5
она есть.
любой процесс выполняется прерывисто. на какое ядро он попадет в очередной квант времени - заранее никому не известно.
когда освобождается какое-то ведро и подходит очередь интересующего процесса, планировщик запускает его на освободившимся ведре.
xydo ★★
()
Ответ на: комментарий от xydo
наверное clamav запустился там же где и ntfs-3g потомучто ntfs-3g без нагрузки не грузил проц, а потом видимо уже не перекидывается автоматически
af5 ★★★★★
() автор топика
Ответ на: комментарий от af5
ну, то, что я описал - это алгоритм работы планировщика в черновом приближении))
разумеется, в ход идёт и анализ потребления ресурсов.
по истечении кванта у clamav планировщик видит, что других программ, конкурирующих за данный cpu нет (т.е. нет ситуации, когда другая прога ждёт cpu, а все остальные заняты на 100%), и выделяет clamav еще время.

запусти еще одну грузёвую задачу (хотя бы пустой цикл в консоли), тогда увидишь, что вторая займет еще одно ядро.
а если запустишь 4 (7 - для верности) таких цикла - тогда и увидишь конкуренцию за cpu001
xydo ★★
()
Ответ на: комментарий от xydo
так верно или нет что после старта процесса ведро не меняется? то есть система сама не станет перекидывать уже запущенный процесс на другое ядро?
af5 ★★★★★
() автор топика
почему-то данная особенность характерна именно для ntfs-3g
оно обычно висит на том же ядре что и процесс использующий файлы на ntfs,
почему так - я не знаю, но ситуация на редкость постоянная, особенно с процессами интенсивно нагружающими как процессор так и disk io

причем то же самое происходит и с wine, например инсталляция world of warcraft длится очень долго именно за счет того что инсталлер и ntfs-3g используют только одно ядро, остальные почему-то нет
anonymous
()
Ответ на: комментарий от af5
>тогда как объяснить скриншот

Обычно, во время работы "драйвера" файловой системы, потребители _её_ ресурсов находятся в состоянии "вызвал read/write", т.е. спят. И наоборот, когда "клиентам" есть что _считать_ чтение уже произошло, т.ч. заслуженно спит драйвер. Т.ч. тут всё нормально. Хочешь согреться -- запусти второй процесс.

Ещё может оказаться, что перекачка данных "между процессорами" -- слишком дорогое удовольствие, тогда такое поведение вообще логично.

DonkeyHot ★★★★★
()
Ответ на: комментарий от af5
>система сама не станет перекидывать уже запущенный процесс на другое ядро
пойми простую истину: процессы никуда не перекидываются. они отправляются в очередь! дальше освободившееся ведро (при помощи планировщика) решает, какой процесс из очереди хапнуть.
а так процесс может и полчаса ждать на выполнение (хотя это уже на грани фантастики). нет никакого перекидывания в принципе!

>так верно или нет

в общем случае на это не стоит расчитывать
xydo ★★
()
А ты не то смотришь. При чём тут статистика по дискам? Как только top запустишь сам увидишь.

Да, линух поддерживает cpu affinity, но в реальности в ручную необходимость его врубать чрезвычайно редка.

true_admin ★★★★★
()
Ответ на: комментарий от xydo
видимо придется запустить вручную на разных ядрах и проверить "логичность"
af5 ★★★★★
() автор топика
Ответ на: комментарий от true_admin
хм, правда, там про диски, надо уточнить про cpu
хотя нагружено явно одно ядро
af5 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.