草庐IT

asp.net - IIS 性能

coder 2024-06-13 原文

我们有以下设置:

虚拟服务器,Intel Xeon X5650 @ 2.67Ghz(4 个处理器) 8GB 内存 Windows 服务器 2008 标准版 64 位 SQL Server Express IIS 7.5

我们的数据库只有 200mb。我们正在运行一个 ASP.net 应用程序。我们最近遇到了一些性能问题,大约 200 个并发连接导致 100% 的 CPU 使用率(主要由 IIS 消耗)并使响应时间达到 20 秒左右!在对我们的代码进行一些调整后,我们已经能够从 loader.io 运行负载测试。在 1 分钟内有 1500 个并发用户,最后我们的响应时间约为 5 秒,CPU 使用率约为 95%,再次主要由 IIS 消耗,我们的内存使用量约为 4GB。但是,我们预计会出现比 1500 更大的峰值,在短时间内可以达到大约 4000 名用户。

我的问题如下: 1) 这是我们当前设置的正常性能吗?我们的网站在数据库上非常密集,我们正在使用 Entity Framework 。 2) 升级到 Sql Web 版会有什么好处吗,好像我们的数据库很小? 3) 你认为这种类型的设置可以处理 4000 个用户吗? 4) 对我们可以做些什么来处理这个负载有什么建议吗?

我知道这有点主观,但非常感谢任何答案。

最佳答案

Is this normal performance for our current setup?

取决于您的代码。您是否分析了代码以确保其中没有任何愚蠢的东西?

Our site is quite intensive on the database and we are using Entity Framework.

再一次,你有没有通过 pofile 来弄清楚你在 Entity Framework 上花了很多时间?它很慢,但问题是“密集”是什么意思。这就是剖析器的用途。

Would upgrading to Sql Web edition have any benefit seeing as though our Database is so small?

救命,我的披萨来得太晚了。升级到更大的汽车会有帮助吗?你自己说你把时间花在 IIS 上,而不是 sql server。

Do you think that this type of setup could handle 4000 users?

你觉得我的车够大吗?注意我不会告诉你我需要它做什么。不看使用模式和你的代码 - 不知道。就是说:与您今天购买的服务器相比,服务器很可怜。因此,这是一个无关紧要的问题 - 如果必须升级,请升级。

Any suggestions on what we could do to handle this load?

负载测试+profiler,优化代码。获得更大的服务器。意识到我们没有 Crystal 球来判断您的代码有多好/多坏/多蠢。

关于asp.net - IIS 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13737662/

有关asp.net - IIS 性能的更多相关文章

  1. ruby-on-rails - Ruby net/ldap 模块中的内存泄漏 - 2

    作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代

  2. ruby - 如何模拟 Net::HTTP::Post? - 2

    是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou

  3. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

  4. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  5. .net - .NET 将如何影响 Python 和 Ruby 应用程序? - 2

    我很好奇.NET将如何影响Python和Ruby应用程序。用IronPython/IronRuby编写的应用程序是否会非常特定于.NET环境,以至于它们实际上将变得特定于平台?如果他们不使用任何.NET功能,那么IronPython/IronRuby相对于非.NET同类产品的优势是什么? 最佳答案 我不能说任何关于IronRuby的东西,但是大多数Python实现(如IronPython、Jython和PyPy)都试图尽可能忠实于CPython实现。不过,IronPython正在迅速成为这方面的佼佼者之一,并且在PlanetPyth

  6. ruby - 在 ASP 页面上 Mechanize 中断 - 2

    require'mechanize'agent=Mechanize.newlogin=agent.get('http://www.schoolnet.ch/DE/HomeDE.htm')agent.clicklogin.link_withtext:/Login/然后我得到Mechanize::UnsupportedSchemeError。 最佳答案 Mechanize不支持javascript但您可以将搜索字段添加到表单并为其分配搜索词并使用mechanize提交表单form=page.forms.firstform.add_fie

  7. Ruby 的数字方法性能 - 2

    我正在使用Ruby解决一些ProjectEuler问题,特别是这里我要讨论的问题25(Fibonacci数列中包含1000位数字的第一项的索引是多少?)。起初,我使用的是Ruby2.2.3,我将问题编码为:number=3a=1b=2whileb.to_s.length但后来我发现2.4.2版本有一个名为digits的方法,这正是我需要的。我转换为代码:whileb.digits.length当我比较这两种方法时,digits慢得多。时间./025/problem025.rb0.13s用户0.02s系统80%cpu0.190总计./025/problem025.rb2.19s用户0.0

  8. ruby - Ruby 性能中的计时器 - 2

    我正在寻找一个用ruby​​演示计时器的在线示例,并发现了下面的代码。它按预期工作,但这个简单的程序使用30Mo内存(如Windows任务管理器中所示)和太多CPU有意义吗?非常感谢deftime_blockstart_time=Time.nowThread.new{yield}Time.now-start_timeenddefrepeat_every(seconds)whiletruedotime_spent=time_block{yield}#Tohandle-vesleepinteravalsleep(seconds-time_spent)iftime_spent

  9. ruby - 如何使用 Ruby HTTP::Net 处理 404 错误? - 2

    我正在尝试解析网页,但有时会收到404错误。这是我用来获取网页的代码:result=Net::HTTP::getURI.parse(URI.escape(url))如何测试result是否为404错误代码? 最佳答案 像这样重写你的代码:uri=URI.parse(url)result=Net::HTTP.start(uri.host,uri.port){|http|http.get(uri.path)}putsresult.codeputsresult.body这将打印状态码和正文。

  10. ruby-on-rails - 如果条件与 &&,是否有任何性能提升 - 2

    如果用户是所有者,我有一个条件来检查说删除和文章。delete_articleifuser.owner?另一种方式是user.owner?&&delete_article选择它有什么好处还是它只是一种写作风格 最佳答案 性能不太可能成为该声明的问题。第一个要好得多-它更容易阅读。您future的自己和其他将开始编写代码的人会为此感谢您。 关于ruby-on-rails-如果条件与&&,是否有任何性能提升,我们在StackOverflow上找到一个类似的问题:

随机推荐