我知道咒语是,无论何时在服务器端生成页面,数据库总是在帐篷中的长杆。
但是在Web服务器上还有很多文件i / o。脚本代码充满了include / require语句。此外,它通常是将应用程序外部的模板化html存储在相应加载和填充的文件中的做法。
在使用Web开发进行保护时,文件i / o可以扮演多少角色?它会成为一个问题吗?什么时候太多了? Web服务器/语言是否可以缓存任何内容?
你的经历真的很重要吗?
答案 0 :(得分:3)
大多数非数据库磁盘使用都很容易并行化。如果您没有将托管架构设计为通过添加更多系统来水平扩展,那么这比微调磁盘访问更重要。
如果您的设计是横向扩展,通常只需购买更多服务器比试图找出如何优化磁盘便宜。更不用说,像你的模板的SSD甚至RAM磁盘这样的东西将使它成为一个无问题。
很少有服务架构可以横向扩展,足以引起可扩展性问题,但却无法盈利,无法在机架中再提供1u。
答案 1 :(得分:2)
如果您对外界的带宽与磁盘带宽相似,则文件I / O只会成为一个因素(对于静态内容和静态页面包含)。这意味着您要么拥有非常快速的连接,要么在快速LAN上提供内容,要么拥有非常慢的磁盘(或者存在大量磁盘争用)。所以很可能答案是否定的。
当然,这假设您不是仅为文件的一小部分加载大文件。
答案 2 :(得分:0)
文件I / O是许多因素之一,包括带宽,网络连接,内存等,这些因素可能会影响Web应用程序的性能。确定文件I / O是否导致任何问题的最有效方法是在服务器上运行一些性能分析,看看这是否是您性能的边界因素。
很多这将取决于您从磁盘加载的文件类型,许多小文件将具有与几个大文件非常不同的属性。 Web服务器可以在内部缓存文件,并且可以向客户端指示文件(例如图像)可以被缓存,因此不需要每次都请求。
答案 3 :(得分:0)
不要过早优化。它的邪恶,或其他东西。
然而,I / O是您在计算机上可以做的最慢的事情。尽量保持最低限度,但不要让Knuth看到你在做什么。
答案 4 :(得分:-1)
我想说,如果你提供大量的静态内容,文件IO速度只会成为一个问题。当您处理数据并执行代码来呈现页面时,从磁盘读取页面本身的时间可以忽略不计。如果您正在提供的静态文件无法容纳到内存中(例如,当您提供视频或图像文件时),文件I / O非常重要。它也可能发生在html文件中,但由于html文件的大小很小,因此不太可能。