У меня есть два одинаковых ноутбука Linux (Core™ i7-4810MQ с 32 ГБ ОЗУ), оба с Ubuntu 16.04. Выполнение любой команды на машине 2 занимает примерно в 4-12 раз больше времени, чем на машине 1, в зависимости от активности. Это было замечено в конце прошлой недели при запуске некоторых простых gradle
сборок и с тех пор не изменилось.
Для измерения я запустил сборку C++ на каждой системе. Я выбрал эту, потому что я сделал программу C++ несколько месяцев назад и собрал ее на обеих системах. Они не были измерены, но тогда они заняли примерно одинаковое количество времени. Запустим следующее на каждой системе сегодня:
make clean && time make -j8
Система 1 завершает работу следующим отчетом:
real 0m54.627s
user 5m54.188s
sys 0m23.008s
Система 2 занимает гораздо больше времени:
real 11m1.053s
user 65m59.512s
sys 4m10.404s
Поиски на Stack Exchange и Google приводят к многочисленным обсуждениям по диагностике проблемы, но все они, похоже, предполагают, что есть процесс, замедляющий работу машины. top
, iostat
и gnome-system-monitor
т. д. сообщают об одинаковом использовании ресурсов на обеих машинах — ни одна из них не занята какими-либо сложными задачами, и доступно много ресурсов ЦП, памяти, пропускной способности и ввода-вывода.
Что следует проверить в первую очередь, если производительность системы Linux явно низкая, но это не связано с ограничениями аппаратных возможностей?
решение1
Я не приму этот ответ, но вот урок, который я усвоил: если инструменты анализа не могут помочь, подумайте, что недавно изменилось в системе. Единственное изменение, которое мы сделали в System 2, которое не было сделано в System 1 на прошлой неделе, — это запуск демона Gradle в System 2. Это должно было быть причиной проблемы, и так оно и было.