2009-01-11 58 views
5

我一直在想方设法理解性能和可伸缩性,并想知道开发人员/系统管理员正在为他们的系统做些什么。为了标准化的答案,它会帮助,如果你能在应对以下任何把你最好的拍摄:如何最大限度地提高服务器性能?

  1. 档案 - 上的Joomla杂志发表;每秒最大要求每个服务器 - 对笨+的OpenID + AJAX
    • 性能乔布斯板?
    • 硬件 - 服务器,路由器,磁盘,局域网?
    • 软件 - Lighttpd的,内存缓存,清漆,Nginx的,鱿鱼,英镑,LVS,eAccelerator在等
    • 服务 - 亚马逊S3,Akamai的,谷歌计算等
    • 配置 - 静态散列,上游模块,n个请求后x分钟的Memcache,禁用日志记录映像请求等。
    • 其他 - 还有其他什么? (例如,坏的,有很多的网站规范化表读取)

编辑:请关闭这个问题asitisimportant对于Web开发人员找出这个东西之前重新考虑。程序员可以从他/她的代码中调整分号,但仍然会因输入memcached而导致错误的编码器失败,或者通过Google App Engine管理一个CDN

+0

这是论文不一个问题。 – cletus 2009-01-11 10:54:28

回答

2

我没有时间按项目符号回答你问题项目符号。 =)但是我可以推荐一种分离问题的总体策略,在没有紧急需求的情况下不需要耦合服务器资源。 mod_proxy(和任何等价物)是你的朋友。它可以很容易地将硬件抛出显示的性能问题。当然,你不必从一开始就完美地分析系统(因为真的很难预测真正的瓶颈将出现在哪里)。但是当你遇到问题时。记住你的朋友。

3

我们的系统:我无法告诉您多少关于它的信息,但它是一个为很多付费用户提供服务的大型SaaS应用程序。


每件我们做的是做得很细致性能/容量的工作 - 我们不能只是尝试的事情,看看他们的工作。

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

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

如果在非生产环境下无法有效分析问题,我们会在生产环境中发布一些仪器(经过仔细测试以确保仪器不会影响系统本身)。该仪器将被“运送”并有选择地打开以收集足够的数据。一旦我们对问题进行了准确的分析,我们会考虑可能的解决方案,也许开发原型 - 这些可以通过功能正确性进行测试。

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

正常的释放过程将遵循 - 大量的测试,代码审查等

如果相关,变化可能与这使它能够在生产中快速,如果关闭了“恢复开关”运有一个问题。

我们已经确定了很多潜在的性能改进,其中大部分我们不会进一步发展,直到出现问题(除非我们正在对该软件进行无关重构)。

3

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

一般方法:

  1. 识别(!测量)您通过改进/投入时间的手段最improveable实体
  2. 优化IT
  3. 重复
相关问题