Tamaño de la memoria de proceso: diferentes contadores

Estoy tratando de averiguar cuánta memoria está usando mi propio proceso de servidor .Net (para fines de monitoreo y registro).

Estoy usando:

Process.GetCurrentProcess().PrivateMemorySize64

Sin embargo, el objeto Process tiene varias propiedades diferentes que me permiten leer el espacio de memoria utilizado: Paged, NonPaged, PagedSystem, NonPagedSystem, Private, Virtual, WorkingSet

y luego los "picos": que supongo que solo almacenan los valores máximos que tomaron estos últimos.

Leer la definición de MSDN de cada propiedad no me ha resultado demasiado útil. Tengo que admitir que mi conocimiento sobre cómo se gestiona la memoria (en lo que respecta a paginación y virtual) es muy limitado.

Entonces mi pregunta es obviamente "¿cuál debo usar?", Y sé que la respuesta es "depende".

Este proceso básicamente mantendrá un montón de listas en la memoria de las cosas que están sucediendo, mientras que otros procesos se comunican con él y lo consultan por cosas. Espero que el servidor donde se ejecutará requiera mucha RAM, por lo que estoy consultando estos datos con el tiempo para poder estimar los requisitos de RAM en comparación con los tamaños de las listas que contiene.

Entonces ... ¿Cuál debo usar y por qué?

Respuestas a la pregunta(7)

Su respuesta a la pregunta