Apache的mysql性能和要求

我在LAMP新。 我用Mysql,Apache安装Ubuntu-Server。 每个事情都是好的,直到一天在Web服务器上请求10000。 之后,服务器下来,不能正常工作。 估计硬件需求是否有任何作用? 我应该configurationApache还是Mysql?

你并没有真正给我们提供很多信息。 10000个请求/天是每9秒1个请求。 几乎任何硬件/ VPS今天(甚至TomTom的智能手机)应该能够处理。 无论你的问题是不是硬件。 如果你看看屏幕右侧—>相关,你会发现一堆问题的答案,应该可以帮助你缩小问题的地方。

直接回答:在3K并发请求,它不再是儿童游乐场。 找一个好的系统pipe理员来追踪瓶颈和问题。 通常这会转化为一个经过修改的系统devise/体系结构,但如果幸运的话,它只是一个写得很差的(可能是php)应用程序,缺lessmysql索引,configuration不当的apache。

漫长而远离完整的答案,一味地试图把你放在正确的道路上:

  • 估算硬件要求:容量规划是一个漫长的过程。 如果你想正确地做,你需要阅读一本关于系统架构和容量规划的好书
  • 你一定要重新访问Apache和MySQL的configuration。 Ubuntu的默认configuration远没有生产就绪的质量。 禁用保持活动,增加儿童进程的数量,禁用DNS查找等等…
  • 不要使用mod_php运行线程化的Apache; php模块通常不是为了线程安全而编写的; 总是使用mod_php预制apache
  • 尝试在path的某处使用一个memcache。 看看你的应用程序是否有memcache支持
  • 根据经验法则将静态内容分离到另一个http服务(nginx,lighttpd)
  • 你最终可以在一个fastcgi服务器下使用php; php 5.3带有一个fastcgi服务器; 如果你这样做,你可以使用更快的http服务器作为前端,并放弃apache(nginx带有良好的fastcgi客户端支持)
  • 使用APC与PHP
  • 日志缓慢的mysql查询; 确保你有正确的索引标记为由MySQL缓慢的查询

更重要的是,一个系统pipe理员可以写一本关于将虚拟LAMP Ubuntu安装程序转换为生产就绪,快速,可扩展的path的书籍。

您需要调整以下三点: 硬件要求:确实,硬件是您应该关注的第一件事情。 有两种types的内容,由Apache,静态和dynamic服务。 在静态的情况下,Apache可以容易地服务于超过2000-3000个请求,在具有以下规格的硬件上调整Apache的性能:Corei3 2.13Ghz处理器,4GB RAM。 但在dynamic内容的情况下,真正的游戏开始。 基于PHP的dynamic页面需要大量的内存和CPU资源,我将在下面各自的章节解释。

Apache:通过改变许多参数,可以轻松地调整Apache的性能。 例如,这些是我的WordPress的一些运行参数在它的巨大交通。

Timeout 30 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 6 ####Maximum Client Connections <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 512 MaxClients 512 MaxRequestsPerChild 4000 </IfModule> 

每个apache进程需要大约10-30MB(可以是庞大的php页面的情况下)来提供php请求。 查找maxclients的公式是:

MaxClients≈(RAM-size_all_processes)/(size_apache_process)详细的一步一步的调整Apache的PHP的过程,请按照这篇文章: Apache的性能调整

MySQL的:

对于mySQL:将以下内容添加到my.cnf

query_cache_type = 1

query_cache_size = 26214400

这在性能上有了戏剧性的提升。 另请参阅本文,其中解释了“安装后要在MySQL服务器中调整什么” http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/