Настройка привязки процессора к процессу и его эффектам - PullRequest
0 голосов
/ 23 июня 2010

У меня есть приложение с модулем пользовательского интерфейса и другими службами поддержки.Эти другие службы имеют утечки памяти и другие проблемы синхронизации потоков.Следовательно, на некоторых машинах, особенно на четырехъядерных, двухъядерных, сервисы время от времени дают сбой.

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

Теперь мой вопрос: получат ли мои сервисы снижение производительности, поскольку я ограничиваю их использованиетолько один процессор?

Редактировать 1: Примечание. Эти сервисы являются многопоточными.

Ответы [ 2 ]

1 голос
/ 23 июня 2010

(может лучше подойти serverfault.com)

Поскольку служба создает несколько потоков, скорее всего.

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

Воспринимаемые результаты могут быть неуловимыми или разрушительными: Вы можете некоторое время нормально работать, но становитесь неуверенными, когда запросы достигают максимума, зависимые службы (если таковые имеются) могут замедляться.

1 голос
/ 23 июня 2010

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

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

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