LINUX.ORG.RU

Имитация медленного процессора

 ,


0

2

Есть ли способ без замены процессора получить медленный многоядерный процессор (частоту меньше чем минимальная доступная частота в cpufreq-info).

Мне нужно, чтобы softirq сжирал не менее 2-х ядрер.

Железка такая: Xeon E3-1230V2 3.30GHz hardware limits: 1.60 GHz - 3.70 GHz

PS дома сдох БП в машинке с Atom-330, который готовился на эту роль. Там частота была 200-1600МГц с шагом в 200МГц

★★★★★

Ответ на: комментарий от vel

Мне для тестирования сетевого стека линукса, т.ч. эмуляторы и vm пока не рассматриваются.

Если нужно замедлить именно ядерный код, то мне кажется, что без эмуляторов и vm не обойтись

annulen ★★★★★ ()

купи какую-нибудь двухпроцессорную материнку на Socket370 с двумя Pentium III

ну или на помойке найди

Harald ★★★★★ ()
Ответ на: комментарий от annulen

На самом деле нужно было отключать кэши и использовать какие-то там утилиты, чтобы получить разные градации замедления.

anonymous ()
Ответ на: комментарий от Harald

На помойке найти двухпроцессорную мать? Удачи

Если под помойкой подразумевается авито, то еще может быть

annulen ★★★★★ ()
Ответ на: комментарий от annulen

VM будет рассматриваться как последнее средство.

Сейчас я ищу БП на 19V 3.45A c разъемом 5.5x1.7мм

Параллельно ищется способ понижения производительности CPU.

Сейчас, процессор залочен на 1.6ГГц и 2 ядра загружены на 50% имеющимся реальным трафиком.

У интеловских процессоров есть еще какие-то состояния C0-C7. может это как-то поможет ?

vel ★★★★★ ()
Ответ на: комментарий от anonymous

Вот это я и хочу!

Просто я с этим никогда не сталкивался и не знаю правильных волшебных слов.

Я пока знаю про cpufreq-info/cpufrec-set/cpupower

vel ★★★★★ ()

думаю, что «mission impossible» в нативе. попробовать qemu c выделением под него 1-2х ядер.. жопа в связке CPU <-> RAM. как вариант - загружать ядра сторонними задачами (тот же мультипотоковый архиватор) и приоритетами подбирать остатки.. субъективно.. проще таки купить какой-нить атом или типа того на авито.

anonymous ()
Ответ на: комментарий от anonymous

У меня есть Atom-330 (2+2 ядра), но вчера на нем сдох БП.

Я сейчас ищу для него БП, но если бы нашелся «программный» способ, то это было бы хорошо.

Вопрос с qemu рассматривается как последняя альтернатива.

vel ★★★★★ ()
Ответ на: комментарий от anonymous

Наверное троттлинг врубать как-то можно же.

anonymous ()
Ответ на: комментарий от vel

если бы нашелся «программный» способ, то это было бы хорошо.

вопрос, пмсм, только в драных контролерах памяти, которые, кмк, при выходе проца за железно ограниченный pstate (если позволит бивис, руки и сама платформа), тупо скажут «щито?!» и уйдут отдыхать.. без учёта: «Each individual CPU is affected by its own per-policy limits (that is, it cannot be requested to run faster than its own per-policy maximum and it cannot be requested to run slower than its own per-policy minimum).» - цытатко из ссылки выше. у мя самого эта проблема стояла раком из-за некоторых ксеонов ($/Perf) и решением оказалась замена железа..

anonymous ()

чтобы softirq сжирал не менее 2-х ядрер.

Но это два ядра должны закрутиться на каком-то одном ресурсе, непонятно как и зачем, если я правильно понял что есть softirq, а самое главное, как это связанно с тактовой частотой процессора и чем это хуже активного сна в нужном коллбэке(ну кроме того, что что-то придётся патчить).

onhydro ()
Ответ на: комментарий от vel

Так выдели cpu через isolcpus. Оставь ядру 1-2 cpu и понизь частоту в минимум...

TOXA ★★ ()
Ответ на: комментарий от vel

