|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
Нагрузка процессора до заданного уровня05.03.2015, 17:03. Показов 2547. Ответов 6
Метки нет (Все метки)
Приветствую, уважаемые форумчане!
Встала тут передо мной одна специфичная (хотя, возможно, не такая уж и специфичная) задачка. Необходимо нагрузить ЦП до определённого уровня. При этом система должна работать в штатном режиме, т.е. где-то в фоне крутятся какие-то демоны, работают пользовательские приложения, и при всём этом разрабатываемая утилита должна "добить" уже нагруженный процессор до определённого (скажем, в процентах) уровня. Всё, что пока что пришло мне в голову: есть бесконечный цикл, внутри которого крутится ещё один цикл, в котором выполняется некая простая и бесполезная арифметика (сложения-умножения-деления целых и действительных чисел). После выполнения внутреннего цикла стоит задержка. Варьируя два параметра - количество итераций внутреннего цикла и величину задержки - я могу поддерживать нагрузку на нужном мне уровне. Главная задача, которая встаёт, если мы примем описанную реализацию - подбор указанных параметров на очередном кванте. Ведь в системе уже выполняются какие-то задачи, следовательно, какая-то нагрузка на процессор уже имеется, и надо вычислить такие значения параметров, чтобы суммарная нагрузка равнялась заданной. Тут мне в голову приходят два варианта: либо побрутфорсить параметры и посмотреть, наблюдается ли какая-то простая зависимость (то, что зависимость нелинейная, я уже выяснил), либо собирать статистику и пытаться экстраполировать функцию двух переменных (от количества итераций и величины задержки). К сожалению, экстраполяция может быть дорогой операцией в данном случае и вносить дополнительные погрешности в статистику нагрузки (получается замкнутый круг). Кто что думает по поводу описанного алгоритма? Возможно, кто-то сталкивался с подобной задачей и решил её иначе? Или кому-то на ум приходит эвристика для подбора указанных параметров? Или в алгоритме есть изъян и он не приведёт к желаемому результату? Всем заранее спасибо. P.S. Знаю, многабукав, но ничего с собой поделать не могу
0
|
|
| 05.03.2015, 17:03 | |
|
Ответы с готовыми решениями:
6
Нагрузка процессора Нагрузка процессора Скачит нагрузка процессора |
| 05.03.2015, 22:28 | |
|
А просто время nanosleep() регулировать? Получится "кусками" времени жарим до 100%, потом отдыхаем.
Ну это как аналогия из ШИМ, правда как мониторить-то? Надо узнавать кол-во процев=>создавать соответствующее кол-во форков, текущую среднюю нагрузку по всем процессорам/по каждому в отдельности и т.д. Логика управления будет не из лёгких.
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|||||
| 06.03.2015, 05:32 [ТС] | |||||
|
drfaust, собственно говоря, я ведь именно такую идею и описал:
Короче говоря, задача прекрасно поддаётся декомпозиции. По сути, мне надо уметь в одной треде регулировать нагрузку на ядро, на котором она крутится. А дальше запустить нужное количество тред - дело техники. Все они будут работать независимо.
0
|
|||||
|
|
|
| 06.03.2015, 08:21 | |
|
Не претендую на ответ, просто для информации. Я когда-то читал, что всякие утилиты для всяких тестов процессоров работают путем его нагрузки SSE-инструкциями умножая матрицы. Может вам в эту сторону посмотреть. Но там в моем понимании ассемблер, а не Си...
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||
| 06.03.2015, 09:36 [ТС] | ||
|
Я предварительно изучил вопрос и в целом понимаю, как нагрузить процессор. Но нигде не нашёл информации о том, как нагрузить процессор до нужного уровня. Именно в этом состоит задача и именно в этом ключевой вопрос, которому посвящена тема.
0
|
||
| 06.03.2015, 09:37 | ||
|
Только вот как вычислить соотношение нагрузка/время_сна, и как быть с энергосбережением=троттлинг/буст - по идее изменение частоты проца должно изменять это самое соотношение нагрузка/сон? Время сна опять же должно быть достаточно большим, а значит и цикл должен быть достаточно долгим, иначе начнёт сказываться работа планировщика ядра. Матрицы в цикле можно применять, но только маленькие и использовать int/float. Цикл нагрузки(в случае больших матриц) не должен скидывать кэш - сильно скажется на производительности системы.
1
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||
| 06.03.2015, 10:06 [ТС] | ||||
|
Думаю, хватит и обычных умножений/сложений на каждой итерации, просто количество итераций должно быть больше, чем в случае с матрицами. Вообще, не принципиально, какая арифметика будет крутиться в цикле, главное, чтобы она некоторое время непрерывно загружала камень.
0
|
||||
| 06.03.2015, 10:06 | |
|
Помогаю со студенческими работами здесь
7
Нагрузка процессора скачет
Сильная нагрузка процессора
Нагрузка процессора под 100% Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|