Я использую два сервера Dell R410 в одной стойке центра обработки данных (за балансировщиком нагрузки). Оба имеют одинаковую аппаратную конфигурацию, запускают Ubuntu 10.4, имеют одинаковые установленные пакеты и запускают одинаковые веб-серверы Java (без другой нагрузки), и я вижу существенную разницу в производительности между ними.
Разница в производительности наиболее очевидна в среднем времени отклика обоих серверов (измеряется в самом приложении Java без сетевых задержек): один из них работает на 20-30% быстрее, чем другой, очень стабильно.
Раньше я dstat
выяснял, есть ли еще контекстные переключатели, IO, подкачка или что-то еще, но я не вижу причин для разницы. При той же рабочей нагрузке (без подкачки, практически без ввода-вывода) загрузка и загрузка процессора выше на одном сервере.
Таким образом, разница, по-видимому, в основном связана с процессором, но хотя простой тест производительности процессора sysbench
(с отключенной нагрузкой) дал разницу, он составил всего 6%. Так что, возможно, это не только процессор, но и производительность памяти.
Пока я проверил:
- Версии прошивки на всех компонентах (одинаковые)
- Настройки BIOS (я сделал дамп с помощью
dmidecode
, и это не показало различий) - Я сравнил
/proc/cpuinfo
, без разницы. - Я сравнил вывод
cpufreq-info
, без разницы. - Параметры Java / JVM (одинаковые версия и параметры в обеих системах)
Кроме того, я полностью заменил оперативную память несколько месяцев назад, без какого-либо эффекта.
Я потерян. Что я могу сделать, чтобы выяснить, что происходит?
ОБНОВЛЕНИЕ : Yay! Оба сервера теперь работают одинаково. Это были настройки «power CRAP», как jim_m_somewhere назвал их в комментариях. Параметры BIOS для «Управления питанием» были на «Максимальная производительность» на быстром сервере и на «Active Power Controller» (настройка по умолчанию от Dell) на другом. Очевидно, я забыл, что я сделал эту настройку два года назад, и я делал это не на всех серверах. Спасибо всем за ваш очень полезный вклад!