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

Фрагментация файла подкачки: факт или вымысел?

Речь идет о Windows, но я уверен, что это применимо и к другим ОС.

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

Действительно ли это даст какие-то преимущества в производительности? В конце концов - доступ к файлу подкачки в любом случае осуществляется случайным образом, что может быть еще более рандомизированным? И если вы рассматриваете отдельный диск для файла подкачки, тогда вам было бы гораздо лучше вложить свои деньги в больший объем оперативной памяти. Если, конечно, вам не достанется бесплатный диск.

Итак - есть ли смысл бороться с фрагментацией файла подкачки или нет?

Фрагментация файла подкачки будет существенным фактором только в крайних случаях. Фрагментация является одним из факторов, когда большие файлы читаются последовательно, но с файлом подкачки такого почти никогда не бывает. Доступ к файлу подкачки осуществляется небольшими блоками размером не более 64 КБ, и он обычно смешивается с доступом к другим файлам. Неважно, фрагментирован файл подкачки или нет, головки диска в любом случае будут перемещаться.

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

В большинстве случаев это просто пустяк. Неправильные попытки решить проблему могут и часто вызывают серьезные проблемы.

Коротко: да

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

Также имейте в виду, что фрагментация файлов - это проблема только для вращающихся жестких дисков, я понимаю, что если файл фрагментирован на SSD, это не проблема с преформой (дефрагментатор на SSD только сделает его короче). Фактическое отсутствие преформ в значительной степени зависит от того, насколько сильно оно фрагментировано и оборудования вашей системы (время поиска на жестком диске и как часто система должна обращаться к файлу подкачки), но, учитывая, насколько легко устранить эту проблему, это не должно быть проблемой. .

Ссылки: MSDN в файле подкачки Марк говорит о виртуальной памяти ( Файл подкачки )

Это, конечно, не проблема в системах Linux, где подкачка всегда представляет собой раздел со специальной файловой системой для файлов подкачки. Очевидно, это возможная проблема в Windows, и я думаю, что это возможная проблема и в Mac OS X, поскольку, похоже, для подкачки используются файлы.

TBH, у меня нет никаких неопровержимых фактов, подтверждающих мою точку зрения, но у меня есть неподтвержденные данные, свидетельствующие о том, что лучше, чтобы ваш своп не менял размер, потому что изменение размера свопа, похоже, действительно замедляет работу окон, пока оно происходит. Размер диска, который вы хотите для подкачки, всегда будет меньше, чем тот, который в настоящее время считается средним диском, поэтому старый диск, как правило, будет более чем достаточно большим для подкачки. Так что, возможно, это хорошее использование для более старого диска при обновлении до последнего диска емкостью 1 ТБ.

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

Вы должны различать внутреннюю и внешнюю фрагментацию:

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

Внутренняя фрагментация происходит при подкачке страниц, потому что размер каждого кадра одинаков, но не каждая страница заполнена, некоторые страницы не используются до предела (= внутренняя фрагментация). Эта проблема всегда будет существовать при использовании подкачки.

Но я думаю, вы имеете в виду возникновение внутренней фрагментации в файловой системе (блоки файловой системы используются не полностью), которая содержит фреймы страниц. Этого можно избежать, выбрав размер блока в файловой системе равным размеру страницы.

Ваш HD должен быть сильно фрагментирован для любых реально наблюдаемых здесь потерь производительности, но, тем не менее, теория все еще верна. Смысл в том, что вы помещаете файл подкачки на самый быстрый диск (по очевидным причинам) и храните его все в непрерывном физическом месте, чтобы время поиска не так сильно влияло на игру. Для сервера или рабочей станции энтузиаста это имеет смысл; для типичного офисного ПК с одним диском / одним разделом у вас нет опции «самый быстрый диск», и у вас всегда будет время поиска, когда головы перемещаются между фактическими файлами и файлом подкачки, так что это скорее миф есть.

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

Насчет "бесплатных дисков" ну что вы считать что мы делаем со всеми этими старыми жесткими дисками на 8 ГБ, валяющимися в офисе? ;) В остальном да, оперативная память в наши дни дешевая (для настольных компьютеров), и это лучший вариант.

Нет, нет смысла бороться с фрагментацией файла подкачки, если это не требует времени, денег или усилий.

Я придумал несколько длинных аналогий, но решил пощадить вас - если я не передумаю :)

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

Я часто говорил Windows создать файл подкачки на другом диске, который был только что дефрагментирован (таким образом, будет создан новый файл), и я не могу сказать, что заметил какую-либо разницу в повседневных операциях.

Для респондента, который рекомендовал "пользователям просто нужно" закрыть некоторые приложения: Bzzzzzt !! Неправильный ответ в любом контексте.

Если на машине «достаточно» ОЗУ, она будет работать намного быстрее с «миллионами» открытых окон, чем машина с нехваткой ОЗУ, независимо от того, является ли файл подкачки фрагментированным, монолитным, декафеинизированным или обесцвеченным.

Любые деньги, потраченные на дефрагментатор, который может обрабатывать файлы подкачки, лучше потратить на оперативную память. Удивительно, насколько неактуальным становится файл подкачки, когда вы обновляете машину с 256 МБ ОЗУ до 2 ГБ!

Фрагментация файла подкачки действительно может произойти, только если вы позволите файлу подкачки изменять размер. Установка фиксированного размера прекратит фрагментацию, появляющуюся с течением времени по мере того, как файл растет и сжимается ...

Однако я бы предположил, что файлы подкачки больше не нужны. Лучше обойтись без «дополнительной памяти», которую предоставляют файлы подкачки, и заставить пользователя согласиться с тем, что вместо этого им нужно закрыть некоторые приложения. Вы больше не получите эту 10-30-секундную паузу, когда приложение должно загружаться из подкачки и записывать память другого приложения для подкачки ...