理想的多服务器 LAMP 环境
Posted
技术标签:
【中文标题】理想的多服务器 LAMP 环境【英文标题】:The ideal multi-server LAMP environment 【发布时间】:2010-09-11 15:04:12 【问题描述】:有很多关于在单个盒子上设置 LAMP 堆栈的信息,或者可能将 mysql 移到它自己的盒子上,但似乎没有很好的文档记录。
我当前的网络环境存在容量问题,因此我正在寻找关于配置调整、确定瓶颈的最佳实践, 安全等
我目前托管了大约 400 个站点,对冗余和安全性有相当的需求,因此我已经超越了单机解决方案 - 但还没有达到完整的 ISP 或专门的网络托管公司的水平。
谁能指点我一些好的专业知识,以建立一个伟大的 apache 网络农场,以确保安全和未来的扩展?
我的 Web 环境包含 2 个冗余 MySQL 服务器、2 个冗余 Web 内容服务器、2 个负载平衡前端 Apache 服务器,它们通过 nfs 装载内容并在它们之间共享 apache 配置和会话目录,以及一个“开发人员”服务器还通过 nfs 安装 web 内容,并包含所有开发人员帐户。
我对这个设置很满意,但它似乎过早地阻塞了负载。
谢谢!!
--更新--
原来“负载阻塞”与mod_log_sql
有关,我用它来将我的 apache 日志发送到 mysql 数据库。通过重新配置网络服务器将其 sql 语句写入磁盘文件,然后创建一个单独的进程将这些语句提交到数据库,它允许网络服务器更快地释放其线程,并处理更大的负载。
【问题讨论】:
我会把标题改成“理想的中级 LAMP 环境” 【参考方案1】:我还建议作为可扩展性的第一步,将您的内容卸载到像 Edgecast 这样的 CDN。将您当前的两个内容服务器用作额外的 Web 服务器。
【讨论】:
【参考方案2】:您需要能够识别瓶颈并测试改进。
要识别瓶颈,您需要使用系统的报告工具。一些例子:
MySQL 的查询日志很慢。 Linux 提供负载平均、iostat、vmstat、netstat 等统计信息。 Apache 有访问日志和服务器状态页面。 编程语言有分析器,例如Pear Benchmark。使用这些工具来识别最慢/最大的违规者并专注于他们。尝试改进和测量,看看它是否真的提高了性能。
这成为一个永无止境的循环有两个原因:复杂系统中总有一些东西可以更快,随着系统的增长,不同的功能会开始变慢。
根据您对系统的描述,我的第一个预感是 NFS 服务器上的磁盘 io 和网络 io,然后我会查看 MySQL 查询时间。我还会检查共享会话的性能。
【讨论】:
【参考方案3】:教科书的做法是用真实的经验数据来识别瓶颈。
是database, apache, network, cpu, memory,io?你需要更多的 ram,sharding(+),是 DiskIO,NFS 网络负载,cpu 来做全表扫描吗?
当您发现问题出在哪里时,您可能会遇到这样的问题:由于代码的工作方式,它不足以扩展基础架构,并且您最终需要创建更多当前实例设置或使代码不同。
【讨论】:
scribd.com/doc/272292/…以上是关于理想的多服务器 LAMP 环境的主要内容,如果未能解决你的问题,请参考以下文章