我们有一个运行在Windows Server 2012上的.Net (VS 2012) 64位应用程序,它会在内存中加载大量数据,以便在接下来的24 - 48小时内使用它。根据我们的设计,我们更喜欢通过连接到数据源来预先加载数据。进程的Net内存占用高达7-8 GB,这是因为我们复制了4个独立线程的数据,这些线程代表并行客户端,因此每个客户端就像2 GB的数据。
我们使用的硬件具有128 GB RAM、4个CPU (24核)处理器
我想知道内存占用是否会对进程的净性能产生影响,如执行速度、处理器利用率等
即使我们有这么好的RAM,并且净使用率永远不会超过60%,当它连续使用48小时时,是否仍然会有进程页交换到HD,从而使其变慢。是否有一些服务器设置或.Net c#代码应用程序接口,可以帮助我们解决由于内存占用而出现的性能问题。我们可以明确地告诉系统,我们的进程需要大量内存。
另外,让我补充一下,每个并行客户端都会产生多个线程池线程。为了完成子任务,现在进程的平均CPU使用率在50 - 60%之间,对于我们现有的良好配置,这是否意味着我们需要采取措施找出可能会影响性能的磁盘IO瓶颈
发布于 2013-09-16 12:34:51
当内存消耗很重要时,第一种情况是CPU密集型应用程序正在处理大量数据,一台典型的PC可以在不到0.5纳秒(0.5 ns)的时间内执行一条指令。第二种情况是,在应用程序的冷startup.The操作系统试图通过在主内存中缓存磁盘中的数据来缓解这种情况时,(某些)内存消耗很重要。这就是为什么在所谓的热启动期间,应用程序在第二次启动时会更快(数据被缓存在更快的内存中)。
https://stackoverflow.com/questions/18820449
复制相似问题