我坚信用硬件来解决软件问题并不是最好的策略。因此,当注意到我们的一台服务器(当前运行 2 个演出)存在一些内存问题时,我将其归结为 System.Web.HttpRuntime.Cache 的使用。虽然对于几个站点来说,这是有道理的,抛出 50 个都使用 System.Web.HttpRuntime.Cache 的站点开始拆除墙壁。
如果没有外部缓存服务器的选项,我正在考虑修改代码以使用静态类或单例来保留全局数据(另一个选项是发出额外的数据库请求)。
我不完全清楚这是否会有任何变化,因为数据仍然“在内存中”,我们可能只需要在服务器上投入更多内存。
在单例或静态类上使用 System.Web.HttpRuntime.Cache 是否有更多的开销,有哪些推荐的方法来解决这个问题?
- 更新 -
在监视当前文件缓存内存使用情况时,我注意到当我在同一个应用程序池上访问一些站点时这个数字出现了峰值。这个数字跃升至 1,000,000(我假设的字节数)。我注意到随着 活动刷新条目的数量增加然后减少,这个数字最终开始减少。
我怎样才能更快地清除它,因为当多个应用程序池中的这个数字很高时,问题似乎就开始了?
而不是仅仅撕掉缓存(正如建议的那样,这可能不是最好的主意),简单地为缓存的对象设置一个更快的到期时间可能会产生更好的结果?