Я запускаю два сервери Dell R410 в одній стійці центру обробки даних (за балансиром навантаження). Обидва мають однакову апаратну конфігурацію, запускають Ubuntu 10.4, встановлюють однакові пакети та запускають ті самі веб-сервери Java (без іншого навантаження), і я бачу істотну різницю в роботі між ними.
Різниця в продуктивності найбільш очевидна в середньому часі відгуку обох серверів (вимірюється в самій програмі Java, без мережевих затримок): один з них на 20-30% швидше, ніж інший, дуже послідовно.
Раніше я dstat
з'ясовував, чи є більше контекстних комутаторів, IO, свопінгу чи чогось іншого, але я не бачу причин для різниці. При однаковому навантаженні (без заміни, практично без вводу-виводу) використання процесора та завантаження на одному сервері вище.
Таким чином, схоже, різниця пов'язана в основному з процесором, але хоча звичайний контрольний процесор, що використовує sysbench
(при відключенні всіх інших навантажень), дав різницю, він становив лише 6%. Тож, можливо, це не тільки процесор, але і продуктивність пам'яті.
Поки я перевірив:
- Ревізія прошивки для всіх компонентів (ідентична)
- Налаштування BIOS (я робив дамп із використанням
dmidecode
, і це не показало відмінностей) - Я порівнював
/proc/cpuinfo
, різниці немає. - Я порівняв вихід
cpufreq-info
, немає різниці. - Параметри Java / JVM (однакова версія та параметри для обох систем)
Також я повністю замінив оперативну пам’ять кілька місяців тому, без жодного ефекту.
Я загубився. Що я можу зробити, щоб зрозуміти, що відбувається?
ОНОВЛЕННЯ : Так! Зараз обидва сервери працюють однаково. Це були "Power CRAP" налаштування, як jim_m_somewhere назвали їх у коментарях. Параметри BIOS для "Управління живленням" були на "Максимальній продуктивності" на швидкому сервері, а на "Активному контролері живлення" (налаштування за замовчуванням від Dell) на іншому. Очевидно, я забув, що встановив це налаштування два роки тому, і не робив цього на всіх серверах. Дякуємо всім за дуже корисний внесок!