У мене є власна серверна програма, яка працює на Windows 2008 R2. Це домашня послуга Windows, написана в .Net, що підтримує ряд користувальницьких терміналів. У мене є тестова машина, яка має схожі специфікації на сервер в реальному часі, і у мене є набір клієнтських тренажерів, які я можу використовувати для створення навантаження, що є розумним наближенням до реальної системи. Мені потрібно вміти підтримувати 12000 з них, і в даний час у сервера не вистачає пам'яті (Пейджинг проходить дах).
Мій план полягав у тому, щоб запустити лише 100 тренажерів, виміряти використання пам'яті, потім знову запустити ще 100 вимірювань пам’яті та повторити, доки підказка не почне зростати (насправді я візьму більше трьох точок даних.) Це повинно дати мені цифру для обсяг додаткової пам'яті, необхідний для 100 тренажерів, і дозволить мені спроектувати, скільки пам'яті потрібно. Мені потрібна лише орієнтовна ідея +/- 30Gb, щоб уникнути купівлі повних 2Tb ($ 150 000 вартістю), які забирає сервер. Моє запитання - чи це розумний метод використання, і якщо так, то які лічильники продуктивності ви б відстежували, щоб дати обсяг пам'яті, який фактично використовується?
Я спеціально говорю тут про пам'ять, оскільки різниця між робочим набором, приватними байтами, посвяченим, спільним, віртуальним та всіма іншими умовами пам'яті мене бентежить. Я думаю, що я можу самостійно відстежувати процесор, IO та мережі. Інше, що я помітив, це те, що .Net Cache регулює використання пам'яті залежно від того, що є в наявності, що робить кров'янисті тенденції важко помітними.