Чи можна впливати на спосіб перерахування процесорів під Linux?


32

У мене є HP DL380 G7 з 2 невідповідними процесорами. Один - це чотирьохядерний процесор з більш швидкими ядрами, а один - 6-ядерний процесор з більш повільними ядрами.

У цьому вікні я запускаю програму, яка через ліцензійні причини використовуватиме лише CPU0-CPU3.

Для мене хочеться, щоб більш швидкі ядра на чотирьохядерному процесорі перераховували до CPU0-CPU3 в операційній системі, даючи мені бонус за продуктивність за: a) використання швидших тактових ядер, і b) зберігання всіх потоків на одному фізичному процесорі .

Чи є спосіб це зробити, або в BIOS, або в конфігураційному файлі або в режимі завантаження в Linux?

Конкретні моделі процесора:

Процесор Intel (R) Xeon (R) E5649 @ 2,53 ГГц (шестигранний ядро)

Процесор Intel (R) Xeon (R) E5640 при 2,67 ГГц (чотирьохядерний)


Будь ласка, опублікуйте конкретні моделі процесора від cat /proc/cpuinfo.
ewwhite

24
Оновлення, тому що я навіть не знав, що можливі нерівні процесори, завжди щось нове, щоб дізнатися ...
Кайл Брандт

2
@kyle це можливо, але HP не підтримує та не підтримує.
ewwhite

1
@kasperd У HP-land, якщо ви завантажуєте два процесора з різними степпінгами, ви отримуєте CPU mismatch detectedпомилку в POST. Це може статися в поколінні процесора; наприклад, Intel 5606 і 5690 в тому ж шасі.
ewwhite

3
Якщо когось цікавить, що ми насправді тут робили, ми пройшли дорогу вниз до датацентру та фізично видалили чотирьохядерний процесор з серверів
paulos

Відповіді:


27

Wut?!?

Це божевільне , знаєте? Це не підтримується і, ймовірно, не добре для вашого обладнання. Ви повинні використовувати на своєму сервері процесори з однаковою характеристикою.

Я припускаю, що ви просто виконаєте свою програму в групі або щиті (або через taskset), який містить лише ядра CPU, які ви хочете використовувати. Ви також можете закріпити доступ до пам'яті до цього процесора numactl. Але насправді, чому б ви не видалити повільніше процесор повністю або заплатити все, що потрібно, щоб привести систему в специфікацію.

Можливо, очевидна річ, якщо у вашій програмі жорстко закодовано CPU0-CPU3, це фізично поміняти сокети ... але насправді просто запустіть тут один процесор.

Якщо ви маєте на увазі апаратне забезпечення ProLiant DL380 G7, ваш "швидший" процесор, швидше за все, буде процесором серії Nehalem 5500, при цьому повільніший шестиядерний процесор буде Westmere. Ви взагалі орієнтувались? Які конкретні процесори встановлені?

Редагувати:

Гаразд, значить, це принаймні процесори одного покоління / ступінчасті. Але це все-таки погана ідея ... Різниця в специфікації процесора навіть не така велика (навпаки, на зразок Intel X5690 на частоті 3,47 ГГц).


4
У всіх однакова реакція! Я знаю, що в ідеалі процесори були б такими ж, але це те, що HP повернуло нас у той час. Це рука, яку я розібрав, хоча тому мені доводиться робити все найкраще до наступного оновлення обладнання. Процесорними процесорами є Xeon E5649 @ 2,53GHz (шестигранний ядро) та E5640 @ 2,67GHz (чотирьохядерний). Повністю видалити 6 ядерних процесорів - це один із варіантів таблиці. Було б акуратніше мати можливість повністю відключити сокет в BIOS, але це не здається можливим.
paulos

@paulos Що це за програма?
ewwhite

Він фактично працює як брандмауер контрольного пункту
paulos

3
@paulos Тоді чому 2.67 ГГц проти 2,53 ГГц має значення? Просто поставте 6-ядерний процесор на сервер і видаліть 4-ядерний.
ewwhite

re: специфікація процесора, так, я думаю, це лише приблизно на 5% швидше або щось подібне. Я очікую, що підвищення продуктивності пояснюється тим, що всі робочі потоки і, зокрема, буря irq з мережевих карт знаходяться на одному фізичному процесорі. edit: Так, лише використання 6-ядерного процесора - це також можливість.
paulos
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.