【问题标题】:How do you maximize server performance?如何最大化服务器性能?
【发布时间】:2010-09-30 18:29:37
【问题描述】:

我一直在努力了解性能和可扩展性,并想知道开发人员/系统管理员正在做什么来充实他们的系统。为了使答案标准化,如果您能尽力回答以下任何问题,将会有所帮助:

  1. 简介 - 在 Joomla 上发表的杂志; CodeIgniter + OpenId + AJAX 上的工作板
    • 性能 - 每台服务器每秒的最大请求数?
    • 硬件 - 服务器、路由器、磁盘、LAN?
    • 软件 - Lighttpd、Memcache、Varnish、Nginx、Squid、Pound、LVS、eAccelerator 等。
    • 服务 - Amazon S3、Akamai、Google 计算等。
    • 配置 - 静态哈希、上游模块、在 n 个请求后 x 分钟的 Memcache、禁用记录图像请求等。
    • 其他 - 还有其他吗? (例如,规范化的表格不适合有大量读取的网站)

编辑:请在关闭此问题之前重新考虑asitisimportant 让网络开发人员找出这些东西。程序员可以从他/她的代码中调整分号,但仍然会输给为 memcached 编写或设法通过 Google App Engine 组合CDN 的糟糕编码器。

【问题讨论】:

  • 这是一篇论文,不是问题。
  • 对我来说看起来不错 - 我实际上对这个主题非常感兴趣。

标签: web-applications performance sysadmin


【解决方案1】:

没有具体的性能优化总体规划(比如先从软件“xyz”开始)。

一般做法:

  1. 通过改进/投入的时间确定(衡量!)您最可改进的实体
  2. 优化它
  3. 重复

【讨论】:

    【解决方案2】:

    我们的系统:我不能告诉你太多,但它是一个服务于许多付费客户的大型 SaaS 应用程序。


    我们所做的每一项性能/容量工作都非常仔细地完成 - 我们不能只是尝试看看它们是否有效。

    最初会对当前的性能和容量进行一些分析,我们是否可以继续工作。

    如果可能,我们会在非生产系统上重现性能问题,我们可以在其中分析代码并进行实验性更改。我们不能总是使用与生产完全相同的硬件(生产有大量非常高规格的服务器;开发只有少数生产规格的专用性能测试箱)。

    如果在非生产环境中无法对问题进行有意义的分析,我们会在生产环境中为我们的代码提供一些检测(经过仔细测试以确保检测不会影响系统本身)。该仪器将被“关闭”并有选择地打开以收集足够的数据。

    一旦我们对问题进行了准确的分析,我们就会寻找可能的解决方案,并且可能会开发原型 - 可以测试这些原型的功能正确性。

    如果有多个,我们通常会选择风险最小的选项。

    然后将遵循正常的发布过程 - 大量测试、代码审查等。

    如果相关,更改可能会附带一个“恢复开关”,如果出现问题,可以在生产中快速关闭它。

    我们已经确定了许多潜在的性能改进,其中大部分在出现问题之前我们不会进一步开发(除非我们无论如何都要对该软件进行不相关的重构)。

    【讨论】:

      【解决方案3】:

      我没有时间逐条回答你的问题。 =) 但是我可以推荐一个分离关注点的一般策略,而不是在没有立即需要时耦合服务器资源。 mod_proxy(和任何等价物)是你的朋友。它使硬件出现的性能问题变得容易。当然,您不必从一开始就完美地考虑系统(因为很难预测真正的瓶颈会出现在哪里)。但是当你遇到问题时。记住你的朋友。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-17
        • 1970-01-01
        • 1970-01-01
        • 2012-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-16
        相关资源
        最近更新 更多