Назад | Перейти на главную страницу

Связана ли нагрузка на систему напрямую с использованием ЦП?

Это двухъядерный компьютер, и нагрузка составляет около 24, но загрузка процессора колеблется от 60 до 80% и никогда не достигает 100%, так как же может быть столько ожидающих процессов? Ввод-вывод почти пуст, поскольку все считывается из баз данных памяти, а сеть использует только около 7 Мбит от гигабитного соединения. Будет ли добавление дополнительных ядер снизить нагрузку или проблема не в ЦП, поскольку он даже не перегружается?

Нет.

Попробуйте запустить ничего, кроме Seti @ Home (или любого другого его текущего воплощения), и вы увидите, что загрузка вашего сервера привязана к 1.0, хотя ваш процессор будет привязан к 100% загрузке.

На странице руководства UPTIME (1):

Средняя загрузка системы - это среднее количество процессов, которые находятся в рабочем или непрерывном состоянии. Процесс в рабочем состоянии либо использует ЦП, либо ожидает использования ЦП. Процесс в непрерывном состоянии ожидает некоторого доступа к вводу-выводу, например ждет диска. Средние значения берутся за три временных интервала. Средние значения нагрузки не нормализованы для количества ЦП в системе, поэтому средняя загрузка 1 означает, что система с одним ЦП загружена все время, а в системе с 4 ЦП это означает, что она простаивает 75% времени.

Например, у нас есть сервер, который ничего не делает, кроме запуска Spamassassin с двумя процессорами Xeon (всего 4 виртуальных процессора). Иногда он достигает 100% использования процессора, но чаще он использует много дискового ввода-вывода, считывая и записывая в База данных Байеса. Таким образом, нагрузка на систему часто бывает очень высокой, порядка 20-40, потому что есть много процессов, которые немного ждут диска.

Средняя нагрузка - это количество процессов, находящихся в рабочем состоянии: нажмите «i» вверху, чтобы ограничить их этими числами. Сюда входят процессы, которые (R) запущены и (D) ждут диска. Неужели он не выполняет никаких операций ввода-вывода? В своп не пошло?

Нетривиальное количество этих процессов - тяжелые пользователи памяти? Потому что вы можете видеть последствия серьезных промахов кеша.

Память медленная, поэтому у ЦП есть кэш (или, чаще, несколько уровней). Теперь, если процесс A находится на процессоре и загрузил большую часть кеша своей собственной памятью, тогда появляется процесс B и хочет заполнить кеш его памятью есть серия ожиданий, пока это происходит, что приводит к снижению ЦП. Тогда рано или поздно приходит процесс А, и вы снова через все это проходите ...