У меня есть пользовательское серверное приложение, которое работает на Windows 2008 R2. Это домашняя служба Windows, написанная на .Net и поддерживающая несколько пользовательских терминалов. У меня есть тестовая машина, которая имеет спецификации, аналогичные действующему серверу, и у меня есть набор клиентских симуляторов, которые я могу использовать для создания нагрузки, которая является разумным приближением к реальной системе. Я должен быть в состоянии поддерживать 12 000 из них, и в настоящее время серверу не хватает памяти (пейджинг идет через крышу).
Мой план состоял в том, чтобы запустить только 100 из симуляторов, измерить использование памяти, затем снова запустить еще 100 измерить память и повторять до тех пор, пока пейджинг не начнет расти (на самом деле я буду брать более трех точек данных.) Это должно дать мне цифру для объем дополнительной памяти, необходимый для 100 симуляторов и позволяет мне прогнозировать, сколько памяти требуется. Мне нужна только приблизительная идея +/- 30 ГБ, чтобы не покупать полные 2 ТБ (стоимостью 150 000 долларов), которые займет сервер. Мой вопрос заключается в том, является ли этот метод разумным для использования, и если да, то какие счетчики производительности вы бы отслеживали, чтобы определить объем фактически используемой памяти?
Я специально говорю о памяти здесь, так как разница между рабочим набором, частными байтами, фиксированным, общим, виртуальным и всеми другими терминами памяти сбивает меня с толку. Я думаю, что смогу самостоятельно контролировать процессор, ввод-вывод и работу в сети. Еще одна вещь, которую я заметил, заключается в том, что .Net Cache регулирует использование памяти в зависимости от того, что доступно, что затрудняет определение тенденции.