代码之家  ›  专栏  ›  技术社区  ›  aleemb

如何最大限度地提高服务器性能?

  •  5
  • aleemb  · 技术社区  · 16 年前

    我一直在努力了解性能和可伸缩性,并想知道开发人员/系统管理员是如何使他们的系统充满活力的。为了使答案标准化,如果您能尽最大努力回答以下任何一个问题,这会有所帮助:

    1. -Joomla上的杂志发布;CodeIgniter+OpenId+AJAX上的作业板
      • 性能 -每秒最大请求数 每台服务器 ?
      • 硬件 -服务器,路由器,磁盘,局域网?
      • 软件 -Lighttpd、Memcache、Varnish、Nginx、Squid、Pound、LVS、eAccelerator等。
      • 服务
      • -静态哈希、上游模块、n个请求后x分钟的Memcache、禁用日志图像请求等。
      • 其他 -还有别的吗?(例如,规范化的表对于读取量大的站点是有害的)

    编辑:请在结束此问题之前重新考虑 as it is important 网站开发者去寻找这些东西。程序员可以调整他/她的代码中的分号,但仍然会输给一个为memcached编写代码的糟糕的程序员,或者设法将一个 CDN

    3 回复  |  直到 7 年前
        1
  •  3
  •   MarkR    16 年前

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


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

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

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

    一旦我们对一个问题有了一个准确的分析,我们就会研究可能的解决方案,也许会开发出原型——这些可以被测试功能的正确性。

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

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

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

        2
  •  3
  •   Karsten    16 年前

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

    一般方法:

    1. 识别(测量!)通过改进/投入时间的方式,您最可改进的实体
    2. 重复
        3
  •  2
  •   PEZ    16 年前