Понимание "верхнего" использования процессора
Что конкретно означает использование 350% ЦП (процессом) на 4-х процессорной коробке? Процесс представляет собой "mysqld", который в настоящее время "бомбардируется" имитируемым сценарием OLTP.
Любые указатели приветствуются.
6 ответов
В земле *NIX 100% использование процессора составляет 100% ОДНОГО процессора.
Это относится к многоядерным процессорам так же, как к настоящим многопроцессорным компьютерам.
Итак, вы используете 7/8-й из ваших общих циклов ЦП на MySQL.
Во время бега сверху нажмите "1". Это переключит представление так, чтобы вы могли видеть нагрузку на отдельное ядро / процессор.
Я только что прочитал интересную статью на эту тему вчера: средняя загрузка Unix. Он объяснит все, что вам нужно знать и многое другое.
Извлечь:
Среднее значение загрузки представляет собой сумму длины очереди выполнения и количества заданий, запущенных в данный момент на процессорах. В Solaris 2.0 и 2.2 средняя загрузка не включала выполняемые задания, но эта ошибка была исправлена в Solaris 2.3.
Учтите, что есть два основных режима отображения нагрузки: "Режим IRIX" и "Режим Solaris". В режиме IRIX (Linux по умолчанию) средняя загрузка 1 означает, что один ЦП полностью загружен (или 25% каждого ЦП в системе с 4 ЦП и т. Д.). В режиме Solaris среднее значение загрузки 1 означает, что все процессоры полностью загружены (так что это фактически эквивалентно загрузке "режима IRIX", деленной на количество процессоров).
Средняя загрузка показывает, сколько процессов ожидает в очереди (с учетом количества процессоров). С одним ЦП средняя загрузка 1,0 означает, что этот ЦП способен оптимально полностью обрабатывать все запросы в очереди - ни один процесс не ожидает ЦП, и циклы ЦП не теряются (т. Е. Простаивают). Средняя загрузка 2,0 (в одноядерной системе) будет означать, что половина процессов будет ожидать возможности запуска на ЦП:-(Средняя загрузка 0,33 будет означать, что в системе так мало нагрузки, что 2/3 времени ЦП в основном не делает ничего, кроме ожидания запуска новых процессов.
Процент CPU, показанный сверху, является мерой того, как часто ядро загружает отдельный процесс для запуска на CPU, усредненное за период времени. Таким образом, 350% в четырехъядерной системе означают, что в течение некоторого времени mysqld будет занимать три полных ЦП и половину времени четвертого ЦП, т. Е. У него так много потоков, что он в значительной степени затопляет ядра с запросами. Процент загрузки ЦП не учитывает ожидающих очередей (в то время как средняя загрузка делает это): это статистика по факту того, что произошло за определенный промежуток времени. Но это, безусловно, показывает, какие процессы используют ЦП в последнее время.
Еще одна основательная статья на эту тему: http://www.linuxjournal.com/article/9001
Их 4 х 100%, поэтому "top" показывает 400% на 4-х процессорной коробке.
Каждый процесс процессора считается 100% . Так что это всего 400% от 4 процессоров.