我们有一个 .Net (VS 2012) 64 位应用程序,在 Windows Server 2012 上运行,它会在内存中加载大量数据,以便在接下来的 24-48 小时内使用它。根据我们的设计,我们更喜欢通过连接到数据源来预先加载数据。进程的净内存占用高达 7-8 GB,这是因为我们为代表并行客户端的 4 个独立线程复制数据,因此每个客户端需要 2 GB 的数据。
我们使用的硬件有 128 GB 的 RAM,4 个 CPU(24 核)处理器
我想知道内存占用是否会对进程的净性能产生影响,例如执行速度、处理器利用率等
即使我们有这么好的内存,而且净使用率从不超过60%,当它连续使用48小时时,仍然会有进程页面交换到HD,从而使其变慢。是否有一些服务器设置或 .Net c# 代码 API,这将帮助我们处理由于内存占用而发生的性能问题。我们可以明确地告诉系统我们的进程需要大量内存。
我还要补充一点,每个并行客户端都会产生多个 Threadpool 线程。要完成 Sub 任务,现在进程的平均 CPU 使用率在 50 - 60% 之间,对于我们拥有的良好配置,这是否意味着我们需要采取措施找出可能影响性能的磁盘 IO 瓶颈