Как определить, какой процесс загружает мой процессор, если он не достигает 100%?

9

Апплет системного монитора Ubuntu постоянно показывает 100% загрузки процессора. Если я щелкну по нему, вкладка ресурсов также покажет его на 100% непрерывно. Если же я пойду к процессам, чтобы выяснить, какой процесс является виновником, то нет ничего выше 10%. Если я бегу наверх, то ничего выше 10%. Отдельные процессы не составляют до 100%. Я пытаюсь убить много процессов, но общее использование по-прежнему составляет 100%. Как я могу узнать, что загружает процессор?

альтернативный текст

Это необычная ситуация на компьютере, которым я пользуюсь ежедневно, который никогда не приближается к 100% ЦП, если я не делаю то, что ему требуется (например, загрузку 32 вкладок Firefox), после чего он возвращается к нормальному уровню простоя. Это не новая установка или что-то еще. Нет причин, по которым процессор должен быть максимально загружен. Я не уверен, когда это началось или я изменил что-то, что вызвало это.

Обычно я использовал top или System Monitor и находил процесс, вышедший из-под контроля, но на этот раз я ничего не нашел с этими инструментами. Сохраняется после перезагрузок и все.

И процессор явно горячий, так что это не ошибочное чтение.

Обновление: я пытался убить каждый процесс, по одному, пока проблема не исчезла, и уничтожение vino-сервера окончательно исправило это, хотя этот процесс никогда не превышал 5%. Я включил Remote Desktop несколько дней назад (и, очевидно, теперь отключил его).

Но остается вопрос: как одному процессу удалось использовать 100% ЦП, в то время как top показал этот процесс только на 5%? Как мне определить виновных в будущем?

Похоже, я не единственный, у кого была эта проблема:

По-прежнему проблема как в веселой, так и в кармической. Интересно, что и системный монитор, и htop не показывают сумму отдельных процессов, находящихся где-то около 100% процессорного времени.

эндолиты
источник
2
Ваша система также работает медленно? Это может быть ложное чтение.
Бобби

Ответы:

9

Когда вы говорите «ничего выше 10%», вы имеете в виду «никто не превышает 10%»? Требуется всего 11 вещей при ~ 9%, чтобы достичь 100% в общей сложности.

Кроме того, часть измеренного использованного времени ЦП может быть временем ожидания ввода-вывода - временем, в течение которого процесс может что-то делать, но не потому, что он ожидает ответа устройства ввода-вывода (т. Е. Он сделал запрос диска). и диск еще не нашел нужный бит данных и вернул его). Вверху это можно увидеть в строке (-ах) ЦП как показатель% wa. Состояние ожидания ввода-вывода немного странно - процессор фактически не занят выполнением каких-либо действий (поэтому, если другой процесс хочет выполнить какое-то вычисление, он сможет), но он учитывается в показателях загрузки системы, поскольку загрузка системы больше представляет чем только процессор активий.

Было бы полезно добавить вывод top -n 1к вашему вопросу.

