Asp.net 如何配置我的生产web应用程序?

Asp.net 如何配置我的生产web应用程序?,asp.net,mongodb,mono,profiling,mod-mono,Asp.net,Mongodb,Mono,Profiling,Mod Mono,我写了一个博客。最近,我注意到一些性能问题。我等待索引页的时间大约为400毫秒。我认为这是相当高的。当我第一次部署它时(功能更少,但仍然如此),我记得索引加载时间大约为80ms 现在我将对其进行分析,但问题是这只发生在我的生产环境中。在我的测试环境中,索引页只需要10毫秒 如何分析我的生产应用程序?我在ArchLinux和MongoDB上使用Apache+mono+mod_mono。除了使用xsp之外,我有一个类似的测试环境 我不确定该去哪里看:我的代码、Apache的配置还是MongoDB?我

我写了一个博客。最近,我注意到一些性能问题。我等待索引页的时间大约为400毫秒。我认为这是相当高的。当我第一次部署它时(功能更少,但仍然如此),我记得索引加载时间大约为80ms

现在我将对其进行分析,但问题是这只发生在我的生产环境中。在我的测试环境中,索引页只需要10毫秒

如何分析我的生产应用程序?我在ArchLinux和MongoDB上使用Apache+mono+mod_mono。除了使用xsp之外,我有一个类似的测试环境


我不确定该去哪里看:我的代码、Apache的配置还是MongoDB?我如何分析我的生产服务器以找出为什么它比我的开发环境慢得多

我建议你看看山姆藏红花。如果您在站点中使用它,它允许您在生产环境中打开分析


通过向代码中添加足够的工具,您应该能够识别出哪一位花费了时间,然后集中精力在这方面。

我建议您看看Sam Saffrons。如果您在站点中使用它,它允许您在生产环境中打开分析


通过向代码中添加足够的指令插入,您应该能够确定哪一位花费了时间,然后将精力集中在这一点上。

没有细节就很难具体,但这里有一个通用指南:

首先,我建议使用类似于Firefox的东西——在其他浏览器中也有类似的东西,但这是我用于这类事情的老工具。启用它并获得瀑布图的网络面板视图,该图将向您显示加载到页面上的每个对象的列表(您可能需要刷新)-它还将有一个蓝色显示呈现事件(当页面变为可见时)

瀑布应该使页面中缓慢的部分的位置变得非常明显,并且利用这些信息,您可以进入下一阶段——找出特定部分缓慢的原因

如果插件不是您的事情,或者您怀疑它可能是导致问题的您的机器本地的东西,那么请查看:

这将使您能够从不同的位置、不同的浏览器、不同的速度等进行远程测试,并提供类似的详细结果

如果它是一个正在获取的静态文件,请查看网络问题,Apache是一个原因。如果是动态生成的,那么看看Apache、ASP、mongodb等

对于Apache,访问日志显示索引页的响应时间是多少?假设Apache 2或更高版本,请确保您已记录了
%D
(和
%T
,如果您愿意的话),以便您可以在所需的详细级别上查看(从Apache角度)服务页面所需的时间。有关这方面的更多信息,请查看

在ASP/Mono方面我无能为力,这不是我的事,但是在不同的点添加调试语句来跟踪索引页的生成(假设它是动态生成的)将是一种非常标准的方法

对于数据库,MongoDB默认情况下只记录耗时>100ms的“慢速”查询-如果您试图通过日志跟踪低于100ms的响应时间问题,则需要对其进行调整,否则您可能会得到很少的响应时间。这可以通过以下方式实现:

> db.setProfilingLevel(0,20) // leave profiling off, slow threshold=20ms
您还可以将其作为mongod进程的启动参数(--slowms)进行调整。有关分析的更多信息(可能也有帮助,但会带来额外费用)可在此处找到:


没有细节很难具体,但这里有一个通用指南:

首先,我建议使用类似于Firefox的东西——在其他浏览器中也有类似的东西,但这是我用于这类事情的老工具。启用它并获得瀑布图的网络面板视图,该图将向您显示加载到页面上的每个对象的列表(您可能需要刷新)-它还将有一个蓝色显示呈现事件(当页面变为可见时)

瀑布应该使页面中缓慢的部分的位置变得非常明显,并且利用这些信息,您可以进入下一阶段——找出特定部分缓慢的原因

如果插件不是您的事情,或者您怀疑它可能是导致问题的您的机器本地的东西,那么请查看:

这将使您能够从不同的位置、不同的浏览器、不同的速度等进行远程测试,并提供类似的详细结果

如果它是一个正在获取的静态文件,请查看网络问题,Apache是一个原因。如果是动态生成的,那么看看Apache、ASP、mongodb等

对于Apache,访问日志显示索引页的响应时间是多少?假设Apache 2或更高版本,请确保您已记录了
%D
(和
%T
,如果您愿意的话),以便您可以在所需的详细级别上查看(从Apache角度)服务页面所需的时间。有关这方面的更多信息,请查看

在ASP/Mono方面我无能为力,这不是我的事,但是在不同的点添加调试语句来跟踪索引页的生成(假设它是动态生成的)将是一种非常标准的方法

对于数据库,MongoDB默认情况下只记录耗时>100ms的“慢速”查询-如果您试图通过日志跟踪低于100ms的响应时间问题,则需要对其进行调整,否则您可能会得到很少的响应时间。这可以通过以下方式实现:

> db.setProfilingLevel(0,20) // leave profiling off, slow threshold=20ms
您还可以将其作为mongod进程的启动参数(--slowms)进行调整。有关分析的更多信息(可能也有帮助,但会带来额外费用)可在此处找到:


我确实使用Firebug。这就是我获得400ms号码的原因:)问题是它在等待我的索引页达400ms。mongodbit的优点是,它通常也值得关注WebGetTest——看看位置/与生产的距离是否有影响。如果没有