потоки на основе спецификаций системы - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть сервер с оперативной памятью 24 ГБ, четырехъядерный Xeon с гиперпоточностью.Мне нужно создать пул потоков в моем серверном приложении.Каковы максимальные потоки для пула потоков, если таковые имеются?

Спасибо

Ответы [ 2 ]

0 голосов
/ 23 ноября 2011

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

  • Если задания в основном загружают процессор, вы, вероятно, будете использовать n_cores + 1 потоков.

  • Если он выполняет ввод-вывод с задержкой (скажем, сканировать веб-сайт), вы добавите еще больше потоков.

  • Если он использует тонны памяти, вы будете добавлять потоки, пока не будете использовать все свои оперативные памяти 24 ГБ.

0 голосов
/ 22 ноября 2011

Как правило, я бы выбрал 2x количество ядер процессора. Это не дает почти никакого снижения производительности в случае, если все потоки заняты, но гарантирует, что, если некоторые потоки выполняют ввод / вывод, ЦП выполняет другую работу - не простаивает.

...