Member 13775261 Ответов: 3

Процессор высок, который запускает консольное приложение C#


Мы запускаем несколько консольных приложений на одном из наших серверов. Они закодированы на C#.иногда он потребляет 100 % процессора и сервер зависает. Есть 2-3 приложения, которые занимают 20% процессора каждое. Я хотел бы знать, можем ли мы ограничить использование процессора для такого консольного приложения.

Что я уже пробовал:

Я системный администратор. Я еще ничего не пробовал.

3 Ответов

Рейтинг:
1

Kornfeld Eliyahu Peter

Этого не может быть ответил...
Если вы запустите одно приложение с бесконечным циклом, который ничего не делает, это займет всю имеющуюся у вас мощность процессора, поэтому вы прыгнете до 100% (но не замерзнете)...
Чтобы справиться с проблемой, вам сначала нужно определить виновника... Это может быть хорошей идеей, чтобы запустить их один за другим на отдельной машине-неправильный сломает эту машину тоже...
После того, как у вас есть приложение, вы должны запустить его, разобрать, изучить, отладить и спросить...

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


Рейтинг:
1

Jochen Arndt

Как уже упоминалось, на этот вопрос нельзя ответить, не зная, что делают ваши приложения и как они реализуются.

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

Если приложения выполняют длительные вычисления с высокой нагрузкой, вы можете изменить приоритет потоков, выполняющих эти операции (см. Нить.Приоритетное Свойство (System.Нарезание резьбы)[^] ) и/или вставлять периоды сна (обычно не используя Sleep() но один из них Wait() методы с параметром timeout, позволяющим обрабатывать события).


Рейтинг:
0

OriginalGriff

Вы можете найти это полезным: Как ограничить и управлять использованием процессора в Windows 10[^] Если сервер не работает под управлением Win10, то быстрый google должен получить аналогичную информацию для других ОС.