Чи дозволить багатоядерний той же режим використання процесора, що і багатопроцесорний процесор


1

Можливий повтор:
багатоядерний процесор: чи можу я сказати, що у мене є процесор 3x2.1GHz = 6.3GHz?

Я планую купити ноутбук з процесором i5-2410M, який має 2 ядра (відповідно до специфікації, він також може мати 4 потоки). Я використовував сервер Linode, який має 4 процесора і один процес (mysqld) на Debian (у верхній команді) має 200% використання процесора, 2 ядра будуть мати те саме.


1
@DanielAndersson Це не дублікат, це інше питання, я використовую сервер linode, який має 4 процесора, і при сильному навантаженні він мав близько 200% використання процесора для mysql, тому моє питання було, чи можу я мати те саме на 2 ядрах.
jcubic

Відповіді:


1

Linux підтримує багатоядерні процесори. Якщо ваш процесор може запустити 4 потоки, це означає, що він матиме швидкість чотирьох процесорів у деяких випадках. Однак якщо ви плануєте запускати одну програму (яка не підтримує багатоядерність) швидше, ніж ваш процесор повинен мати великий кеш і велику тактову частоту.


Чи планує Linux обробляти процеси в багатоядерні, як один процес до одного ядра, а другий процес до іншого, або це лише за один процес? У моєму випадку більшість процесорів (у моєму вірному ноутбуці) припадає на VLC або Totem та Google Chrome.
jcubic

Linux заплануватиме ядра KSE (об'єкти планування ядра) для ядер. Кожен процес буде складатися щонайменше з одного KSE, можливо, більше.
Девід Шварц

0

Ваше запитання задає нам порівняння фактичного процесора з гіпотетичною системою з декількома процесорами. Це насправді неможливо зробити. Звичайно, теоретично можна уявити систему з двома процесорами, яка забезпечить таку ж продуктивність, як і ваш двоядерний процесор. Можна також уявити дві системи процесора, які швидші або повільніші, ніж i5-2410M.


0

Як уже зазначав Девід Шварц, таке порівняння є грізним, якщо можливо взагалі.

Якщо припустити, що одна розмова процесорів одного покоління та цінового класу та працює на одній або дуже схожій тактовій частоті, одноядерний процесор (або основний процесор 2 * N) зазвичай перевершує два одноядерних процесори (або два N основних процесора).
Очевидно, ви не можете порівняти двоядерний Conroe з двома одноядерними піщаними мостами (чи це навіть існує? - але ви розумієте) дуже влучно. Крім того, ви, очевидно, не можете порівнювати процесори, коли один має втричі більший розмір кешу або вдвічі більше частоти.

Здійснюючи припущення, що центральні процесори достатньо схожі, кілька речей неодмінно є не настільки оптимальними між двома процесорами, як у межах одного багатоядерного:

  • довші смуги між ядрами та оперативною пам’яттю (міліметри / сантиметри замість мікрометрів)
  • більше "додаткової логіки", необхідної для доступу до пам'яті
  • більше витрат на синхронізацію для атомних операцій
  • Кеш рівня 2 не поділяється
  • ймовірно, що НУМА

Таким чином, загалом електричний струм, який рухається з більш-менш фіксованою швидкістю, повинен пройти довший шматок дроту, на який потрібен час. Крім того, переміщення потоку до іншого непрацюючого ядра не настільки тривіальне (це може бути надмірно дорогим!), Як і на одному багатоядерному процесорі. Це обмежує можливість операційної системи використовувати всі наявні ресурси.

Тому відповідь на ваше запитання: "Ні, не те саме".


Я маю на увазі, якщо один процес на 2 ядрах може мати 200% використання процесора в топовій програмі на Linux. Я оновлю своє запитання.
jcubic
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.