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

Как я могу запретить Windows Server 2003 обрезать рабочий набор процесса?

У меня есть две разные, хотя я считаю, связанные проблемы, связанные с тем, как Windows Server 2003 обрабатывает рабочие наборы процессов.

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

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

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

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

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

Тем не менее, я постараюсь ответить на ваш вопрос:

Вы описываете базовый фундаментальный механизм того, как была разработана Windows. В дефолт поведение кнопки «Свернуть» в окне графического интерфейса будет вызывать ShowWindow (hWnd, SW_MINIMIZE), которое обрезает рабочий набор процесса - конец истории.

Авторы этого плохо спроектированного приложения, к которому вы стремитесь мог выбрали перехват сообщения WM_SYSCOMMAND, которое возникает, когда пользователь нажимает кнопку Свернуть окно и вызывает ShowWindow (hWnd, SW_SHOWMINIMIZED) (который не обрезает WS) вместо ShowWindow (hWnd, SW_MINIMIZE), но они этого не сделали. Если вы не можете связаться с разработчиками этого приложения и попросить их попробовать еще раз, на этот раз с фактическим сервер приложение, то вы застряли с таким поведением.

Гарри Джонстон ответил: «Нет ... отсутствие файла подкачки НЕ решает проблему ...

По сути, НЕТ СПОСОБА запретить окнам использовать файл подкачки ... и когда я говорю, что нет ... Я имею в виду НИКАКОГО СПОСОБА ... он будет пересылаться на диск независимо от того, сколько вы этого не хотите.

Если вы скажете ЛЮБОЙ версии окон от Windows NT до 8.1 и / или их аналогов НЕ использовать файл подкачки, угадайте, что произойдет, когда вы начнете приближаться к точке исчерпания памяти? (Я видел, как это происходило на каждой настольной И серверной версии Windows)

Windows будет БЛОКИРОВАТЬСЯ примерно на 5-10 секунд .. затем вернется и, кажется, рабочий файл .. что он сделал? Он только что создал временный файл аварийной страницы на системном томе, где находятся окна, и будет продолжать использовать их, пока вы не перезагрузите систему.

Он часто будет делать это ПРАВИЛЬНО, в то же время, когда вы получаете всплывающее окно с ошибкой, что у вас не хватает ресурсов или памяти (он должен просто сказать, что память, поскольку системные ресурсы в 64-битных окнах теперь практически неограничены) ....

Фактически, отключение системы файлов подкачки вызовет у вас больше проблем, чем отсутствие одного такого количества настольных и серверных приложений ОЖИДАЙТЕ, чтобы увидеть файл подкачки, и ОЖИДАЙТЕ, чтобы выгружать память .. почему? Просто .. два слова: ОБЯЗАТЕЛЬНО.

Когда программа загружается, она может либо запрашивать память по ходу работы, надеясь, что она доступна ... либо может выделить до 2 ГБ памяти в пользовательском режиме в 32-битной ОС, 4 ГБ для 32-битного приложения в 64-битной ОС или до 128 ТБ для 64-битная на 64-битной ОС

Итак, если на вашем сервере 16 ГБ памяти, и вы загружаете базу данных (и большинство из них, как правило, используют собственное управление памятью и внутреннее кэширование), они часто выделяют 1,2,4 или даже 8 ГБ памяти ... при условии, что ему может не понадобиться 8 ГБ в течение длительного времени ... но как вы думаете, куда денется вся используемая память? Windows не хочет, чтобы он сидел в физической оперативной памяти, и приложение тоже. Если приложение специально запрограммировано для выгрузки неиспользованной памяти, оно выйдет из строя. Если он не закодирован для этого ... тогда Windows может подкачать эту память, как она считает нужным, как ей нужно ... но без файла подкачки ... вы ТЕРЯЕТЕ ОЗУ ... в таких случаях ... . Отсутствие файла подкачки значительно снизит производительность.

Вам не нужен ОГРОМНЫЙ файл подкачки ... но если на вашем сервере 16 ГБ памяти ... файл подкачки 4 ГБ - хорошее маленькое число ... Он не слишком большой для того, чтобы разбить диск, как не будет .. а окна могут менять местами страницы в выходных по мере необходимости, практически не влияя на производительность.

Adobe Photoshop - еще одна баранья свинья ... 64-битная версия будет занимать 4 ГБ памяти вне зависимости от того, есть она у вас ... или нет ... при условии, что для начала потребуется всего 512 МБ ... но если вы начнете работать с БОЛЬШИМИ изображениями, вы можете ЛЕГКО использовать более 4 ГБ памяти ...

В конце концов, лучше И безопасно иметь НЕКОТОРЫЕ формы файла подкачки ... даже если это всего 512 МБ ... плюс 512 МБ гарантируют, что вы сможете получить хотя бы минимальный дамп ядра и дамп ошибок в случае сбоя системы. Для ПОЛНОГО дампа вам нужен файл подкачки на C: (или там, где когда-либо загружается Windows), равный физической оперативной памяти для ПОЛНОГО дампа памяти (обычно не требуется и занимает много времени)