Кроме того, если ваше ядро ​​достаточно недавно, чтобы иметь функцию учета ввода-вывода (если вы используете последнюю версию Ubuntu, так и должно быть), и оно включено, вы можете увидеть, какие процессы активно выполняют операции ввода-вывода, запустив iotop -n 1 -ob(iotop может быть не установлен по умолчанию, если у вас его нет, попробуйте установить его с помощью apt-get install iotopили найдя его в менеджере пакетов GUI.

Дэвид Спиллетт
источник
1
+1 за просьбу добавить top -n 1к вопросу
Tarnay Kálmán
2

У меня была аналогичная проблема. Процессор работал на полную мощность, и ни один из процессов в System Monitor ничего не показывал. Я нашел один ответ, используя команду "top" в окне терминала. Это показало, что apt загружал мой процессор без веской причины. Так почему же System Manager не показал это? Оказывается, есть опция под View для всех процессов; Мой был проверен как Мои процессы, поэтому я никогда не видел виновника. Надеюсь это поможет.

Айк Холл
источник
0

У меня та же проблема, но я обнаружил, что Xorg использует 50% процессора, а это показывает, что эту [эту ошибку] ​​можно исправить с помощью команды sudo rmmod ums_realtek. На этот раз Xorg использовал только 5-10% CPU в системном мониторе, но на вкладке ресурсов он все еще показывал 100%.

Пока я наблюдал за системным монитором, я увидел мигание рутовой прозы, используя 100% CPU! У меня не было времени посмотреть, что это было, но я уверен, что это как-то связано с этим.

NatureShade
источник
-1

Первый вопрос - кажется ли ваша система медленной или не отвечает. В конце концов, это ваш процессор, вы заплатили за него, и у вас есть право использовать его для своих целей. Второй вопрос заключается в том, пытаетесь ли вы сделать слишком много с вашей системой, и вам следует подумать об обновлении, если это возможно. В моем первом Linux-боксе было медленное 486, и его было действительно легко превзойти. Например, если вы работаете на OLPC XO, ваши ресурсы действительно ограничены.

Серьезно, вы вряд ли будете одновременно использовать множество чрезмерных ресурсов. Если ни один процесс не занимает более 10%, то ваша система гибнет от уток, и вы не сможете уменьшить нагрузку, не уменьшив то, что вы делаете.

При этом проверьте системные службы и отключите те из них, которые вам не нужны. Подумайте об удалении тех, которые вы действительно уверены, что не хотите ( sudo apt-get remove foo). В частности, если вы перегружаете систему, любое снижение нагрузки может только помочь. Попробуйте выйти из программ, которые вы не используете.

Если есть один процесс, который использует все доступные процессоры, попробуйте найти его, запустив top и отметив, какой процент ресурсов используют основные процессы. Когда вы убьете несколько человек, посмотрите, поднимается ли один быстрее других. Конечно, убийство такого процесса не принесет вам столько денег, так как это не более 10% нагрузки.

Дэвид Торнли
источник
Если бы я использовал процессор, я бы знал это. Он не работает на 100% непрерывно во время нормальной работы, и, конечно, не должен, когда я закрыл все, о чем я мог подумать, может использовать его.
эндолит
-1
  1. apt-get install cpufrequtils
  2. открытый /etc/rc.conf
  3. добавьте следующее в МОДУЛИ: MODULES=(# your-modules-not-touch #acpi-cpufreq cpufreq_ondemand cpufreq_performance)
  4. перезагрузка

После перезагрузки вы должны запустить, cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governorsчтобы увидеть, какие модули загружены.

Во время работы вы можете менять губернаторов на то, что соответствует вашим потребностям. Например:

  • cpufreq-set -r -g ondemand

Вы можете использовать один из следующих регуляторов:

  • производительность : он работает процессор на максимальной частоте (модуль: cpufreq_performance)
  • OnDemand : динамически переключается между CPU (ами) , доступных тактовых частот на основе SYS нагрузки (модуль: cpufreq_ondemand)
  • консервативный : Аналогично ondemand, но процессор (ы) с тактовой частотой переходит постепенно через все доступные частоты ( на основе SYS нагрузки) (модуль: cpufreq_conservative)
  • PowerSave : CPU (s) работает на минимальной скорости (модуль: cpufreq_powersave)
  • userspace : позволяет пользователю вручную устанавливать тактовую частоту процессора. (модуль: cpufreq_userspace)

Если вы используете GNOME2, есть апплет, который удивителен.

  1. Щелкните правой кнопкой мыши на панели
  2. Добавить апплет
  3. начать печатать: CPUвы должны увидеть это :)
  4. щелчок Add

Используя этот апплет, вы можете переключаться между доступными регуляторами (вы добавили их /etc/rc.confранее).

Например, я использую ondemandвсе время, потому что мне не нужна полная производительность для запуска eclipse и эмулятора Android на моем ArchLinux: P

Summa Summarum - Google для cpufrequtils и узнать, как его использовать :) Это pckg сэкономил мое время и деньги; D

Ура!

Никола
источник