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

Как исследовать фрагментацию виртуальной памяти в Windows 2000?

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

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

Раньше я использовал монитор адресного пространства (http://www.hashpling.org/asm/) и ProcMon, чтобы помочь мне понять эти типы проблем, но они не поддерживаются в Windows 2000. У кого-нибудь есть идеи для Windows 2000?

Помимо очевидного, обновление ОС. (Поверьте мне, это совсем другой бой) Спасибо.

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

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