小编Eni*_*nio的帖子

Linux上的C#服务器可伸缩性问题

我在Visual Studio 2010和Mono Develop 2.8上都开发了一个C#服务器.NET Framework 4.0

看起来这台服务器在Windows上比在Linux上表现得更好(在可扩展性方面).我使用Apache的ab工具在本机Windows(12个物理内核),8和12个内核Windows和Ubuntu虚拟机上测试了服务器可扩展性.

窗口响应时间非常平坦.当并发级别接近/克服核心数量时,它开始上升.

由于某种原因,Linux的响应时间要糟糕得多.从并发级别5开始,它们几乎呈线性增长.此外,8核和12核Linux VM的行为也相似.

所以我的问题是:为什么它在Linux上表现更差?(我该如何解决这个问题?).

请查看附带的图表,它显示了满足75%请求的平均时间作为请求并发的函数(范围栏设置为50%和100%). 作为请求并发的函数,满足75%请求的时间

我有一种感觉,这可能是由于mono的垃圾收集器.我尝试使用GC设置,但我没有成功.有什么建议吗?

一些其他背景信息:服务器基于HTTP侦听器,可快速解析请求并在线程池上对它们进行排队.线程池负责用一些密集的数学回复那些请求(计算约10秒的答案).

c# mono performance scalability server-side

12
推荐指数
1
解决办法
1688
查看次数

标签 统计

c# ×1

mono ×1

performance ×1

scalability ×1

server-side ×1