Monday, January 22nd, 2018

Влияние RAM на общую производительность системы

Published on Февраль 18, 2009 by   ·   Комментариев нет

Практически все знают, что я занимаюсь компьютерами, поэтому друзья и родные часто задают мне вопросы, связанные с серверами, которые они администрируют на работе, или вопросы, касающиеся их домашних компьютеров. Один из наиболее частых вопросов – это: “Какие изменения в конфигурации мне необходимо произвести за не очень большие деньги, чтобы мой компьютер работал лучше?” В большинстве случаев ответом на этот вопрос является то, что им необходимо купить больше памяти для их компьютера. В этой статье я объясню, почему память играет такую большую роль в общей производительности компьютера.

Для начала

Перед тем, как я начну, я хочу обратить внимание, что в этой статье делается пара допущений. Во-первых, я предполагаю, что ваш компьютер работает под управлением или Windows 2000 или Windows XP, или Windows Server 2003 на 32-битном компьютере. Во-вторых, что компьютер относительно новый, и не слишком перегружен. Информация в этой статье может оказаться неверной для других версий Windows, 64-битных систем или для сильно устаревших компьютеров.

Windows и память

Одна из основных причин, по которой память такой важный ресурс, заключается в том, что Windows активно ее использует. Когда была создана первая версия Windows, память было очень сложно приобрести. Память была очень дорогой, и даже если вы могли себе ее позволить, компьютеры в то время были очень ограничены в возможностях ее использования. Даже совсем недавно в середине 90-х, память по-прежнему была большой проблемой. Например, мой первый Pentium компьютер содержал 8 MB RAM и поддерживал максимум 64 MB. Это может выглядеть смешно по сегодняшним стандартам, но в то время цена за Мб памяти составляла свыше $50.

Высокие цены и ограниченные возможности материнских плат сделали память предметом дефицита. В результате этого Microsoft всегда разрешала Windows использовать виртуальную память в качестве расширения. Идея виртуальной памяти заключается в том, что т.к. пространство на жестком диске стоит гораздо дешевле за мегабайт, чем физическая RAM, то Windows может использовать пространство жесткого диска, для того, чтобы компенсировать нехватку в системной оперативной памяти RAM.

Виртуальная память – это идеальное решение в прошлом для Windows, но существовали некоторые проблемы при использовании виртуальной памяти, которые актуальны и на сегодняшний день. Одна из проблем при использовании виртуальной памяти заключается в том, что жесткий диск гораздо медленнее, чем физическая память. По сути, время доступа к памяти измеряется в наносекундах, биллионных секунды. Время доступа к жесткому диску с другой стороны измеряется в миллисекундах или тысячных секунды.

Другая проблема при использовании виртуальной памяти заключается в том, что ее нельзя использовать напрямую. Например, предположим, что страница памяти записана в виртуальной памяти, а затем позднее компьютеру необходимо получить доступ к данным, хранящимся на этой странице. Компьютер не может напрямую обратиться к данным на жестком диске. Вместо этого, эта страница данных должна быть скопирована в RAM до того, как компьютер сможет работать с данными. Этот процесс известен как разбиение памяти на страницы.

Как вы можете догадаться, разбиение памяти на страницы замедляет систему, потому что компьютеру необходимо остановиться и ждать, пока данные будут скопированы с жесткого диска в системную память. В действительности разбиение памяти на страницы еще более неэффективно, чем вы можете себе это представить. Здесь есть еще проблема. Причина, по которой мы используем виртуальную память в первую очередь, заключается в том, что компьютеру не хватает RAM по поддержки нужд операционной системы. Если системная память заполнена, то компьютер не может просто скопировать страницу данных с жесткого диска в оперативную память. Теперь некуда поместить данные. В этом случае операционная система должна определить страницу данных в RAM, которая в текущий момент времени не используется, и переместить эти данные на жесткий диск, для того чтобы освободить пространство для данных, которые будут перемещены с жесткого диска в системную память.

Если вы думаете, что разбиение памяти на страницы неэффективно, то немного подождите, дальше — хуже. Разбиение памяти на страницы – это процесс, которым необходимо управлять. Компьютер должен использовать память, для того чтобы отслеживать использование памяти. Все верно, система должна уделить некоторую память для записи информации о тех страницах, которые находятся в RAM, и тех, которые находятся в виртуальной памяти. Также система должна затрачивать значительное число циклов CPU для перемещения данных между физической RAM и виртуальной памяти. Или если проще, то компьютеры работают гораздо быстрее, когда они не используют разбиение памяти на страницы.

Хорошо, пришло время для реальной проверки. В начале этой статьи я упоминал, что физическая память часто является элементом, который необходимо обновить, для того чтобы улучшить производительность системы с минимальными финансовыми затратами. Надеюсь, теперь вы понимаете, что причиной этого является то, что добавление физической RAM снижает зависимость Windows от виртуальной памяти, что в свою очередь освобождает ресурсы CPU и диска, в результате чего компьютер работает более эффективно. В этом случае вы можете предположить, что лучшее решение заключается в добавлении большого количества RAM в вашу систему и полностью отключить использование виртуальной памяти.

Хотя конечно это и вариант, но это не всегда хорошая идея отключить использование Windows виртуальной памяти. Windows был спроектирован для использования виртуальной памяти, и поэтому операционная система ожидает, что виртуальная память будет доступна для нее. Windows имеет тенденцию работать неправильно, если вы отключите виртуальную память.

