В старые добрые DOS-времена пределом возможностей для памяти были 640 килобайт.

Сегодня, когда вместимость чипсетов поздравительных аудиооткрыток превышает возможности компьютеров прошлого, трудно поверить, что много лет назад мы проводили кучу времени, сжимая приложения, чтобы вместить их в столь тесные рамки. У нас были специальные карты, которые позволяли обращаться к более обширной памяти, и специальные программы “свопинга” (помните Quarterdeck?), позволяющие запускать более объемные приложения (а самые пожилые из нас помнят даже память в 64 килобайта, которая была у первых компьютеров Apple).

Сегодня мы приближаемся с следующему барьеру для памяти, только на этот раз он чуть выше — 4 гигабайта. К такому объему могут получать доступ более 32 процессоров. Нехватка памяти — это всегда проблема, особенно для серверов, и у меня возникает чувство, что все это уже было со мной.

Всего несколько лет назад 4 гигабайта казались огромным объемом. Нам не о чем было беспокоиться, а операционные системы наших настольных ПК чувствовали себя вполне комфортно. Затем Microsoft решила порадовать нас Vista, память стала гораздо дешевле, а приложения сильно выросли. И еще до того, как мы это заметили, нам опять стало тесно в памяти.

Главные движущие силы этих растущих размеров приложений — виртуализация и серверы баз данных. Виртуализация требует памяти особенно много. Если вы хотите испытать преимущество этой технологии, то должны оснастить свой сервер большим объемом ОЗУ и дисков. А чем больше ОЗУ вы встраиваете в серверы баз данных, тем больше им это нравится.

Следующий серьезный потребитель памяти — это видеокарта и то, как она взаимодействует с системной памятью. Некоторые видеокарты владеют памятью вместе с ПК, а это значит, что когда вы используете приложения с интенсивной графикой, то отнимаете некоторый её кусок от всех остальных приложений. Об этом мы уже слышали. Но большинство из нас не уделяло особого внимания видеокартам в наших серверах, поскольку мы не думали, что они отберут себе много “лошадиных сил”. В конце концов мы же не собирались играть в GTA4 на своих серверах!

Но у этой проблемы есть решение: запускайте 64-разрядные версии Windows, Linux или даже Mac OS, которые прекрасно могут работать с памятью больше 4 Гб. Здесь нет ничего нового для Mac или Linux, в которых 64-разрядные операционные системы имеются уже много лет. Сегодня только в одном варианте существуют лишь некоторые приложения, например Microsoft Exchange 2007. Другие, такие как Oracle 11g, имеются в двух вариантах — 32- и 64-битном.

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

“Требования Microsoft на создание драйверов очень неоднозначны, — рассказывал он мне. -- И в то время, пока мы были завязаны на работу с ними, они постоянно добавляли и изменяли тесты, даже не информируя нас, что существенно удорожало и удлиняло срок разработки”.

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

Так что лучше потратьте некоторое время на планирование стратегии, если чувствуете, что вам не хватает памяти. Повнимательней присмотритесь к новой версии Windows Server 2008 64b и постарайтесь понять, будет ли она работать на вашем оборудовании. Посмотрите и Apple Xserve: эта система может стать более экономичной альтернативной для запуска виртуальных машин на 64-разрядной платформе.