相关疑难解决方法(0)

垃圾收集每100秒

是否有人遇到过高内存分配负载的应用程序每100秒执行第二代收集的情况?

我们使用64位服务器和8-16 GB的物理内存.

应用程序有几GB的数据存储在缓存中,无法从中清除,因为它实际上是由应用程序使用的.另外它收到很多在处理过程中分配GEN 0对象的请求.

对我来说奇怪的是,GEN 2系列的表现就像时钟一样100秒.我认为它不太可预测

.net garbage-collection

10
推荐指数
3
解决办法
7932
查看次数

如何在.Net中处理多达100k的HTTP连接

我正在创建一个服务器来监控网页上客户端的在线状态.

  • 将有80-100万(八万)个并发客户端进行监控.
  • 我用.Net写这个.

客户端将使用JavaScript(在HTML页面上)联系(单独)服务器,以告知服务器它们是活动/在线的.

我正在考虑两种方法之一:

  1. 与keep-alive的持续连接定期发送.这将使我在客户端断开连接时具有更高的精度,并且我不需要经常更新内存结构(onlineinfo),因为我们知道客户端何时进出.网络设备/带宽的其他好处.

  2. 客户端(重新)每隔一段时间连接一次,告诉服务器它们还活着.这需要大量的连接,并且必然会降低准确性.我想像2-3分钟的间隔是我们能做的最好的.80k/120 =每秒660个连接...... ASP.Net执行速度不是太快,所以我对此不确定.8核心系统=每次执行约10毫秒.

有了这么多的联系,显然有一些局限性.例如,我无法同时生成那么多线程.1请求IIS产生ASP.Net应用程序将使用1个线程,直到请求完成.

是编写独立的http服务器的最佳选择吗?没有.Nets TcpListener利用httpd.sys(IIS)?

关于这个问题的任何(建设性的)想法都将受到赞赏.

编辑:通过以下来自Nicolas Repiquets的链接添加一些有用的链接到这篇文章:

.net load http

7
推荐指数
1
解决办法
1182
查看次数

标签 统计

.net ×2

garbage-collection ×1

http ×1

load ×1