Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Реализация ограничения использования ресурсов системы / 17 сообщений из 17, страница 1 из 1
24.04.2019, 21:59
    #39805913
_Промешан_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
Нужно организовать ограничение использования ресурсов системы на многопроцессорном железе.
Может кто сталкивался с таким? Есть статьи на эту тему?

ОС Windows Server.

Главная задача - недопустить полной загрузки ЦП, чтобы был доступ к ресурсам системы и даже к самому приложению (в частности управление по сети)
...
Рейтинг: 0 / 0
24.04.2019, 22:12
    #39805916
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
SetProcessAffinityMask() тебе в руки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.04.2019, 23:06
    #39805925
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
И приоритет низкий выставить.
...
Рейтинг: 0 / 0
24.04.2019, 23:35
    #39805929
Michael Longneck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
...
Рейтинг: 0 / 0
24.04.2019, 23:47
    #39805931
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
------------------------------------------------------------------
Количество процессоров
------------------------------------------------------------------
SYSTEM_INFO siSysInfo;
int NumberOfProcessors;
GetSystemInfo(&siSysInfo);
NumberOfProcessors = siSysInfo.dwNumberOfProcessors;
------------------------------------------------------------------
Как указать задаче на каком процессоре работать
------------------------------------------------------------------
SetThreadAffinityMask(GetCurrentThread(),numProcessor);

numProcessor - номер процессора (ядра). Если в системе 2 ядра, указание
числа 3 приводит к ~70% загрузке первого ядра и ~30% второго;
указание 4 - к 70% загрузке второго ядра и ~30% первого (только
по текущей задаче).
...
Рейтинг: 0 / 0
25.04.2019, 12:38
    #39806170
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
d7iЕсли в системе 2 ядра, указание
числа 3 приводит к ~70% загрузке первого ядра и ~30% второго;

Это плохой знак. Что-то не так в логике твоей многопоточности.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25.04.2019, 13:12
    #39806220
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
d7i,

авторКак указать задаче на каком процессоре работать

Как правило, лучше всего справляется с раскладкой потоков по процессорам сама система. Очень мало шансов что ты сделаешь это лучше неё. Обычно можно контролировать число потоков, которые создаёт твоя программа. Смотри на загрузку цпу своей программой и корректируй число (одинаковых) потоков. Я бы делал так.
...
Рейтинг: 0 / 0
25.04.2019, 13:19
    #39806230
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
ну и приоритеты не стоит забывать. до какой-то степени помогают.
...
Рейтинг: 0 / 0
25.04.2019, 15:57
    #39806358
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
makhaond7i,

авторКак указать задаче на каком процессоре работать

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

Согласен.
Однако, был вопрос, как явно указать на каком процессоре (ядре) работать, что я и сделал.
Кстати, там в параметрах не числовой номер ядра, а битовая маска (с 0). Об этом не следует забывать.
...
Рейтинг: 0 / 0
25.04.2019, 18:28
    #39806464
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
d7i,

да, так и есть. можно программу привязать либо в к одному либо к нескольким ядрам.
...
Рейтинг: 0 / 0
25.04.2019, 18:35
    #39806466
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
makhaonможно программу привязать либо в к одному либо к нескольким ядрам.

Между привязкой процесса и привязкой потока есть некоторая разница, которая может вылезти
неожиданным боком, выглядящим как раз как "одно ядро загружено на Х процентов, а второе на
100-Х", что свидетельствует о том, что многопоточность в данном случае не имеет смысла от
слова "вообще".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.04.2019, 05:36
    #39806551
shonli95
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
Dimitry Sibiryakov,

Видел движки stalker которые реализует многоядерность, которая не приносит ни грамма fps. Хотя нагрузка на ядра поровну

Так что жирный Плюс. Фейковая многоядерность, это ещё не значит что она есть
...
Рейтинг: 0 / 0
26.04.2019, 10:31
    #39806614
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
shonli95,
мерять нужно. у меня обычно получается 5-6х по скорости при равномерной загрузке 8ми ядер (i7)
...
Рейтинг: 0 / 0
26.04.2019, 10:50
    #39806627
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
_Промешан_Нужно организовать ограничение использования ресурсов системы на многопроцессорном железе.
Может кто сталкивался с таким? Есть статьи на эту тему?

ОС Windows Server.
Главная задача - недопустить полной загрузки ЦП, чтобы был доступ к ресурсам системы и даже к самому приложению (в частности управление по сети)

На мой взгляд, выбранные средства не соответствуют целям.
Если приложение использует все ресурсы проца, значит ему это нужно. Если это не задача реального времени, достаточно просто установить приложению низкий приоритет, чтобы более критичные по времени задачи выполнялись в первую очередь.
Ну кванты можно сделать покороче, если требуется очень оперативное вмешательство.
...
Рейтинг: 0 / 0
26.04.2019, 14:05
    #39806814
_Промешан_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
Dimitry Sibiryakovd7iЕсли в системе 2 ядра, указание
числа 3 приводит к ~70% загрузке первого ядра и ~30% второго;

Это плохой знак. Что-то не так в логике твоей многопоточности.

По счастью это не моя логика. Есть легаси код, который вызывает подобные проблемы. Моя задача состоит в том, чтобы
а) исследовать возможные пути решения легаси кода
б) При реализации системы уметь управлять многопоточностью на основе исопльзования ресурсов
в) в случае загрузки ЦПУ оставлять место для маневра и подключения как к серверу, так и к самой системе для управления. Нужно что-то вроде "админского-коннекта к бд" (не имеется в виду реализация базы данных, только аналогия оттуда).
...
Рейтинг: 0 / 0
26.04.2019, 14:09
    #39806820
_Промешан_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
Соколинский Борис_Промешан_Нужно организовать ограничение использования ресурсов системы на многопроцессорном железе.
Может кто сталкивался с таким? Есть статьи на эту тему?

ОС Windows Server.
Главная задача - недопустить полной загрузки ЦП, чтобы был доступ к ресурсам системы и даже к самому приложению (в частности управление по сети)

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

Действительно некоторые задачи приложения сам по себе критичный для выполнения. Но не все.
Низкий приоритет - это один из способов. Но проблема заключается в том, что легаси код вызывает тупо загрузку ЦП. И это не связано с полезной нагрузкой. Это понятно потому, что нет абсолютно никакой картины происходящего. Нет абсолютно никакого понимания, почему это происходит. Те же самые задачи, которые приводят к загрузке ЦП, в другое время - выполняются за секунды.
...
Рейтинг: 0 / 0
26.04.2019, 16:04
    #39806884
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация ограничения использования ресурсов системы
пробуй отладку. локальную, если получается повторить у себя загрузку, или удалённо. остальное тут больше как костыли имхо.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Реализация ограничения использования ресурсов системы / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]