gpt4 book ai didi

java - 同时为许多用户提供更好的性能

转载 作者:行者123 更新时间:2023-11-30 11:55:30 25 4
gpt4 key购买 nike

我正在开发一个网站,希望有超过 100 万人同时访问该网站。它仍然只有 70,000 名用户,并且在上传文件或只是打开页面和其他东西时已经滞后了。

我使用 SQLServer、tomcat 和 apache http 服务器。

我试过使用另一个 tomcat 来管理对数据库的访问,但我面临另一个问题,它必须与另一个 tomcat 共享相同的空间来保存上传的文件。并且它会导致巨大的延迟上传..

我怎样做才能使我的网站更快?

该网站是用 JSF with richfaces 和 Java 和 Hibernate 开发的。

最佳答案

  1. 缩放很难。

  2. 对于某些操作,缩放是不可能的。即使是最伟大的公司(谷歌、Facebook、亚马逊)也不能自由选择他们的功能;所提供的通常是“很酷的东西”和“可以扩展的东西”之间的折衷。

  3. 如果不分析您的应用程序,“如何让它更快”这个问题是无法回答的。

  4. 在不考虑前一点的情况下做出任何决定都是愚蠢的,可能会让您陷入更糟糕的境地。

  5. 识别瓶颈的传统方法是分别考虑:

    a) 内存(系统是否交换?)

    b) cpu(cpus真的很忙,还是只是在等待数据库?)

    c) IO(通常包括数据库和带宽)

根据您的问题出在哪里,完全矛盾的事情会有所帮助。例如,如果您有足够的内存和低带宽,请切换 JSF 以在服务器上保存状态。这将使用更多内存,但会使请求更短。另一方面,如果带宽不是问题而内存是问题,则执行相反的操作:切换 JSF 以在客户端上保持状态。这将有助于节省内存(尽管在这种情况下事情更复杂:如果集群中的 tomcat 尝试共享 session 数据,那么在服务器上保存状态将成为一个 IO 问题)。

您说问题出在上传文件上。为了提供帮助,我们需要知道:您将它们保存在哪里?到数据库?到文件系统?它们是短的还是长的?它们是如何处理的?上传文件的使用是否有任何模式(例如:“大部分时间都在使用新文件”)?在回答这些问题后,可能会弹出更多问题。

为了您自己:关闭此问题。你会得到很多善意但误导性的答案,比如“放弃 JSF”、“集群所有”、“添加内存”、“迁移到 GAE 或 Amazon EC”、“使用 NoSQL 数据库”、“异步执行所有操作” ,使用消息队列','用ajax在客户端做所有事情','放弃ajax,它发出太多请求并杀死服务器'。所有这一切都毫无意义,除非你首先分析、分析、分析、衡量、衡量、衡量。然后给出一个定义更明确的问题。

关于java - 同时为许多用户提供更好的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4968405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com