У меня есть две системы Dell R730 с идентичной аппаратной конфигурацией, приобретенные одновременно. Оба работают под управлением RHEL6.9, образы которых были созданы из одного и того же образа. Это было снято в январе. Я обновляю пакеты из репозитория один раз в месяц, поэтому в целом все в системе должно быть «почти» идентичным. (т.е. любое программное обеспечение или настройки, которые я изменяю в одной системе, будут изменены в другой, но поскольку это ручной процесс, может быть что-то упущено)
Я заметил, что производительность одной системы в 2,5 раза ниже, чем в другой. Задания, которые я тестирую, требуют интенсивной работы однопоточного процессора. Чтение некоторых файлов данных, но очень низкая загрузка диска io согласно iostat. Вверху показано, что процесс постоянно привязан к 100%, но в системе 88 потоков, а средняя загрузка составляет всего около 1. Очень низкое использование памяти. Нет использования сети. (Все файлы, которые он использует, являются локальными). Один представляет собой сложный скрипт на Python, другой - проприетарную программу, оба работают намного медленнее в одной системе по сравнению с другой.
/ proc / cpuinfo идентичен. Настройки BIOS идентичны. Только один пользователь в системе. Чем быстрее система подключена к Интернету, тем медленнее находится в автономной сети.
В своих исследованиях я обнаружил только два отличия. 1. Более быстрая система работает с версией BIOS 2.25, более медленная система работает с BIOS версии 2.43 2. На более медленной системе работает auditd. Однако во время процесса в журнале аудита нет активности.
Я понимаю, что это сложно отладить, но у меня не хватает идей, что искать. Есть ли какие-нибудь встроенные программные инструменты, которые я могу использовать, чтобы лучше понять, что может происходить?
Мои сегодняшние рекомендации относительно систем EL6 на корпоративном оборудовании следующие:
enterprise-storage
или latency-performance
.sosreport
чтобы попытаться получить сводку конфигураций обеих систем.Конечно, вы также можете профилировать процессы ... top
, perf top
, pidstat
, strace
.
Или посмотрите серверы в реальном времени с помощью Netdata и коррелируйте все системные метрики, чтобы увидеть, где существуют узкие места.
Я также делаю следующее в /etc/profile.d/tzfix.sh по уважительной причине:
# Set TZ variable to reduce stat("/etc/localtime" activity
# See: https://blog.packagecloud.io/eng/2017/02/21/set-environment-variable-save-thousands-of-system-calls/
#
export TZ=:/etc/localtime
Просто несколько идей для начала.
Вероятно, это связано с управлением питанием. Попробуйте перевести оба сервера в режим высокой производительности (управление питанием отключено) и повторите тесты производительности.