Red Hat Enterprise Linux 4: Введение в системное администрирование | ||
---|---|---|
Назад | Глава 3. Пропускная способность и вычислительная мощность | Вперёд |
Часто называемая мощностью и скоростью процессора, и разными другими именами, вычислительная мощность — это способность компьютера обрабатывать данные. Вычислительная мощность зависит от архитектуры (и тактовой частоты) процессора — обычно процессоры с более высокой тактовой частотой и с большим размером машинного слова имеют большую вычислительную мощность.
Вы должны запомнить два основных факта о вычислительной мощности:
Вычислительная мощность фиксирована
Вычислительную мощность нельзя сохранить
Вычислительная мощность фиксирована в том смысле, что процессор имеет чётко определённую скорость. Например, если вам нужно сложить два числа (это действие в большинстве архитектур выполняется за одну машинную команду), конкретный процессор может выполнить это только с какой-то определённой скоростью. За редкими исключениями, нельзя не только сильно увеличить скорость обработки команд процессором, но и уменьшить её.
Вычислительная мощность фиксирована ещё в одном плане — она конечна. То есть существуют ограничения типов процессоров, которые можно поставить в определённый компьютер. Некоторые компьютеры поддерживают широкий диапазон процессоров с разной частотой, тогда как другие могут вообще не допускать замену процессора [1].
Вычислительную мощность нельзя сохранить для последующего использования. Другими словами, если процессор может выполнить за одну секунду 100 миллионов команд, одна секунда простоя равносильно потере времени, достаточного для выполнения 100 миллионов команд.
Если мы примем эти факты, и посмотрим на них в несколько другом ракурсе, мы можем сказать, что процессор «производит» поток исполняемых команд с фиксированной скоростью. И если процессор «производит» выполненные команды, значит, что-то должно «потреблять» их. Эти потребители описываются в следующем разделе.
Основными потребителями вычислительной мощности являются:
Приложения
Сама операционная система
Наиболее очевидными потребителями вычислительной мощности являются приложения и программы, которые по вашему желанию выполняет компьютер. От электронных таблиц до базы данных — приложения являются причиной, объясняющей существование у вас компьютера.
Простой однопроцессорный компьютер может делать в определённый момент времени только одно дело. Следовательно, если одно ваше приложение работает, всё остальное — нет. И конечно, также верно противоположное — если работает не ваше приложение, ваше приложение простаивает.
Но как же тогда в современных операционных системах одновременно может работать много разных приложений? Ответ заключается в том, что эти операционные системы многозадачны. Другими словами, они создают иллюзию того, что много всего происходит одновременно, хотя на самом деле это невозможно. Хитрость состоит в том, чтобы дать каждому процессу долю секунды для использования процессора, прежде чем другой процесс получит процессор на ещё одну долю секунды. Если такие переключения контекстов происходят достаточно часто, достигается впечатление, что несколько приложений работают одновременно.
Конечно, помимо обработки данных с помощью процессора, приложение выполняют и другие действия. Они могут ожидать ввода пользователя, а также выполнения операций ввода/вывода разными устройствами, например, дисками или графическими адаптерами. В таких случаях приложению больше не нужен процессор. И в это время процессор может использоваться другими приложениями, вовсе не выделяя время ждущему приложению.
Кроме этого процессор может использоваться ещё одним потребителем вычислительной мощности: самой операционной системой.
Важно определить, сколько вычислительной мощности потребляется операционной системой. Это объясняется тем, что операционная система в своей работе использует смесь кода уровня процессов и уровня системы. Хотя, например, с помощью монитора процессов легко определить, что делает процесс демона или службы, гораздо сложнее определить, сколько вычислительной мощности уходит на обработку ввода/вывода на уровне системы (это обычно происходит в контексте процесса, выполняющего ввод/вывод).
Говоря в общем, такого рода производственные издержки операционной системы можно разделить на две категории:
Обслуживание операционной системы
Действия, связанные с процессами
Обслуживание операционной системы включает в себя такие действия, как планирование процессов и управление памятью, тогда как действия, связанные с процессами (в частности с процессами, поддерживающими работу самой системы) — это, например, ведение системных журналов или сброс кэша ввода/вывода.
Если для выполнения необходимой вам работы недостаточно вычислительной мощности, у вас есть два выхода:
Снижение нагрузки
Увеличение мощности
Иногда нагрузку процессора можно снизить без затрат денежных средств. Фокус состоит в том, чтобы определить, какие аспекты нагрузки вы можете исключить. Обратите внимание на следующие направления:
Снижение издержек работы операционной системы
Снижение издержек работы приложений
Ликвидация приложений целиком
Чтобы сократить эти издержки, вы должны проанализировать текущую нагрузку вашей системы и определить, какие аспекты её работы создают неприемлемую нагрузку. В частности, вы можете:
Сократить необходимость в частом переключении процессов
Сократить объём выполняемых операций ввода/вывода
Но не ждите чуда, в разумно настроенной системе вы вряд ли добьётесь заметного увеличения быстродействия, пытаясь сократить издержки операционной системы. Объясняется это тем, что разумно настроенная система, по определению настроена так, что издержки минимальны. Однако, если, например, в вашем компьютере очень мало памяти, возможно, вам удастся уменьшить издержки, сократив требования к памяти.
Снижение издержек работы приложений означает обеспечение благоприятных условий для работы приложения. Некоторые приложения ведут себя очень по-разному в разных окружениях — например, при обработке одних данных приложение может выполнять вычисления более интенсивно, чем при обработке других.
Важно осознать, что если вы намерены добиться максимально эффективной работы приложений, вы должны понимать, как они работают. Часто это означает, что вы должны сотрудничать с пользователями и/или разработчиками, чтобы найти пути повышения эффективности приложений.
Возможно, в некоторых организациях этот подход недопустим, так как часто вовсе не системный администратор определяет, какие приложения должны работать, а какие нет. Однако, если вы сможете определить приложения, «пожирающие» процессор, возможно, вам удастся убедить власть имущих отказаться от этих приложений.
При этом, скорее всего, участвовать в этом будете не только вы. Определённо частью этого процесса станут пользователи, во многих случаях они обладают необходимыми знаниями и политической властью, чтобы изменить состав приложений.
Подсказка | |
---|---|
Учтите, что не всегда приложение обязательно ликвидировать на абсолютно всех компьютерах вашей организации. Возможно, вы сможете перенести требовательное к процессору приложение с перегруженного компьютера на тот, что почти не используется. |
Конечно, если уменьшить потребность в вычислительной мощности невозможно, вы должны искать способы увеличения доступной мощности. Это будет стоить денег, но сделать это можно.
Самое простое, что можно сделать — определить, можно ли заменить процессор компьютера. Для этого сначала нужно определить, можно ли извлечь текущий процессор. В некоторых компьютерах (в основном в портативных) процессоры впаяны в плату, что делает замену невозможной. Однако в остальных компьютерах процессоры устанавливаются в разьём, что позволяет заменять их — по крайней мере, в теории.
Затем вы должны провести исследование и определить, есть ли более быстрые процессоры, подходящие для вашего компьютера. Например, если в данный момент у вас процессор 1 Ггц, и на рынке есть процессор того же типа, но с частотой 2 Ггц, возможно, вам удастся заменить старый.
Наконец вы должны определить, какую максимальную частоту поддерживает ваш компьютер. В продолжение приведённого выше примера, даже если существует процессор нужного типа с частотой 2 Ггц, но ваш компьютер поддерживает только процессоры с частотой 1 Ггц и ниже, просто заменить процессор не получится.
Если вы обнаружите, что установить более быстрый процессор не удастся, вам остаётся только менять материнскую плату или провести дорогостоящую упомянутую ранее «модернизацию с помощью погрузчика».
Однако некоторые компьютерные платформы позволяют реализовать несколько другой подход. Вместо того, чтобы заменять текущий процессор, почему бы не добавить ещё один?
Технология симметричной многопроцессорной обработки (Symmetric MultiProcessing, SMP) позволяет устанавливать в компьютер несколько процессоров, которые при этом будут разделять все ресурсы компьютера. Это значит, что в отличие от однопроцессорной системы, SMP-компьютер может действительно выполнять в один момент времени несколько процессов.
На первый взгляд кажется, что это просто мечта системного администратора. Первое и самое главное то, что SMP позволяет увеличивать мощность процессора, даже если заменить его на более быстрый нельзя — для этого всего лишь добавляется ещё один процессор. Однако этот гибкий подход имеет некоторые недостатки.
Первое — не все компьютеры поддерживают SMP. Чтобы в ваш компьютер можно было установить несколько процессоров, это должна поддерживать материнская плата. В противном случае может потребоваться заменить материнскую плату (как минимум).
Второй недостаток — с многопроцессорной обработкой связаны дополнительные издержки. Это объясняется тем, что чем больше процессоров, время которых должно быть распланировано, тем больше циклов процессора операционная система тратит на это планирование. Есть и ещё один недостаток — при большом количестве процессоров может увеличиваться конкуренция при обращении к ресурсам компьютера. Вследствие этих факторов установка в компьютер с двумя процессорами ещё двух не приводит к удвоению доступной вычислительной мощности. На самом деле, в зависимости от реального оборудования, рабочей нагрузки и архитектуры процессора, можно достигнуть такой точки, когда добавление ещё одного процессора в действительности ухудшит производительность.
Важно помнить также о том, что SMP не ускорит работу одного цельного приложения с единственным потоком команд. Другими словами, большая программа со сложными вычислениями, работающая в рамках одного процесса и одного потока, на компьютере SMP не будет быстрее, чем на однопроцессорном. И в действительности она может работать даже несколько медленнее, по причине появившихся издержек, связанных с SMP. Поэтому, когда заходит разговор о вычислительной мощности, многие системные администраторы считают, что надо идти по пути увеличения быстродействия обработки в одном потоке. Это даёт максимум вычислительной мощности, при этом с её использованием связано меньше ограничений.
Хотя из этого суждения можно заключить, что идея SMP никогда не была хороша, в некоторых обстоятельствах она вполне оправдана. Например, для применения SMP хорошо подходят окружения с большим числом приложений, очень требовательных к ресурсам процессора, так как при работе приложений, в течение длительного времени занимающихся только вычислениями, конкуренция между активными процессами (а значит, и издержки операционной системы) минимальна, и при этом все процессоры загружены.
Также следует учесть, что при увеличении нагрузки производительность SMP-компьютера обычно снижается более плавно. Благодаря этому технология SMP стала популярна в среде серверов и окружениях с множеством пользователей, так как постоянно меняющийся набор процессов влияет на загруженность такого компьютера меньше, чем однопроцессорного.
[1] | В результате этого возникает необходимость так называемого «модернизация с помощью погрузчика», то есть полной замены компьютера. |