我创建了一个在IIS上托管在我公司本地服务器上的网站,它只会被业务员工使用。我一直在使用Chrome开发工具来监控网络活动并查看加载时间等。我注意到我的TTFB总是非常慢,即使我加载的数据非常少。
我之前读过一篇文章说TTFB理想情况下应该小于500毫秒,但我的日常工作时间通常超过3或4秒!
我已经包含了开发工具页面的屏幕截图,显示了我的意思:
我加载的特定页面是主页。它使用EF6连接到MSSQL DB,并进行一次查询以检查一个人是否存在于包含大约200个条目的表中。这是代码:
using (var db = new DbContext())
{
var ad = httpContext.User.Identity.GetActiveDirectory();
var person = db.PERSON.Include(p => p.PERSON_PRIVILEGE_ALLOC).FirstOrDefault(p => p.ACTIVE_DIRECTORY == ad);
}
如果我使用IIS Express在我的机器上加载同一页面,则html doc的TTFB为35ms。与在我们的主服务器上加载的3450ms的TTFB相比。
这是我第一个正式托管的网站,所以我对此比较陌生。我理解TTFB是什么,但我不确定这么长时间内需要什么? Db查询小而快,html没有超大,使用GZIP压缩时CCS和JS约为1MB。
有没有人对导致此问题的原因以及加速方式有任何信息或建议?它可能只是由服务器引起的吗?
答案 0 :(得分:0)
服务器或服务器配置似乎有问题。 也许与Active Directory或数据库的连接需要很长时间。
您可以使用Stopwatch class诊断性能问题。
在调用AD之前启动秒表并记录呼叫返回时经过的时间。为数据库查询启动第二个秒表并记录结果。