我有一个在Windows 2008 R2上运行的自定义服务器应用程序。它是一种用.Net编写的自家Windows服务,支持许多自定义终端。我有一台测试机器,其规格与实时服务器类似,并且有一整套客户端模拟器,可以用来产生与真实系统相当的负载。我需要能够支持其中的12,000个,并且目前服务器内存不足(分页正在快速进行)。
我的计划是只启动100个模拟器,测量内存使用量,然后再启动100个以上的测量内存,并重复进行直到分页开始为止(实际上,我将获取三个以上的数据点。)这应该给我一个数字100个模拟器所需的额外内存量,使我能够计划所需的内存量。我只需要一个大概的+/- 30Gb即可避免购买服务器需要的全部2Tb(价值$ 150,000)。我的问题是,这是否是一种合理的使用方法?如果是,您将监视哪些性能计数器以提供实际使用的内存量?
我在这里专门谈论内存,因为工作集,专用字节,已提交,共享,虚拟和所有其他内存术语之间的差异使我感到困惑。我认为我可以自己监控CPU,IO和网络。我注意到的另一件事是,.Net缓存会根据可用内容来调整其内存使用情况,这使得很难发现趋势。