Sql server 当一个实时站点有太多用户时会发生什么?

Sql server 当一个实时站点有太多用户时会发生什么?,sql-server,scalability,Sql Server,Scalability,我是生产级web开发的新手,如果这是显而易见的,那么很抱歉。我的网站可能会突然有大量的永久用户,我想知道如果有太多的用户在短时间内注册,导致网站运行缓慢会发生什么。既然开发需要时间,那么是向服务器添加更多的框,还是必须关闭站点以改进代码? 谢谢这两个,但代码改进将是第一个目标。编写可扩展的代码将最大限度地帮助您解决问题。你可以在幕后投入更多的服务器,但如果代码结构良好、设计用于可伸缩性,你就不必这么做了。两者都有,但代码改进将是首要目标。编写可扩展的代码将最大限度地帮助您解决问题。您可以在幕后投

我是生产级web开发的新手,如果这是显而易见的,那么很抱歉。我的网站可能会突然有大量的永久用户,我想知道如果有太多的用户在短时间内注册,导致网站运行缓慢会发生什么。既然开发需要时间,那么是向服务器添加更多的框,还是必须关闭站点以改进代码?
谢谢这两个,但代码改进将是第一个目标。编写可扩展的代码将最大限度地帮助您解决问题。你可以在幕后投入更多的服务器,但如果代码结构良好、设计用于可伸缩性,你就不必这么做了。

两者都有,但代码改进将是首要目标。编写可扩展的代码将最大限度地帮助您解决问题。您可以在幕后投入更多的服务器,但如果代码结构良好,且设计用于可扩展性,则需要减少投入。

取决于您使用的技术和编写代码的方式

由于您标记了sql server,所以通常在数据库方面,您在很多时候都受到锁定策略和复制体系结构的限制。如何设计数据库并将其投入生产具有重大影响。必须以任何类型的串行方式发生的事情都是瓶颈。检查您的执行计划,监视和管理您的索引,如果可以,复制和分发您的系统

了解可伸缩性限制的最佳方法是通过负载测试和适当的QA


如果你做得不对,当你开始503或超时时,你的用户肯定会不高兴

取决于您使用的技术和编写代码的方式

由于您标记了sql server,所以通常在数据库方面,您在很多时候都受到锁定策略和复制体系结构的限制。如何设计数据库并将其投入生产具有重大影响。必须以任何类型的串行方式发生的事情都是瓶颈。检查您的执行计划,监视和管理您的索引,如果可以,复制和分发您的系统

了解可伸缩性限制的最佳方法是通过负载测试和适当的QA


如果你做得不对,当你开始503或超时时,你的用户肯定会不高兴

不要担心,即使是非常受欢迎的网站也会经历这种情况。良好的编码总是一个加号,但有时这还不够。Twitter就是一个理想的例子,他们开始在Ruby上发送消息,但随着越来越受欢迎,不得不转向Scala


既然你说你是新手,我能建议你熟悉缓存查询和缓存静态内容吗?学习SQL server上的良好索引实践也有助于处理大量涌入的用户

不要担心,即使是非常受欢迎的网站也会经历这种情况。良好的编码总是一个加号,但有时这还不够。Twitter就是一个理想的例子,他们开始在Ruby上发送消息,但随着越来越受欢迎,不得不转向Scala


既然你说你是新手,我能建议你熟悉缓存查询和缓存静态内容吗?学习SQL server上的良好索引实践也有助于处理大量涌入的用户

如果站点的开发方式是可以有多个服务器/数据访问层,那么伸缩性就不应该成为问题

创建应用程序,以便您可以根据需要加载,并使代码尽可能灵活


但从过去的经验来看。一旦需要性能调整。编写易于理解和维护的代码,并在出现问题时修复性能问题。

如果网站的开发方式使您可以拥有多个服务器/数据访问层,那么可扩展性不应成为问题

创建应用程序,以便您可以根据需要加载,并使代码尽可能灵活


但从过去的经验来看。一旦需要性能调整。编写易于理解和维护的代码,并在出现问题时修复性能问题。

我能给出的最好建议是在上线前测试应用程序和服务器,然后您就可以看到什么时候可能出现问题以及问题的严重程度

说“它会变慢”是一回事,但一旦你超过某一点,你的应用程序可能会崩溃或随机给用户500页

使用自动脚本工具进行测试,以对站点施加压力,并模拟注册和随机用户访问随机页面


如果您有SSL,请确保您的工具模拟大量不同的SSL连接,而不仅仅是不同的HTTP请求SSL握手需要额外的资源

我能给出的最佳建议是在上线前测试您的应用程序和服务器,然后您就可以看到什么时候您可能 o遇到问题以及问题的严重程度

说“它会变慢”是一回事,但一旦你超过某一点,你的应用程序可能会崩溃或随机给用户500页

使用自动脚本工具进行测试,以对站点施加压力,并模拟注册和随机用户访问随机页面


如果您有SSL,请确保您的工具模拟许多不同的SSL连接,而不仅仅是不同的HTTP请求SSL握手需要额外的资源

我正在使用Linq to SQL和SQL Server 2005。我正试图使我的项目尽可能具有可扩展性,但由于对这一领域不熟悉,这一点很棘手。在软件方面,执行负载测试的最佳方法是什么?感谢SQL并不能让我们很容易知道一直在发生什么。分层方法在这里很好。关于这个主题的整本书。您可以自动化UI,从较高的级别进行测试。如果您正在将DB代码写入业务层,那么请针对该代码编写单元测试,并启动线程以并发调用。还要检查使用Linq to SQL生成的SQL,并分析该查询的执行计划,以查看所有锁,并查看是否需要一些索引来消除任何繁重的完整扫描。我使用的是Linq to SQL和SQL Server 2005。我正试图使我的项目尽可能具有可扩展性,但由于对这一领域不熟悉,这一点很棘手。在软件方面,执行负载测试的最佳方法是什么?感谢SQL并不能让我们很容易知道一直在发生什么。分层方法在这里很好。关于这个主题的整本书。您可以自动化UI,从较高的级别进行测试。如果您正在将DB代码写入业务层,那么请针对该代码编写单元测试,并启动线程以并发调用。还要检查使用LINQtoSQL生成的SQL,并分析该查询的执行计划,以查看您的所有锁,并查看是否需要一些索引来摆脱任何繁重的完整扫描;在缓存方面,你应该看看memcache。Ehcache和JBoss也是其他可行的选择;关于缓存,你应该看看memcache。Ehcache和JBoss也是其他可行的选择。谢谢大家的回复。我只能用一个作为答案,但所有的答案都很有用。谢谢谢谢大家的回复。我只能用一个作为答案,但所有的答案都很有用。谢谢