0

我们有一个 .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 瓶颈

4

1 回答 1

0

内存消耗很重要的第一种情况是处理大量数据的 CPU 密集型应用程序。典型的 PC 可以在不到半纳秒(0.5 ns)的时间内执行一条指令。(某些)内存消耗很重要的第二种情况是在应用程序的冷启动期间。操作系统试图通过在主内存中缓存磁盘中的数据来缓解这种情况。这就是应用程序在第二次启动时速度更快的原因,在所谓的热启动期间(数据缓存在更快的内存中)。

于 2013-09-16T04:34:50.703 回答