网站首次请求非常缓慢

3

如果我20分钟以上没有访问网站,那么加载网站的第一页会非常慢。后续页面加载速度会快10-20倍。这种情况的常见原因是什么?我的服务器在没有接收到http请求时可能处于休眠状态吗?

3个回答

3
我会一般性地回答这个问题,因为我相信这是许多新手感到困惑的事情。
真正简短的答案是:缓存
你计算机中的几乎每个程序都使用某种形式的缓存来记住已经加载/处理过的数据,以便不必再次执行工作。
缓存的大小是固定的,因此必须丢弃一些内容。99%的情况下,过期的缓存条目的主要标准是,它们最后一次使用是多久以前。
  • 操作系统缓存从磁盘读取的文件数据
  • PHP缓存页面并将其编译到内存中
  • CPU在其自己的特殊更快的内存中缓存内存(尽管这对大多数用户可能不太明显)
而一些实际上不是缓存的东西,却以与缓存相同的方式工作:
  • 虚拟内存,又称交换空间。当某些程序没有足够的可用内存时,操作系统必须通过将内存块移动到磁盘上来为它们腾出空间。在更近期的操作系统中,操作系统会这样做只是为了使磁盘缓存变得更大。
  • 一些Web服务器喜欢运行多个副本,并在它们之间共享请求工作负载。根据设置,这些副本分别缓存内容。当工作负载足够低时,服务器可以终止其中一些进程以释放内存并对计算机的其余部分友好。随后,如果工作负载增加,则必须启动新进程,并将它们的内存加载各种数据。

(注意,上面的维基百科链接提供了很多详细信息。我不希望每个人都阅读它们,但如果您真的想了解更多,它们就在那里)


2

它可能并没有休眠。它只是很长时间没有被访问,因此释放了其资源。重新启动需要时间。

如果该网站经常被许多用户访问,那么每次响应速度都应该很快。


听起来没错。这正是我所怀疑的方向。谢谢。 - CaptainStiggz

0

听起来可能是缓存的问题。服务器是否在与您的浏览器相同的机器上运行?如果不是,网络配置是什么(同一局域网等)?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接