Загрузка ЦП многопоточного процесса
Предыстория: у меня есть целый беспорядок систем с ядром 2.6.20 и 2.6.22 в том, что началось с установки Fedora Core 2 несколько лет назад. Эти системы имеют 8 процессоров, как сообщает cat /proc/cpuinfo
,
Мой вопрос заключается в том, что при запуске процесса, использующего многопоточность, загрузка процессора составляет 99,99%, как сообщили top
означает 99,99% от каждого ЦП или 99,99% от общего числа, если вы добавите использование на каждом ЦП вместе? Другими словами, максимальный процент должен быть 800% или 100%?
Кажется, что, когда один из этих процессов на 99,99%, если вы посмотрите на каждый процессор в отдельности, они скажут, 25% загрузки (вместо 100%).
Любая помощь приветствуется. Если я был неясен или запутался, дайте мне знать, и я постараюсь уточнить.
ОБНОВЛЕНИЕ Кажется, что мы могли видеть низкое использование из-за проблемы с моделью потоков, используемой программистами. Они используют пользовательские потоки в отличие от потоков ядра и видят ограничения в том, что разрешено делать пользовательским потокам.
2 ответа
Использование процессора на 99% означает почти полное использование одного ядра.
если ваша система полностью загружена [пара потоков, каждый из которых загружает один процессор] - вы увидите 400% использования в четырехъядерном процессоре или 800% в двухъядерных процессорах.
процессы / потоки перераспределяются между процессорами - поэтому вы видите 25% использования на каждом из ядер. но вы можете установить сходство для них.. тогда они будут придерживаться выбранных процессоров / ядер.
Показывает нагрузку на ядро. Не забывайте о отличной замене "top" под названием htop. Это привлечет вас к загрузке отдельных процессоров / ядер.