FAQ по файлу подкачки
Что такое файл подкачки?
Файл подкачки (swap-файл, виртуальная память) - это файл, который служит "продолжением" оперативной памяти. Все программы во время своей работы занимают какой-то объем оперативной памяти: одни - больше, другие - меньше. Если одновременно запустить несколько приложений, занимающих большой объем оперативной памяти, то может получиться так, что физического объема установленной оперативки не хватает под нужды всех программ. Тогда Windows переносит данные неактивных программ из оперативной памяти в виртуальную. При переходе в "засвопированную" программу, данные из файла подкачки переносятся в оперативку. Это утрированная схема работы, по которой, однако можно понять процессы, происходящие в памяти компьютера.
Физическим воплощением файла подкачки является файл win386.swp в каталоге Windows для Win9x/ME и файл pagefile.sys в корне диска, куда установлена операционная система, для WinNT/2000/XP.
Как определить требуемый объем swap-файла?
При определении объема файла свопинга необходимо исходить не из объема RAM, а из задач, выполняемых на данном компьютере. Для этого нужно запустить какую-либо программу мониторинга, умеющую регистрировать объем swap-файла (например, встроенный в Windows "Системный монитор") и заняться типичной для данного компьютера работой. Максимальный объем файла свопинга, зарегистрированный в течении этого сеанса, и будет требуемым размером. Если вы активно используете DOS'овские программы, то приготовьтесь к тому, что файл свопинга может иметь немалый размер: ограничить объем памяти, выделяемый DOS'овским приложениям, конечно можно (это делается в свойствах ярлыка), но обычно этого никто не делает.
Где располагать файл подкачки?
Если в системе несколько винчестеров, то на самом быстром из них. Если винчестер разбит на несколько разделов, то на разделе, расположенном в начале диска (это может не работать для ноутбуков, винчестеры которых могут располагать данные не "по цилиндрам", а "по поверхностям").
Как зафиксировать размер файла подкачки?
Windows 9x/Me активно использует файл подкачки, значительно разгружая оперативную память компьютера. Microsoft сделала файл подкачки динамическим, т.е. размер файла изменяется в зависимости от нужд Windows, хотя наилучшая производительность системы достигается при статическом файле. Причин для этого множество - Windows не требуется каждый раз изменять размер файла подкачки, исчезает фрагментация и т.д. Для того чтобы изменить параметры файла подкачки, щелкните правой кнопкой мыши на значке "Мой компьютер" и выберите Свойства. Перейдите на вкладку Производительность и щелкните кнопку Виртуальная память (Properties->Performance->Virtual Memory). В появившемся окне выберите "Параметры виртуальной памяти устанавливаются вручную" (Let me specify my own virtual memory settings). Если у вас установлено более одного жесткого диска, рекомендуется перенести файл подкачки с диска, где у вас установлена Windows на другой жесткий диск, более быстрый. Это должно значительно увеличить производительность системы. Теперь установите размер файла виртуальной памяти. Рекомендуемый размер - хотя бы в 2,5 раза больше, чем объем оперативной памяти. Перезагрузите систему и запустите утилиту дефрагментации для того, чтобы быть уверенным, что файл подкачки не фрагментирован. А если вы пользуетесь дефрагментатором сторонних производителей, в опциях укажите, чтобы файл подкачки располагался в начале диска.
Надо-ли фиксировать максимальный размер файла подкачки?
Нет, ни в коем случае. Необходимо зафиксировать только минимальный размер (в соответствии с вышеприведенными рекомендациями). Фиксирование максимального размера не приводит к росту производительности, но зато является потенциальным источником глюков из-за нехватки памяти.
Ссылки (встречающиеся в некоторых FAQ) на то, что отсутствие фиксации MAX приведет к фрагментации swap-файла не состоятельны. При правильном выборе MIN 99.9% времени свопинг не будет превышать этой величины и файл свопинга будет дефрагментирован. В тех же редких случаях, когда понадобится больший объем виртуальной памяти, файл свопинга действительно станет фрагментированным, но только до тех пор, пока работает приложение, которому требуется столько памяти. Как только это приложение будет снято, файл свопинга автоматически уменьшится до размера MIN, причем будет выкинут фрагментированный конец файла и swap-файл снова станет дефрагментированным.
Как дефрагментировать файл подкачки?
Стандартный Windows'овский Defrag не умеет перемещать файл свопинга. Поэтому надо использовать утилиты других фирм. ИМХО, удобнее всего использовать Speed Disk из состава Norton Utilities (разумеется, как можно более новых).
У меня слишком большой файл подкачки...
Для компьютеров, оснащённых более чем 64 MB оперативной памяти, можно порекомендовать следующий "трюк": в файле system.ini, который находится в каталоге C:Windows, в разделе [386Enh], необходимо дописать строку ConservativeSwapfileUsage=1. Это позволит системе не создавать файл подкачки без необходимости. Например, со 128 MB оперативной памяти можно будет открыть до трёх офисных приложений, таких, как Word, Excel и Internet Explorer, притом, что размер файла подкачки останется равным нулю. То же самое произойдёт при запуске Quake 3.
Имеет-ли смысл использовать ключ ConservativeSwapfileUsage=1?
Этот ключ имеет смысл использовать в ЕДИНСТВЕННОМ случае - если на винчестере катастрофически не хватает места. Во всех остальных случаях использовать его не имеет смысла: этот ключ действительно уменьшает размер swap-файла, но при этом снижает эффективность подсистемы свопинга, что ухудшает общую производительность Windows.
Утверждение, что этот ключ уменьшает объем свопинга и, следовательно, кол-во обращений к диску (что увеличивает производительность), не соответствует действительности - объем собственно свопинга при использовании данного ключа не меняется, меняется алгоритм работы с файлом свопинга. Разница объясняется тем что при наличии ключа (свопинг в стиле Win-95) выделение места в файле производится по мере необходимости, а при отсутствии ключа (свопинг в стиле Win-98) Windows заранее резервирует место в файле свопинга (около 4 Mb, если не ошибаюсь) для каждой задачи. При этом реальная запись в swap-файл не производится и дополнительных обращений к диску нет.
Так как все-таки оптимально настроить файл подкачки?
- Если у Вас несколько винчестеров (не разделов, а именно винчестеров), то установка файла подкачки на другой винт, чем установлена операционная система, обычно значительно ускоряет быстродействие.
- Если у Вас несколько винчестеров - то файл подкачки ставится на самый быстрый из них.
- Если у Вас несколько разделов на винте, то файл подкачки надо ставить на самый первый из них - физически расположенный самым первым, так как доступ к этим областям винта наиболее быстрый.
- Целесообразно ограничить минимальный объем файла подкачки, чтоб предотвратить излишнюю его фрагментацию примерно объемом 1-1.5 объема вашей оперативной памяти (впрочем если Вы пользуете графику или напрягаете компьютер серверами баз данных то можно поставить размером 2-3 объема RAM).
- Практически не имеет резона ограничивать максимальный объем, так как это может привести к сбою программ из-за нехватки памяти, а если уж и ограничивать, то никак не меньше чем 4 объема RAM.
- После этих настроек компьютер надо перезагрузить и запустить какой-нибудь дефрагментатор (типа Norton Speed Disk) чтоб полностью дефрагментировать файл подкачки и поместить его в начало раздела.
- И последнее, помните, что после выключения компьютера файл подкачки может содержать Ваши пароли, логины, остатки Вашей конфиденциальной информации и т.п., так что достаточно "образованные дяди" из числа Ваших доброжелателей или компетентных органов, загрузившись в ДОС и покопавшись в объедках Ваших программ в файле подкачки могут найти очень интересные вещи...