VS2010 активно выгружает себя из физической памяти
От:
Аноним
Дата:
26.06.10 19:12
Оценка:
Всем привет!
У меня постоянно возникает следуюшая проблема с VS2010:
После того как я переключусь из VS в другое приложение VS начинает активно свопится. Смотрю Process Explorer'ом и видно как WorkingSet стремительно уменьшается до 100 метров.
В Perfmon так же видно уменьшение working set и увеличение операций page write.
Это всё приводит к тому, что когда я возращаюсь в VS первые несколько минут она активно из свопа всё читает, что приводит к сильным торможениям.
Сразу скажу, что памяти у меня относительно много, на машине 6 гигов из них 2 гига доступно (смотрел perfmon и procexp).
Ни одно другое приложение себя так не ведет, только студия. Т.е. когда я переключаюсь в ProcExp видно что все сохраняют свой WorkingSet и только студия всё освобождает и освобождает.
OS: Windows Server 2008 R2 x64, process scheduling переключен в Programs, LargeSystemCache пробовал менять — не помогает
Так же пробовал задавать minimum working set для процесcа VS — так же не помогает.
Уже не знаю что и попробовать.
Re: VS2010 активно выгружает себя из физической памяти
От:
Аноним
Дата:
26.06.10 22:58
Оценка:
А>6 гигов из них 2 гига доступно А>Уже не знаю что и попробовать.
отключить своп?
Re[2]: VS2010 активно выгружает себя из физической памяти
От:
Аноним
Дата:
27.06.10 04:22
Оценка:
Здравствуйте, Аноним, Вы писали:
А>отключить своп?
мне своп нужен для дампов
Re: VS2010 активно выгружает себя из физической памяти
А VisualAssist установлен? Кажется у него есть опция выгружать символы из памяти, когда вы переключаетесь на другое приложение.
... << RSDN@Home 1.2.0 alpha 4 rev. 1446>>
Let it be! — Давайте есть пчелу!
Re[2]: VS2010 активно выгружает себя из физической памяти
От:
Аноним
Дата:
27.06.10 15:42
Оценка:
Здравствуйте, trophim, Вы писали:
T>А VisualAssist установлен? Кажется у него есть опция выгружать символы из памяти, когда вы переключаетесь на другое приложение.
Не, assist не стоит, стоит Resharper
Но при его выгрузке ситуация не меняется
Re: VS2010 активно выгружает себя из физической памяти
Здравствуйте, Аноним, Вы писали:
А>У меня постоянно возникает следуюшая проблема с VS2010: А>После того как я переключусь из VS в другое приложение VS начинает активно свопится. Смотрю Process Explorer'ом и видно как WorkingSet стремительно уменьшается до 100 метров.
Такое поведение является общим для всех процессов.
А>В Perfmon так же видно уменьшение working set и увеличение операций page write.
Совершенно верно. Неактивным приложениям уменьшают working set.
Однако уменьшение WS не означает, что страницы будут тут же записываться в своп. Некоторое время они еще поживут как кандидаты на возврат в WS. И только если они понадобятся другим процессам, их отберут окончательно и запишут в своп, причем асинхронно.
А>Это всё приводит к тому, что когда я возращаюсь в VS первые несколько минут она активно из свопа всё читает, что приводит к сильным торможениям.
Совершенно верно, если прошло достаточно много времени и были запущены или просто работали другие процессы, емкие по памяти.
А>Сразу скажу, что памяти у меня относительно много, на машине 6 гигов из них 2 гига доступно (смотрел perfmon и procexp).
Вот это не совсем понятно. Посмотри, сколько свободной памяти у тебя при переходе с VS на другое приложение и при возврате обратно. Приведи здесь эти данные.
А>Ни одно другое приложение себя так не ведет, только студия. Т.е. когда я переключаюсь в ProcExp видно что все сохраняют свой WorkingSet и только студия всё освобождает и освобождает.
Все освобождают. Объяснение более подробное см. тут
(впрочем, оно, конечно, не мое, я просто изложил)
А>OS: Windows Server 2008 R2 x64, process scheduling переключен в Programs, LargeSystemCache пробовал менять — не помогает А>Так же пробовал задавать minimum working set для процесcа VS — так же не помогает.
И не поможет. Это лишь рекомендация, не более.
With best regards
Pavel Dvorkin
Re[3]: VS2010 активно выгружает себя из физической памяти
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>отключить своп? А>мне своп нужен для дампов
Все же в порядке эксперимента отключи своп. Дампы отключи тоже.
А вообще у меня сильное подозрение, что причиной 2008 Server. Может он, как сервер, имеет иную стратегию записи страниц в своп ? По идее ему нужно максимальную устойчивость обеспечить, а это значит, что модифицированные страницы надо поскорее записать. Но это лишь гипотеза.
With best regards
Pavel Dvorkin
Re[4]: VS2010 активно выгружает себя из физической памяти
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>А вообще у меня сильное подозрение, что причиной 2008 Server.
У меня 2008R2. 2008я вижуалка такого не вытворяет. Впрочем ни одно приложение таким не страдает. Памяти занято 1.8 гига из 3х.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: VS2010 активно выгружает себя из физической памяти
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Такое поведение является общим для всех процессов.
Windows Server 2008 R2 x64.
У меня devenv.exe (VS2008) с WS 283Mb при сворачивании/переключении ни на грамм не изменяет размер WS. Как и Janus.exe, Far.exe, Outlook.exe, MMC.exe (64-bit)
Только FireFox 3.6.6 при каждом сворачивании (но не при переключении) сбрасывает WS с 38Mb до 7Mb.
Остальные и не чешутся.
А всё потому, что: http://msdn.microsoft.com/en-us/library/ff190924%28VS.85%29.aspx
In releases greater than or equal to Vista SP1 and Windows Server 2008 SP1 contiguous memory logic is changed such that working set trimming is much more rare than in previous releases. Also, in these newer releases, if the memory manager trims working sets, the working sets will not be emptied; only shared pages will be trimmed. For processes whose working sets comprise mostly of private pages, the overall WS size may not dramatically change as it would before.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: VS2010 активно выгружает себя из физической памяти
CC>In releases greater than or equal to Vista SP1 and Windows Server 2008 SP1 contiguous memory logic is changed such that working set trimming is much more rare than in previous releases. Also, in these newer releases, if the memory manager trims working sets, the working sets will not be emptied; only shared pages will be trimmed. For processes whose working sets comprise mostly of private pages, the overall WS size may not dramatically change as it would before.
Спасибо, буду знать.
With best regards
Pavel Dvorkin
Re[4]: VS2010 активно выгружает себя из физической памяти
Здравствуйте, Аноним, Вы писали:
А>Уже не знаю что и попробовать.
Если кому интересно, то удалось победить последствия. Причину, к сожалению, так и не выяснил.
Победил путем регулярного пробега по всей комиченной памяти и чтением 1-го байта с каждой страницы.
Оформил в виде extension для vs 2010: Unswap Memory
Может ещё кому-нибудь пригодится