Вы может предположить, что чем больше физической памяти вы установите на вашей машине, тем меньше виртуальной памяти ей понадобиться. Виртуальная память существует только для того, чтобы компенсировать нехватку RAM, верно? Хорошо, но здесь вещи становятся немного запутанными. Идея, что добавление дополнительной RAM в вашу систему снизит потребности машины в виртуальной памяти, только наполовину верна.

Вот какая вещь. Как основное правило Microsoft рекомендует, чтобы вы конфигурировали использование виртуальной памяти компьютера, основываясь на объеме физической RAM, которая установлена на машине. Более конкретно, Microsoft рекомендует, чтобы ваша машина имела в 1.5 раза больше виртуальной памяти, чем физической. Это означает, что если ваша машина имеет 512 MB RAM, то Windows ожидает, что она получит доступ к минимум 768 MB виртуальной памяти.

Теперь предположим, что вы решили, что 512 MB RAM недостаточно для вашей работы, поэтому вы решили усовершенствовать вашу машину и установить 1 GB RAM. Сделав это, вы в действительности повысили требования Windows к виртуальной памяти. Теперь Windows будет ожидать получить доступ к 1.5 GB RAM.

Это еще не все. Просто потому что вы увеличили размер страничного файла машины (файл используемый для виртуальной памяти), не означает, что машина использует страничный файл более интенсивно. Обычно, верно обратное. Установка большего количества памяти в машину приводит к тому, что Windows не должна вообще что-либо разбивать на страницы. Даже если Windows по-прежнему должен использовать виртуальную память для некоторого расширения, дополнительная память, которая будет установлена, поможет подстраховать, что страницы, относящиеся к приложению, запущенному в настоящий момент, не подлежать разбиению. Это помогает приложению быть более надежным и производительным.

Существует ли предел?

Как вы можете вспомнить в начале этой статьи, я упоминал, что информация в этой статье применима только к 32-битным системам, и не обязательно к 64-битным системам. Правда заключается в том, что даже 64-битные системы используют виртуальную память, но 32-битные и 64-битные версии Windows используют совершенно различные модели памяти.

В действительности 32-битные системы должны работать только с 32-битными данными, что означает, что они могут адресовать только до 4 GB RAM. 64-битные системы с другой стороны теоретически могут адресовать к 16 exaбайт RAM (это более 16,000,000 GB RAM). В действительности, существует всего несколько 64-битных систем, которые поддерживают 16 exabytes RAM. Построение машины, которая способна поддерживать такой огромный объем памяти будет очень дорого. Для снижения этих затрат многие производители снижает пределы адресного пространства RAM, которое иногда колеблется между 4 GB — границей 32-битных машин и теоретическими 16 exabytes для 64-битных систем. Большинство существующих 64-битных машин ограничивают физический предел RAM между 8 GB и 256 TB.

Так что этот 4 GB предел значит для 32-битных машин, работающих под управлением операционной системы Windows? Windows спроектирован для адресации 4 GB пространства памяти. Windows разбивает 4 GB доступного адресного пространства на два отдельных 2 GB адресных пространства. Одно из 2 GB адресных пространств используется операционной системой Windows, а другое 2 GB адресное пространство используется для процессов пользователя (приложений).

Существует способ изменить то, как Windows размещает адресные пространства. Вы должно быть видели редкую установку Windows Server, при которой используется ключ /3GB в файле BOOT.INI на сервере. Ключ /3GB изменяет размещение памяти так, что Windows получает только 1 GB адресного пространства, а процессам пользователя отводиться 3 GB адресного пространства. Такое разбиение адресного пространства помогает Windows лучше удовлетворять высоким требованиям таких приложений как Exchange Server. Однако, конфигурация Windows для работы с 2 GB адресным пространством имеет свои причины. Если вы используете ключ /3GB switch, то вы можете серьезно повлиять на возможность Windows одновременно запускать несколько приложений. Я бы советовал вам никогда не использовать ключ /3GB на небольших бизнес серверах или контроллерах домена.

Помня все это, вопрос на миллион долларов будет – как виртуальная память используется в системе, которая имеет 4 GB физической RAM? К сожалению, я не получил прямого ответа от Microsoft, и я не обладаю компьютером, который имеет 4 GB RAM, поэтому в ответе на этот вопрос я полагаюсь на логику. Если у кого-нибудь есть определенный ответ на этот вопрос, пожалуйста, напишите мне электронное письмо, т.к. мне очень интересно было бы знать.

Мне кажется, что если Windows может использовать только 4 GB адресного пространства, то нет причин подключать виртуальную память на компьютере с 4 GB RAM. Даже если потребуется некоторый малый объем виртуальной памяти, не существует способов для использования этой виртуальной памяти. При подключении виртуальной памяти система должна будет иметь 6 GB виртуальной памяти и 4 GB физической памяти – всего 10 GB адресного пространства. Это хорошо для 64-битной системы, но это не будет работать на 32-битной системой с ограничением адресного пространства в 4 GB.

Заключение

В этой статье я объяснил, что память может иметь большое влияние на общую производительность системы. При увеличении физической RAM снижается зависимость машины от виртуальной памяти. Чем меньше компьютер зависит от виртуальной памяти, тем более эффективно работает машина.

www.windowsnetworking.com


Смотрите также:

Tags: ,

Readers Comments (Комментариев нет)




Да человек я, человек! =)

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]