2008-09-20 85 views
7

关于在一个盒子上设置LAMP堆栈,或者将MySQL移动到它自己的盒子上,还有很多信息,但是越来越多的信息似乎没有很好的记录。理想的多服务器LAMP环境

我现在的网络环境是有能力问题,所以我在寻找最佳实践关于配置调整,确定瓶颈安全

我目前各地举办400个站点,对冗余和安全性的公平需求,所以我已经超越了单箱解决方案 - 但我不在一个完整的ISP或专门的网络托管公司的层面。

任何人都可以指向我的一些很好的方向建立一个伟大的Apache网络农场以期安全和未来扩展?我的网络环境由2个冗余的MySQL服务器,2个冗余的Web内容服务器,2个负载平衡的前端apache服务器组成,这些服务器通过nfs安装内容并在它们之间共享apache配置和会话目录,以及一个“开发者“服务器也通过nfs挂载网络内容,并包含所有开发者帐户。

我很满意这个设置很多,但它似乎过早地窒息负载。

谢谢!

--UPDATE--

原来,“窒息的负荷”是与mod_log_sql,我用我的Apache日志发送到mysql数据库。通过重新配置web服务器将其sql语句写入磁盘文件,然后创建一个单独的进程将它们提交到数据库,它允许web服务器更快地释放它们的线程,并处理更大的负载。

+0

我会改变标题为“理想的中等水平的LAMP环境” – givanse 2008-09-20 15:21:07

回答

2

这样做的教科书的方式将是用真实的经验数据识别瓶颈。

难道是database,apache,网络,cpu,内存,io?你需要更多内存,sharding+),是DiskIO,NFS网络负载,做全表扫描的CPU吗?

当你发现问题出在哪里时,你可能会遇到这样的问题,即由于代码的工作方式,它不足以扩展基础结构,并且最终需要为你创建更多的实例当前设置或使代码不同。

+0

更多链接:http://www.slideshare.net/Jakobo/scaling-lamp-stacks/ – svrist 2008-09-20 15:51:52

3

您需要能够识别瓶颈和测试改进。

要识别瓶颈,您需要使用系统的报告工具。一些例子:

  • MySQL有一个慢查询日志。
  • Linux提供像load average,iostat,vmstat,netstat等统计信息。
  • Apache有访问日志和服务器状态页面。
  • 编程语言具有分析器,如Pear Benchmark

使用这些工具来识别最慢/最大的罪犯,并专注于他们。尝试改进并衡量它是否确实提高了性能。

由于两个原因,这成为一个永无止境的循环:复杂系统中总有一些东西可以更快,随着系统的增长,不同的功能会开始放慢速度。

根据你系统的描述,我的第一个预感应该是NFS服务器上的磁盘io和网络io,然后我会看看MySQL的查询时间。我还会检查共享会话的性能。

0

我还建议作为可扩展性的第一步,将您的内容卸载到Edgecast等CDN。使用您当前的两台内容服务器作为其他Web服务器。