Сейчас, процессор залочен на 1.6ГГц и 2 ядра загружены на 50% имеющимся реальным трафиком.

Чем создавать ситуацию, далекую от практического применения, может лучше увеличить в два раза трафик? Если в сетевуху упирается, то купить нормальную

annulen ★★★★★ ()

просто в бивисе частоту понизить?

darkenshvein ★★★★★ ()

10%
echo 10 > /sys/devices/system/cpu/intel_pstate/max_perf_pct

Deleted ()

Я так и не понял, чем тебе не нравится виртуальная машина. Там же будет куча настроек - можно и количество ядер задать, и максимальную нагрузку виртуального ядра на физическое. А вообще обычно проще поднять нагрузку на приложение пропорционально желаемому уменьшению производительности (например, если это сервер, то увеличить количество одновременных коннектов в стресс-тесте).

KivApple ★★★★★ ()
Ответ на: комментарий от annulen

Я могу записать несколько сотен гигов трафика и потом воспроизводить его, но это достаточно трудоемкое занятие. Я уже этим занимался ранее, когда тестировал повторяемость распознавания трафика.

Проще занять процессор бесполезными вычислениями внутри обработчика трафика.

vel ★★★★★ ()
Ответ на: комментарий от vel

Я могу записать несколько сотен гигов трафика и потом воспроизводить его, но это достаточно трудоемкое занятие

Можно тупо iperf'ом нагрузить или siedge каким-нибудь

annulen ★★★★★ ()
Ответ на: комментарий от annulen

Мне нужен разнообразный трафик, а это только реальный трафик.

iperf - это поток данных, siedge - это http/https

Ни то, ни другое не интересно.

Регулируемые активные задержки внутри тестриуемого кода - IMHO лучшая идея на данных момент.

vel ★★★★★ ()

Все частоты компьютера задаются единственным кварцем частотой 32 кГЦ. Попробуй заменить е6го кварцем с частотой пониже.

torvn77 ★★★★★ ()
Ответ на: комментарий от vel

Лол, я думал, это был сарказм. Если активный сон это лучшее решение, то наверное плохи наши дела.

Хотя, даже в юзерспейсе, с FIFO планировщиком удавалось выравнивать распределение задержек с микросекундной точностью на заданном железе просто дёргая gtmtime в цикле - до 99.9%. Но есть один нюанс - надо знать на каких ядрах будут запускаться обработчики, иначе, ты где-то поспишь а где то ещё не дойдёшь до драки.

onhydro ()
Ответ на: комментарий от ZuBB
cpulimit always sends the SIGSTOP and SIGCONT signals to a process,
           both to verify that it can control it  and  to  limit  the  average
           amount  of  CPU it consumes.  This can result in misleading (annoy‐
           ing) job control messages that  indicate  that  the  job  has  been
           stopped  (when  actually  it was, but immediately restarted).  This
           can also cause issues with interactive shells that detect or other‐
           wise  depend on SIGSTOP/SIGCONT.   For example, you may place a job
           in the foreground, only to see it immediately stopped and restarted
           in the background.

Это очень слабое колдунство.

onhydro ()
Ответ на: комментарий от onhydro

Про активный сон я не совсем точно выразился. Я имел ввиду, что нужно занять процессор бесполезными вычислениями. Например подсчитать число соседних одинаковых байт в пакете или подсчитать КС пакета, короче все, что использует cpu и память.

Число таких бесполезных действий легко изменять через sysfs для получения необходимой загрузки ядер.

vel ★★★★★ ()

Машинка на intel Atom 330 реанимирована!

Теперь есть хардварный эмулятор тормоза!

vel ★★★★★ ()

В Virtualbox есть опция Предел загрузки ЦПУ в процентах, это гораздо удобнее чем издеваться над режимами процессора

ism ★★★ ()
Ответ на: комментарий от vel

Если уж ты в состоянии осознанно пропатчить код драйвера для создания фейковой нагрузки, я бы и правда сначала глянул как устроенны ограничения на загрузку cpu в том же kvm или в cgroups. Интуиция подсказывает, что не супер глупые люди это делали.

onhydro ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.