Использует ли Windows XP вызовы функций файловой системы NTFS для чтения/записи в файл подкачки (pagefile.sys)?

Если да, то как вы оправдываете понесенные накладные расходы (ведение журналов и т. д.)? Если нет, то почему файл подкачки фрагментируется? Кроме того, улучшит ли увеличение размера кластера производительность файла подкачки (свободное пространство кластера не является проблемой)?


person Community    schedule 18.11.2008    source источник
comment
FWIW, я думаю, что это хороший вопрос. Для сравнения, mm/swapfile.c в Linux запрашивает у файловой системы экстенты файла, а затем обращается к блокам непосредственно на базовом устройстве. С другой стороны, это не имеет накладных расходов на файловую систему; с другой стороны, файлы подкачки не могут быть изменены во время использования.   -  person ephemient    schedule 13.01.2010


Ответы (2)


Вы можете увидеть filemon или procmon (sysinternals.com), чтобы увидеть, как ОС записывает в файл подкачки, поэтому она должна использовать соответствующую семантику файловой системы.

Если вы выполняете подкачку из-за нехватки памяти, вы уже проиграли битву за производительность, и накладные расходы не будут значительно увеличивать потери (но они будут означать, что ваша файловая система останется неповрежденной). Если подкачка не критична для производительности, кого волнует незначительное снижение производительности для ведения журнала?

Размер кластера вряд ли будет проблемой, потому что он просто сопоставляется с индексом-> хранилищем на диске. Файл подкачки очень редко меняет размер, поэтому индекс вряд ли изменится.

person James Ogden    schedule 18.11.2008

Система использует вызовы файловой системы для доступа к файлу подкачки, как и должно быть. Накладные расходы на ведение журнала и тому подобное практически равны нулю. Журналирование вступает в силу только при изменении структуры файловой системы, а не для отдельных операций чтения или записи. По умолчанию XP использует полуфиксированный файл подкачки с начальным размером, равным 1,5 размера физической памяти. В нормальных условиях файл подкачки никогда не будет меньше этого размера. Если этот размер достаточен, а при разумном размере оперативной памяти это почти всегда так, размер файла подкачки никогда не будет изменен. Только в этом маловероятном случае для файла подкачки будут выделены новые кластеры и появится возможность фрагментации. После перезагрузки или ранее все расширения файла подкачки будут освобождены, и он вернется к исходному размеру. В нормальных условиях фрагментации не происходит. Если файл подкачки изначально не фрагментирован и изменение размера не происходит, файл подкачки НИКОГДА не будет фрагментирован.

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

person Larry Miller    schedule 12.01.2010